2017年05月11日 16:07:51 阅读数:599更多
个人分类: Android
随着智能手机的普及,移动端应用几乎成为每个互联网产品的标配。在快速迭代的互联网战场中高效开发、低成本上线产品,是每个应用开发团队追求的目标。此时,选择合适的应用类型和开发模式便至关重要。移动应用可以粗分为三种:原生应用(native app), 网页应用(web app,或HTML5 app),以及它们的混血儿——混合模式移动应用(hybrid app)。今天的博文就来和大家简单聊聊近年来蓬勃发展的hybrid app。
Source: http://s3.rainmaker-labs.com/wp-content/uploads/Mobile-hybrid-app1.jpg
Hybrid app从外观上来看是一个native app,实则只有一个UIWebView,里面访问的是一个web app,如新闻类和视频类的应用普遍采取该策略:native的框架加上web的内容。不同于native app需要针对不同的平台使用不同的开发语言(如使用Objective-C、Swift开发iOS应用,使用Java等开发Android应用,使用C#开发Windows Phone应用),hybrid app允许开发者仅使用一套网页语言代码(HTML5+CSS+JavaScript),即可开发能够在不同平台上部署的类原生应用 。由于hybrid app结合了native app良好用户交互体验和web app跨平台开发的优势,能够显著节省移动应用开发的时间和成本,hybrid app得到越来越多公司的青睐。
Source: Native, HTML5, or Hybrid: Understanding Your Mobile Application Development Options
按照网页语言和程序语言的混合,hybrid app通常可以分为三种类型:
Hybrid app也并非是完美的解决方案。由于其使用HTML5,某些依赖于复杂的原生功能或者繁重的过渡动画的应用会出现卡顿;同时,为了模拟native app的UI和感官,需要投入额外的时间和精力;尽管可以跨平台,但是并不能完全支持所有的设备和操作系统;最后,如果应用的体验不够原生化,如一个简单的网站,则还有被Apple App Store拒绝的风险。
在hybrid app备受追捧的今天,我们也许会随大流优先考虑开发hybrid app。但是,每个产品各具特色,还没有哪一种解决方案可以完美地应万变。hybrid app的中庸让它大放异彩,也限制了它的应用场景 。在决定采用一种开发模式之前,有许多因素需要考虑,诸如:
如果要设计Angry Birds一类对图形要求很高的游戏,那么在暂不考虑技术团队能力的情况下,native app是最优选择;如果要设计如Yelp一类内容导向的应用,那么hybrid app会是很好的选择;如果项目时间紧张,没有足够的人手和资金,对图形和系统原生特性没有要求,那么web app将是性价比最高的解决方案。
表一对比了native app, hybrid app和web app在不同方面的表现,可以帮助你根据实际情况选择最佳的解决方案。
InfoQ上高嘉峻的一篇文章分享了几个hybrid app开发的误区,也是开发过程中应该尽量避免的:
那么在实际应用场景中,有哪些选择了hybrid app呢?实际上,我们很可能使用过很多hybrid app,却并没有意识到它们是借了native台子唱戏的web app。根据Appcelerator的官网,目前单是运行基于它的平台搭建的hybrid app的设备就有近2.86亿台。此外,LinkedIn、Yelp、Netflix、Wunderlist 等也采用了hybrid模式。值得注意的是,有些博文说Google Inbox也属于hybrid app,但是根据Gmail团队自己的博文,他们考虑效率问题,并没有采取hybrid,而是提出了一个新的解决方案:后端使用Android SDK写Java库,实现对话,提醒,联系人等功能;然后针对不同的平台设计UI。在不同平台部署应用时,Google使用开源工具GWT和J2ObjC将Java转为JavaScript和Objective-C,这使得Google可以使用同一套Java代码在web和iOS平台上实现同样的功能。在不同的平台之间,Inbox可以复用70%的代码。
Source: http://www.appcelerator.com/customers/app-showcase/
这篇博文粗浅介绍了什么是hybrid mobile app,以及什么时候可以选择这种开发模式。关于具体如何开发,则可以另起一文,此不详述,仅列举一些资料,以供感兴趣的朋友深入了解。
开发工具:
8个hybrid app开发工具
Hybrid App开发实战
Hybrid Mobile Apps: Providing a Native Experience With Web Technologies
Mobile Frameworks Comparison Chart
40+ Cross Platform Development Tools for Mobile App And Games
参考资料:
一、什么是Hybrid Mobile App:
Hybrid APP是什么
What is a Hybrid Mobile App?
Native, HTML5, or Hybrid: Understanding Your Mobile Application Development Options
Hybrid Mobile Apps: Providing A Native Experience With Web Technologies
Hybrid sweet spot: Native navigation, web content
Understanding HTML5 Hybrid Apps
二、什么时候选择Hybrid App:
Web App Hybrid App和 Native App的区别
5 Points to Consider Before Making a Hybrid Mobile App
别闯进Hybrid App的误区
三、Hybrid App案例:
Your favourite app isn’t native
LinkedIn for iPad: The Native/Web Messaging Bridge and WebSockets
Whoa! That Embedded Web View Looks Hot in Your iOS App!
Going under the hood of Inbox