构建混合式移动应用的流行框架

什么是混合移动应用程序?

混合应用程序只是一个普通的移动优化的网站,用CSS,HTML和JavaScript编写,在webview上显示(它基本上是一个精简的Web浏览器)。这样做的好处是,只需要写一个应用程序,在大多数情况下,不用修改就可以在 Android,iOS 和 Windows Phone 上运行。本文列出的大多数框架都是用Cordova或 PhoneGap 实现的,它们架起了由 JavaScript 通往设备 API 的桥梁。

本文将对用于构建混合和原生移动应用程序的最流行的 JavaScript 框架进行比较。

Ionic

Ionic在我们列出来的这些框架里面是最流行的,可能对很多开发者来说是首选。你可以用框架中的CSS 实现有 native 风格的设计,不过相对于使用完整的 Ionic,更建议搭配 AngularJS 一起开发。使用 Ionic 的一大好处是命令行的交互界面,有很多迷人的功能,包括集成的仿真器金额基于Cordova 的 app 打包器。

正面:预置的组件

强大的社区

命令行交行界面,有着很多有用的功能

负面:复杂的开发需要了解AngularJS

Onsen UI

这是一个开源的框架,可以通过组合 native 风格的组件来开发 app。它用起来非常简单,可以用AngularJS 一起开发,也可以不用。有着完善的文档,包含了大量例子和布局,覆盖了最常见的 app 类型。Onsen UI 的一个不足是目前只发布了一个 iOS 主题,不过下一个版本承诺会推出 Material Design(谷歌推出的一种设计风格)的支持。

正面:预置的组件

优秀的文档,包含大量例子

负面:未包含PhoneGap/Cordova工具,不过可以支持

暂不支持Material Design风格

Framework 7

Framework 7比较酷的地方在于它完全是框架无关的(没有像Angular或者React那样的外部依赖),但是确依然可以让app在组件和动画方面有着native的风格和体验。开发者只需要会HTML, CSS和JavaScript就可以开发应用,而不用把代码搞得很复杂。Framework 7并不包含任何用于仿真或者打包的工具,,所以你需要将其与Cordova或者PhoneGap一起使用。

正面:简单易用,只依赖HTML, CSS和JavaScript

性能不错

可以和任意JavaScript框架结合使用

负面:未包含PhoneGap/Cordova工具,不过可以支持

React Native

正如项目的名称表露的那样,React Native的目的是构建真正native的应用。而不是构建在Webview里运行的混合模式的应用。开发完全由JavaScript和React来完成。这个框架不太适合web开发的新手,不过其背后有一个庞大的社区,在各个方面都可以为你提供支持。最近这个框架还发布了Android版,这样你就可以真正实现跨平台的应用开发了。

正面:Native级别的性能

庞大的社区支持

负面:陡峭的学习曲线

目前开发工具只支持OS X

jQuery Mobile

它是所有移动框架的爷爷, jQuery Mobile 的目的不是让 apps 的外观像 Android 或 iOS。而是为了帮助开发可以在所有移动浏览器(包括老旧的 Windows Phone,Blackberry 和 Symbian)上良好运行的 web apps。因此,它是非常轻量级的,只依赖 jQuery,很容易学会,同时还提供了良好的触摸识别和对 PhoneGap/Cordova 的支持。

优点:支持广泛的移动浏览器

简单易用

缺点:样式陈旧,既不像 iOS 也不像 Android

不包含 PhoneGap/Cordova builder,但支持

NativeScript

Native script 的最大特点是,用 TypeScript 语言编写 app 的功能,只需要编写一次,然后它可以针对不同的操作系统(包括 Android,iOS 和 Windows Phone)产生对应的可执行代码,打包后,应用是按原生程序的方式运行的,并没有打开和运行浏览器。使用该框架确实需要一些编程技巧,但它详尽深入的文档弥补了这方面的不足。

优点:“编写一次,到处使用” 的方式

强大的文档

Cons:陡峭的学习曲线

较小的社区

Famous

Famous切入web和移动开发的方式有点与众不同。它使用WebGL把你的HTML的DOM树组合在一起,把所有的内容在一个canvas里显示,有点类似HTML游戏引擎做的那样。这种独特的技术可以让框架在60 fps的速度下运行app,这已经和大部分native的app一样流畅了。可惜的是,这个项目现在不再活跃了,也没有合适的文档可供参考。

正面:Native的性能

反面:开发基本停滞

文档不全

社区不健全

汇总数据框架Native体验依赖社区文档工具Ionic7/10AngularJS (可选)9/108/10强大的 CLI, Ionic SDK

Onsen UI6/10AngularJS (可选)4/109/10Monaca Cloud IDE (有免费方案)

Framework 78/10只需HTML, CSS 和JS6/108/10无

React Native8/10React8/105/10Chrom的扩展工具React Developer Tools

jQuery Mobile3/10jQuery8/105/10无

Native Script8/10TypeScript5/109/10免费的 CLI, 其他的付费可选

Famous7/10WebGL, AngularJS3/105/10无

总结

没有真正完美的框架 – 每个都有自己的优点和缺点,用哪个取决于你要用他们干什么。

