来 DTDS 全球数字人才发展峰会,与刘润、叶军、快刀青衣畅聊成长>> 了解详情
写点什么

Ruby on Rails 创始人 DHH 谈如何进行混合移动 APP 开发

2014 年 12 月 24 日

混合型 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 的答复,参见文章的评论部分


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014 年 12 月 24 日 07:256203
用户头像

发布了 92 篇内容, 共 38.9 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

用机器学习操控无人驾驶小车,竟然和训练狗狗的原理一样!?

亚马逊云科技 (Amazon Web Services)

干货|渗透学习资料大集合(书籍、工具、技术文档、视频教程)

Machine Gun

网络安全 信息安全 渗透测试 Kail linux

高并发之存储篇:关注下索引原理和优化吧!躲得过实践,躲不过面试官!

Coder的技术之路

数据库 高并发 索引结构 索引优化

【LeetCode】解码异或后的数组Java题解

HQ数字卡

算法 LeetCode 5月日更

从简历被拒到收割8个大厂offer,我用了3个月成功破茧成蝶

比伯

Java 编程 架构 面试 计算机

Android中绘制圆角的三种方式

teoking

android

数据仓库分层架构及元数据管理

五分钟学大数据

数据仓库

TcaplusDB五一假期返工通告

TcaplusDB

数据库 nosql TcaplusDB NoSQL数据库

起飞!阿里独家的MySQL优化王者晋级之路,跟弯路说再见

Crud的程序员

MySQL 数据库 编程 程序员 架构

GitHub Actions:真正的 DevOps CI

世界上最好的语言

架构 DevOps 持续集成 Github Actions NoOps

高并发系列:存储优化之也许可能是史上最详尽的分库分表文章之一

Coder的技术之路

高并发 分库分表 高并发系统设计

云图说|云数据库MySQL内核小版本升级全攻略

华为云开发者社区

MySQL 云数据库 内核 华为云数据库 小版本升级

3万字Java高频面试指南带你通关跳槽季,复习1个月拿下大厂offer

java专业爱好者

Java

万丈高楼平地起,爆肝21000字Java基础知识总结,收藏起来总有用得着的时候

北游学Java

Java 集合 线程池 IO流

流媒体:依托于声网的连麦解决方案

小岛上的黑桃六

架构 音视频 架构师 流媒体 声网

GitHub开源的最全中文诗歌古典文集数据库

不脱发的程序猿

GitHub 程序人生 开源项目 中华古典文集数据库

四面字节跳动Java研发岗,最终拿下Offer,只有努力,方能成功

周老师

Java 编程 程序员 架构 面试

阿里P8熬了一个月肝出这份32W字Java面试手册,在Github标星31K+

周老师

Java 编程 程序员 架构 面试

Java面试:BIO,NIO,AIO 的区别,别再傻傻分不清楚

Java大蜗牛

Java 程序员 面试 编程语言 后端

zookeeper的架构

大数据技术指南

zookeeper 5月日更

专家解惑 | 关于华为云盘古大模型,你想问的都在这里~

华为云开发者社区

计算机视觉 nlp 华为云 盘古大模型 预训练

架构师实战营,模块三:架构设计详细文档

ifc177

#架构实战营

数据仓库的基本概念

五分钟学大数据

大数据

HDFS的HA以及Yarn的HA高可用

五分钟学大数据

hdfs YARN 5月日更

架构训练营-作业三(消息队列详细架构设计文档)

eoeoeo

架构实战营

大四实习生”都四面成功拿到字节跳动Offer了,你还有什么理由去摸鱼?

学Java关注我

Java 编程 架构 面试 计算机

HDFS

xujiangniao

hive与传统数据库对比

五分钟学大数据

hive

YARN资源调度三种模型介绍

五分钟学大数据

YARN

yarn的多租户配置实现资源隔离

五分钟学大数据

YARN

五四青年节 | Tcaplus祝大家五四青年节快乐!

数据人er

数据库 nosql TcaplusDB Tcaplus

「中国技术开放日·长沙站」现场直播

「中国技术开放日·长沙站」现场直播

Ruby on Rails创始人DHH谈如何进行混合移动APP开发-InfoQ