`
butter
  • 浏览: 124660 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Mobile App Development

 
阅读更多

江湖有江湖的规矩,大家都知道iPhone上的Cocoa Touch框架和Xcode是开发Apple移动产品的王道。Android SDK和Eclipse是开发Android App的王道⋯⋯你可以找到所有主流平台的开发框架和相关IDE。

你说这做移动端应用的人容易么?虽说Blackberry和Android都是基于Java、有效部分人之前也做过Objective-C,但是想到一个大众产品需要提供每个平台的无差别体验时,你做的可能不是一个项目,而是N个项目。哪天国内某个厂商做了自己的操作系统和SDK,你也得啥啥的多做一个版本。对于财大气粗的公司这些都是无所谓的,可是对于那些可怜兮兮的工程师和项目经理更期望自己的产品生命周期能更长一些、受众应该更广一些——我们需要的是跨平台的解决方案啊!

我们第一个想到的词肯定会是HTML⋯⋯这不是什么新鲜东西,在很多其他嵌入式产品中,例如路由,都是用网页作为用户接口的。将Web App封装到一个应用程序包内进行分发这种概念,是一个很直观的想法。

Web App Architecture

AListApart上已经有文章在讨论这个问题,但是作者根据自身经验觉得WebApp在需求变得复杂之后不能满足任务⋯⋯汗⋯⋯的确有这样的嫌疑吧。如果单纯使用WebApp再套一个WebView的壳,就没法使用重力感应、GPS、照相机之类的功能。

问题的确如此,但是还是希望还是有的。Phonegap、Titanium、Rhodes、SproutCore Touch这三个跨平台的移动框架虽然依然是一个“壳”,就不仅仅是一个WebView的壳而已。

轻量级的PhoneGap

PhoneGap的是一个非常轻量级的框架,在开发过程中完全不需要使用Java或Ruby之类的代码,而是纯粹的HTML+JS+CSS。只是这里的JS里被赋予了增强型的API,你可以控制Camera、加速器、GPS等等。想了解它的功能,你可以直接看他的文档

PhoneGap最大的优势就是它真的很轻量很快捷。你能把Web开发流程中的Rapid Prototyping应用到Mobile App的开发之中。

Dev Process

缺点也很明显。由于使用JS作为语言载体,你的效率没法跟Objective-C、Java的比。由于,PhoneGap限定你的程序在一个HTML文件里面,那么App规模越来越大之后,你还能在一个HTML里管理你的App么?
最后一种是个这些框架的通病,无法提供完全一致的用户体验。在UI方面,由于无法调用系统默认的UI库,界面完全靠你自己去写,这对用户体验设计是一个灾难。虽然jqTouch之类的框架部分弥补了这方面的缺陷,但是用HTML模拟的控件用起来还是没有系统原生的流畅⋯⋯

更聪明的Titanium

Titanium也是利用HTML、JS、CSS。不过其JS API封装的更强大。

同样是将手机所有功能都封装起来,但是比PhoneGap更完美。但这个是牺牲跨平台性的,Titanium只支持iPhone和Android,现在的Blackberry的支持还是测试阶段⋯⋯不过对于中国手机用户来说,这样的支持性反而更好。

Titanium比PhoneGap对手机的功能封装的更好,前者支持后者不支持的File IO操作(PhoneGap支持不完善)、Contacts读取等等。
对于正式的产品开发,选择兼容性更强的PhoneGap还是功能更强大的Titanium,的确是个疑问。

绝对重量级的Rhodes

Rhodes采取的是另一种思路,简单说,Rhodes的框架在App内部架设了一个Client/Server端,开发者写的程序就是其Client端,通过框架的JS API调用“Server”端的“WebService”。Server端再根据得到指令进行操作,Server端本身具有调用平台原生API的使用能力。

其”Server“端使用的是Ruby,那么很多同学可以通过Ruby自己封装平台上的原生API给”Client“端的JS使用。

Rhodes还有相应的云端解决方案,能够解决Mobile App的数据同步等问题。

详细的可以参考Rhodes的介绍,或者这个Slide

蓄势待发的SproutCore Touch

今年早些的时候就发布了SproutCore TouchSproutCore(网站已被hexie)就已经很NB了,YUI、jQuery跟它都不是一个等级的东西,或者就不是同一个概念。SproutCore可以是仅仅借用了JS的语法去定义了一个全新的界面开发环境,并且提供了项目生命周期的一切工具。SproutCore Touch是面向移动端的框架,肯定会在SproutCore的基础上加入移动端的Touch、GPS、Camera相关的API。

可惜这个框架的学习难度特别大,其API的文档和调试环境特别不友好⋯⋯好吧,应该是说,文档比较难找,然后你又要用Ruby来完成开发工具的配置、代码调试等等。另外,这个框架的开发进度好慢的。

但这个框架是基于SproutCore的,潜力太不可小视的。

没有Utopia

现在,我们可以放心的用已有的技术去快速抢占移动端市场了。再加上HTML5在移动平台上的广泛支持,前途看似无限美好。

但是大家不要忘了,现在你的App虽然没有跟平台依赖,但是跟这些框架相关了!
从性能上说,程序性能又是跟每个平台上的浏览器有关。Webkit虽然是主流,但是你会发现Android和iPhone的Webkit就很不一样,更不用说每个不同版本的平台之间浏览器的差异了⋯⋯似乎你又回到了桌面浏览器的兼容性大战上。

这些问题在你使用一些HTML5的新特性就特别明显。比如,你会发现iPhone上竟然没有WebWorker。Android上Canvas.toDataURL()方法无法执行等等问题。

看来,Mobile App领域还真是一块处女地⋯⋯

分享到:
评论

相关推荐

    Mobile App Development with Ionic 2

    Mobile App Development with Ionic 2: Cross-Platform Apps with Ionic, Angular, and Cordova by Chris Griffith English | 10 Apr. 2017 | ASIN: B06Y5Q24B2 | 310 Pages | AZW3 | 2.93 MB Learn how to build ...

    Ionic : Hybrid Mobile App Development

    Ionic : Hybrid Mobile App Development by Rahat Khanna English | 14 Jun. 2017 | ASIN: B072N8FRG8 | 544 Pages | AZW3 | 18.96 MB An end–to-end journey, empowering you to build real-time, scalable, and ...

    《Mobile App Development with Ionic》

    Mobile App Development with Ionic,2017年8月,epub格式,适合放在电子书中阅读,值得下载。

    [Packt Publishing] ASP.NET MVC 4 Mobile App Development

    本书《*** MVC 4 Mobile App Development》由Packt Publishing出版社发行,旨在教授开发者如何利用*** MVC开发框架创建面向智能手机、平板电脑以及其他移动设备的下一代应用程序。作者Andy Meadows基于自己丰富的...

    Mobile App Development-Upgrading To Ionic3

    As this book was being printed, Ionic received another major upgrade. Unlike the quantum leap from Ionic 1 to Ionic 2, this upgrade is less dramatic. With that being said, there are some adjustments ...

    Build Mobile Apps with Ionic 2 and Firebase: Hybrid Mobile App Development

    Build Mobile Apps with Ionic 2 and Firebase: Hybrid Mobile App Development 27 May 2017 | English | ISBN-10: 1484227360 | 276 pages | PDF | 2.9 Mb Learn to build hybrid mobile apps using Ionic and ...

    2017.09 page 481 Mobile App Development with Ion - Chris Griffith.pdf

    Mobile App Development with Ionic 2: Cross-Platform Apps with Ionic, Angular, and Cordova 1st Edition by Chris Griffith (Author) ISBN-13: 978-1491937785 ISBN-10: 1491937785 Learn how to build app ...

    Mobile App Development with Ionic epub

    Mobile App Development with Ionic 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    Ionic Hybrid Mobile App Development epub

    Ionic Hybrid Mobile App Development 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    Mobile App Development with Ionic azw3

    Mobile App Development with Ionic 英文azw3 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    英文原版-Mobile App Development with Ionic 2 1st Edition

    You’ll also receive updates when significant changes are made, new chapters are available, and the final ebook bundle is released.Looking to build cross platform mobile applications? This hands-on ...

    Mobile App Development with Ionic3, Revised Edition.pdf

    《Mobile App Development with Ionic3, Revised Edition》是一本关于移动应用开发的书籍,其主要内容聚焦于使用Ionic3、Angular和Cordova进行跨平台应用开发。本书由Chris Griffth撰写,于2017年出版,并由O’...

    HTML5 Mobile Development

    《HTML5 Mobile Development Cookbook》这本书提供了实践性的解决方案,帮助开发者充分利用HTML5的力量。 HTML5作为下一代网页标准,引入了许多新功能和改进,旨在提高网页的交互性、可访问性和离线存储能力。以下...

    Learn by Example: JavaScript for Front-End and Mobile App Development

    This book aims to take someone completely new to programming all the way from beginner ...Building your first mobile app Becoming an app developer Deploying your app to the Android and iTunes app stores

    beginning mobile app development with react native

    React Native是一种流行的移动应用开发框架,它允许开发者使用JavaScript语言来编写原生iOS和Android应用。与传统的原生应用开发相比,React Native以其跨平台特性和高效的开发速度而受到开发者的青睐。...

    英文原版-Mobile Applications Development with Android 1st Edition

    Mobile Applications Development with Android: Technologies and Algorithms presents advanced techniques for mobile app development, and addresses recent developments in mobile technologies and wireless...

    HTML5, Hybrid or Native Mobile App Development

    这些应用以二进制形式存储在设备上,通过苹果的App Store、谷歌的Play Store或黑莓的App World等应用商店进行下载和安装。原生应用能够直接与操作系统交互,无需任何中间层,这使得它们能够充分利用设备的硬件资源,...

Global site tag (gtag.js) - Google Analytics