android react混合开发框架,7个混合式移动开发框架相关推荐

  1. 谈谈Android App混合开发

    推酷 文章 站点 主题 公开课 活动 客户端 荐 周刊 登录 谈谈Android App混合开发 时间 2015-08-25 20:13:43bxbxbai 原文  http://bxbxbai.gi ...

  2. openfire html5,HTML5来了,7个混合式移动开发框架

    在这个时间开始学习移动开发真是最好不过了,每个人应该都有一些移动应用的创意,而且你并不需要任何的原生应用编程经验,你只需要一些HTML的相关知识,懂一些CSS和JavaScript就够了.如果你总听别 ...

  3. android编译会生成class吗,请教下Android N混合编译生成的base.art中的类在运行时最终添加到哪个classloader的问题...

    您在Android N混合编译与对热补丁影响深度解析一文提到,为了规避混合编译带来的影响,采用运行时替换PathClassLoader方案,因为App image中的class是插入到PathClas ...

  4. Android N混合编译与对热补丁影响深度解析

    大约在六月底,Tinker在微信全量上线了一个补丁版本,随即华为反馈在Android N上微信无法启动.冷汗冒一地,Android N又搞了什么东东?为什么与instant run保持一致的补丁方式也 ...

  5. Android N混合编译与对热补丁影响解析

    首先非常抱歉Tinker没有按期内测,这主要因为开源的代码需要通过公司内部审核与评测,这项工作大约还需要一个月左右.当前Tinker已经在公司内部开源,我们会努力让它以更完善的姿态与大家见面. 大约在 ...

  6. Android封装sdk页面为h5,Android/H5混合 SDK 集成文档

    Android /H5 混合SDK 该SDK用于Android Hybrid 模式下,H5页面的以下情形: * 用户以app或单个设备为单位,进行H5页面的试验 * 离线缓存模式H5页面的试验 SDK ...

  7. Android 图像混合技术

    Android 图像混合技术 色彩知识 色彩 光学三原色 光学三原色由:红.绿.蓝组成. 色值分别是: 红(red ):#FF0000 RGB(255,0,0) 绿(green):#00FF00 RG ...

  8. Android React Native使用原生UI组件

    Android React Native 已经将几个常用的原生组件进行了封装,比如 ScrollView 和 TextInput,但是并不是所有系统的原始组件都被封装了,因此有的时候我们不得不自己动手 ...

  9. .Net Core快速开发平台源码 敏捷开发框架OA系统 CRM快速开发框架

    .Net Core快速开发平台源码 3.4.1版本 敏捷开发框架OA系统 CRM快速开发框架 NET版本:.NET5 VUE版本:3.3.2 前后端分离,纯源码,无封装,无加密 当时公司要建自己的内部 ...

  10. C/S快速开发框架源码 winform快速开发框架源码

    C/S系统开发框架源码  C#快速开发框架源码(CS版)00683 源码分享,需要源码学习可私信我. 系统功能: 该框架采用逻辑上的三层模式开发业务处理和数据处理完全分开,采用C#语言和MSSQL进行 ...

最新文章

  1. vsftpd被selinux阻止
  2. [转] linux下.tar .gz .tgz .bz2 .bz等解、压包命令详解
  3. mysql genlog 分析_Mysq性能分析 —— Genral log(普通日志)与 Slow log(慢速日式)...
  4. Oracle数据库adg数据没同步,Oracle 11g备库无法开启ADG的原因分析
  5. 大数据:互联网大规模数据挖掘与分布式处理
  6. mysql 与gemfire的同步_(转)分布式缓存GemFire架构介绍
  7. 罗永浩吐槽卖小米、苹果被骂,卖华为也被骂,李楠:警惕键盘侠
  8. spring aop实例讲解_【好好面试】手把手调试,教你分析Spring-Aop
  9. go语言操作redis-string
  10. MyBatis动态代理执行原理
  11. 微信编辑器新手入门必读
  12. java 毕业论文_Java程序设计毕业论文.doc
  13. Couchbase SyncGateway
  14. pytorch torchvision 各种版本whl下载地址
  15. 24V单节锂电池充电芯片
  16. 决策树算法python源代码_决的意思
  17. 16个经典面试问题及回答思路(推荐)
  18. Android3dtouch xposed,你不应错过的 8 款优秀 Xposed 模块 2015 年度盘点
  19. Failed to open /var/lib/samba/private/secrets.tdb
  20. 常见的服务器类型有哪些?

热门文章

  1. Unix编程艺术之第一部分
  2. 常见AutoCAD病毒(acad.fas、acad.lsp)清除方法
  3. 谷歌五笔输入法电脑版_不背字根,如何三天学会五笔输入法
  4. 张小龙:微信背后的产品观
  5. HTML5期末大作业:我的家乡网站设计4
  6. steamvr自定义按键_SteamVR SDK更新:带来运动平滑、自定义控制器键等多项功能
  7. 【测试基础】Linux文本编辑vi命令
  8. Hybrid App的架构
  9. win10桌面mac化保姆级教程[干货] 小白也能拥有的简(酷)约(炫)实用桌面
  10. MATLAB数字图像处理