浅谈移动开发框架

        因为学习的缘故,主要是为了以后更好的找工作,近来了解了许多的移动开发框架,在学习和看的时候能很快理解一些概念,但是回头再去看源码甚至应用的时候就会发现之前理解的已然忘记,俗话说好记性不如烂笔头,古人诚不欺我也,及时的将学习的内容做一些记录和笔记,相信可以加深理解并进一步提高自己。

1、Cordova移动端跨平台开发框架

        何为跨平台开发框架呢,我们都知道当今手机操作系统Android和iOS二分天下,不同操作系统的手机需要安装不同版本的APP,对于开发者而言,也需要开发两个版本的APP才能使所有手机用户能下载使用APP,无疑对开发者加重了工作负担,那么有没有一种方式,我只需要开发一个APP版本,就能去适配通用的操作系统呢,包括Android、IOS等等。而Cordova就能提供这种能力,代码写一次,就能到处运行,跟我们日常开发网站效果一样,基于写Web APP,根据输出平台要求不同,就能提供不同类型的安装包,这就是混合开发框架带来的便利。                 

        Cordova设计初衷是希望用户群体能够通过跨平台开发的方法降低原生开发的成本,为此,开发人员需要安装原生开发环境,配置工程,使用HTML5CSS3JS和原生SDK生成应用。

Cordova的架构图

æ¡æ¶å¾

Web APP

这是存放应用程序代码的地方,体现是你的具体业务逻辑模块。应用的实现是通过web页面,默认的本地文件名称是index.html,这个本地文件应用CSS,JavaScript,图片,媒体文件和其他运行需要的资源。应用执行在原生应用包装的WebView中,这个原生应用是你分发到app stores中的。

WebView

Cordova启用的WebView可以给应用提供完整用户访问界面。在一些平台中,他也可以作为一个组件给大的、混合应用,这些应用混合和Webview和原生的应用组件。

Cordova Plugins

插件是Cordova生态系统的重要组成部分。他提供了Cordova和原生组件相互通信的接口并绑定到了标准的设备API上,这使你能够通过JavaScript调用原生代码。

 关于Cordova框架的安装教程和使用方法在这里就不详述了。

优势:

iOS和Android基本上可以共用代码,纯web思维,开发速度快, 简单方便,一次编码,到处运行。如果熟悉web开发,文档很全, 系统级支持封装较好,所有UI组件都是有html模拟,可以统一 使用。可实现在线更新,允许动态加载web js,文档多,开发者多,遇到问题容易解决,技术成熟。

劣势:

占用内存高一些,不适合做游戏类型app, web技术午无法解决一 切问题,对于比较耗能的地方无法利用native的思维实现优势互 补,如高体验的交互,动画等。

2、Recat-Native移动端跨平台开发框架

React Native让开发者使用JavaScript和React编写应用,利用相同的核心代码就可以创建Web,iOS和Android平台的原生应用。

优势:

虽然不能做到一次编码到处运行,但是基本上即使是两套代码, 也是相同的jsx语法, 使用js进行开发。用户体验高于html, 开发效率较高

Flexbox布局据说比native的自适应布局更加简单高效

可实现在线更新2015.7.28 AppStore审核政策调整:允许运行于JavaSriptCore的动态加 载代码。更贴近于原生开发

劣势

对开发人员要求较高,不是懂点web技术就行的,当官方封装的 控件、API无法满足需 求时就必然需要懂一些native的东西去 扩展,扩展性仍然远远不如web,也远远不如直 接写Native Code。官方说的很隐晦:learn once, write anywhere,人家可run anwhere,就是针对不同的 平台需要些多套代码。

3、Flutter移动端跨平台开发框架

Flutter是面向iOS和Android应用,提供一套基础代码(使用Dart语言)的高性能高可靠软件开发工具包,使开发者能够在iOS和Android两个主要的移动平台上,打造统一代码的高性能应用。Flutter能够在iOS和Android上运行起来,依靠的是一个叫Flutter Engine的虚拟机,Flutter Engine是Flutter应用程序的运行环境,开发人员可以通过Flutter框架和API在内部进行交互。

优势

高生产效率。一套代码可以开发出Android和iOS应用;Dart语 言优越性,使得同样的 功能只需要很少的代码;迭代更加方便, hot reload功能;

可以创建优雅的、高度可定制的用户界面。Flutter内置了对Material Design和Cupertino(iOS-favor)的UI组件库;提供了可定制 的UI组件,不再受制于OEM控件的限制;

借助可移植的GPU加速的渲染引擎以及高性能本地ARM代码运行 时以达到跨平台的高质量用户体验。

劣势

Flutter采用Dart语言开发,属于小众语言,需要一切都要重新 学习;Flutter现在还处在Beta阶段,第三方库很少。

 

总结

总的来说,以上整理分析的框架的优劣都是相互的,根据产品需求和企业技术方向以及技术人员的具体情况,选择最合适的就是最好的。 

经过一段时间的思考,发现很多东西都是有规律和相通的,就好比当初学习编程语言一样,学懂一门语言意味着可以更好地接受和理解另一门语言,学懂一个框架,了解它的代码和原理,也很容易吃透别的框架,在这个过程中一定要多看代码,多用多写才会有更深层次的理解和质的提升。

 

发布了15 篇原创文章 · 获赞 3 · 访问量 737
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览