Ruby on Rails创始人DHH谈如何进行混合移动APP开发
混合型APP兼具原生型APP软件良好用户交互体验的优势和网页型APP软件跨平台开发的优势,并且其开发成本和网页型APP软件接近,其开发效率也远高于原生型APP软件。混合型APP已经被众多企业所认可。最近,Ruby on Rails作者David发表了一篇关于如何进行混合开发移动APP的文章,现对该文章进行一个全面的梳理并转述,以供读者阅读、参考。
文章中首先提到了37signals在2013年前就进行了混合开发的许多尝试,不过当时HTML在移动端的性能还不尽人意。而当今,在移动APP开发设计时,移动设备的计算能力已经非常强大,对于信息处理等应用来说HTML应用的运行效果和原生应用的效果差别不大,采用混合开发的方式已经是非常合适了。
文章中还列举了他们三代移动产品的演进,第一代产品是通过原生外壳并嵌套WebView来实现。第二代产品是原生外壳加上原生导航界面,只有具体页面才是HTML形式。当前,他们正在因地制宜地选择需要使用原生开发的功能进行着开发第三代产品。纵观三代产品的开发,从之前的100%HTML到现在的90%HTML加上10%原生代码,他们已经做到了使得APP原生部分和HTML部分的体验几乎没有什么区别。混合开发模式在技术方面主要是处理WebView的集成、Web页面的加载以及原生内容与HTML内容之间的交叉链接。HTML方面,他们使用Rails Web应用以支持Web和移动两大平台。在这种开发模式下,因为大部分的代码逻辑在Web服务器端,所以这些代码可以随时修改代码并发布,从而大大减轻了开发人员的工作量、提高了Bug修复效率以及降低了开发的复杂度和维护成本。
文章最后还提出了混合开发模式对原生开发模式的挑战,如APP中有很多地方需要原生开发、在原始应用上已经花了很多时间且使得UITableView看起来效果非常好以及许大公司本身的开发风格就是喜欢耗时耗力的原生开发等情况。
总之,混合开发应该能够成为当下移动开发策略的一个重要选择,如最近发布的Qt 5.4正式版就重新设计了与 HTML5 Web交互的引擎,推出了基于Chromium的Qt WebEngine,从而实现了对HTML5和QT混合开发的支持。
另外,David还对用户的一些疑问进行了回答,如Derick用户提出的如何解决Android浏览器渲染速度慢的问题、用户Mike Waite提出的如何决定哪些功能要用原生开发的问题、用户Kevin提出的如何扩展和支持离线访问的问题等,更多问题以及David的答复,参见文章的评论部分。
Ruby on Rails创始人DHH谈如何进行混合移动APP开发的更多相关文章
- 浅谈使用 PHP 进行手机 APP 开发(API 接口开发)
做过 API 的人应该了解,其实开发 API 比开发 WEB 更简洁,但可能逻辑更复杂,因为 API 其实就是数据输出,不用呈现页面,所以也就不存在 MVC(API 只有 M 和 C),那么我们来探讨 ...
- 利用最新版的RubyMine2016.2开发Ruby On Rails 程序
经过我的前两篇博文 ”Ruby On Rails环境搭建“ 和”Ruby On Rails 环境搭建MySQL数据库连接“ 我们已经具备了开发Ruby On Rails程序的一切要素,但是天天对着do ...
- Ruby on Rails vs. PHP vs. Python
开发者在开发web应用时,往往会对平台的选择感到困惑,而web专家通常会建议:要考虑几个因素,这些因素包括周转时间.质量.跨浏览器兼容性.与其他框架的整合.数据安全性.易于访问性等. 在考虑了这些因素 ...
- Ruby on Rails 单元测试
Ruby on Rails 单元测试 为什么要写测试文件? 软件开发中,一个重要的环节就是编写测试文件,对代码进行单元测试,确保程序各部分功能执行正确.但是,这一环节很容易被我们轻视,认为进行单元测试 ...
- Ruby on Rails (ROR)类书籍
Ruby on Rails (ROR)类书籍下载地址及其他(整理) Ruby on Rails 如此之热,忍不住也去看了看热闹,现在把一些相关的电子图书下载地址整理下,方便有兴趣的朋友. 2006-0 ...
- Ruby on Rails 开发笔记
安装 Ruby on Rails Install Rails: A step-by-step guide 创建应用 # 创建新的应用程序 $ rails new blog $ cd blog # 启动 ...
- 【转】Ruby on Rails中select使用方法
在Ruby on Rails中真的有一堆Select helper可以用,我们经常容易混淆.常见的有三个..select, select_tag, collection_select(其余的什么sel ...
- Ruby on Rails
Ruby on Rails 是一个可以使你开发,部署,维护 web 应用程序变得简单的框架.在2004年7月,由Rails的创始人大卫·海纳梅尔·韩森从37signals公司的项目管理工具Baseca ...
- Linux超快速安装Ruby on Rails
Linux超快速安装Ruby on Rails 时间 2014-11-25 11:45:11 Flincllck Talk 原文 http://www.flincllck.com/quick-ins ...
随机推荐
- 在hibernate中使用SQL语句
- linux下使用fscanf实现scanf
首先,我们知道,linux下的scanf标准库函数是一个可变参的函数,那么,我们自己要实现一个scanf也必须是一个可变参的. 其实,在liunx的库中就提供了这样的的宏,来方便我们自己来实现变参函数 ...
- Ruby学习笔记(二)
1.block 代码块 do...end 或 {} 构成一个代码块,就像常见的 .each后面跟的代码块. my_nums = [1,2,3] my_double_nums = my_nums.col ...
- RSA算法详解及C语言实现
RSA算法它是第一个既能用于数据加密也能用于数字签名的算法.它易于理解和操作,也很流行.算法的名字以发明者的名字命名:Ron Rivest, Adi Shamir 和Leonard Adleman.但 ...
- [Javascript] Array - Conact
For example there are two array of object and you want to print out each element, it is bad if you u ...
- css考核点整理(十三)-jpg/png/gif等图片类型区别
jpg/png/gif等图片类型区别
- empty函数PHP
empty译为: adj.空的,空虚的,空洞的;空闲的,无效的,徒劳的;无聊的,愚蠢的;言语或行动空洞的 vt.(使)成为空的, 把…弄空;把…腾出来 vi.成为空的;流空 n.空车;空的东西 是PH ...
- java返回参数中几种常见的方法
1.有参数有返回值 public class text_1 { 1)创建add方法 public int add(int i, int j) { int res = i + j; ...
- 10.30 afternoon
P76竞赛时间: ????年??月??日??:??-??:?? 题目名称 他 她 它 名称 he she it 输入 he.in she.in it.in 输出 he.out she.out it.o ...
- Winform 程序中dll程序集嵌入exe可执行文件
关于这方面,Google一下有很多方法,参考: http://blog.csdn.net/astonqa/article/details/7300856 但按照以上的方法我并没有成功,于是继续找到了一 ...