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 ...
随机推荐
- 基于xmpp openfire smack开发之openfire介绍和部署[1]
前言 http://blog.csdn.net/shimiso/article/details/8816558 Java领域的即时通信的解决方案可以考虑openfire+spark+smack.当然也 ...
- 跟踪MYSQL 的查询优化过程方法
http://dev.mysql.com/doc/internals/en/tracing-example.html http://blog.chinaunix.net/uid-20785090-id ...
- Volley的简单二次封装
新建一个application package com.honghe.myvolley.app; import com.android.volley.RequestQueue; import com. ...
- 转--Oracle DB 服务器系统时间修改问题与 SCN 关系的深入研究
论坛里一个朋友说将DB 服务器系统时间往往后修改了3个月(从11年改成10年),启动DB报600的错误. 一. 先做个测试 1.1 关闭DB SQL> shutdown immediate Da ...
- kissy
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...
- php生成不重复随机字符串
使用时间戳作为原始字符串,再随机生成五个字符随机插入任意位置,生成新的字符串,保证不重复 function rand($len) { $chars='ABCDEFGHIJKLMNOPQRSTUVWXY ...
- 关于百度 UEditor的使用
1.文件路径的配置: 注意:在页面上需要指定editor文件所在的路径,否则报错 后面有时间,再说说 kindEditor和 bootstrap3的summernote的 Editor, fck ...
- ORACLE用户管理方式下备份数据和复制数据库
首先要明确的是,oracle数据库的备份可以分为逻辑备份和物理备份. 逻辑备份的是通过数据导出对数据进行备份,主要方式有老式的IMP/EXP和数据泵灯方式.适合变化较少的数据库,而 ...
- 抓取锁的sql语句-第七次修改
最近闲来没事,把之前写的那个抓取锁的存储过程重新修改.优化了一下,呵呵 create or replace procedure solve_lock_061203_wanjie(v_msg out v ...
- 关于@property()的那些属性及ARC简介【nonatomic,atomic,assign,retain,strong,weak,copy。】
@property()常用的属性有:nonatomic,atomic,assign,retain,strong,weak,copy. 其中atomic和nonatomic用来决定编译器生成的gette ...