什么是native app 、web app?
Web app是一种通过网络(如互联网或内联网)访问的应用程序;也可以指计算机软件承载在浏览器支持环境下或使用浏览器支持语言(如JavaScript)并依赖于web 浏览器来渲染的应用程序。
Native app 是一种基于本地(操作系统)运行的APP;App因为位于平台层上方,可以本地资源访问,摄像拨号功能的调取等功能。
简单的说:Native app 是一种基于本地(操作系统)运行的APP,web app 是一种运行在浏览器上App
phoneGap和titanium 有什么区别?
phoneGap、titanium这两项技术的目的都是能够实现跨平台的移动开发。他们都提供了Web应用程序通常无法使用的常用的原生API(应用编程接口)集,比如之前在浏览器中还没有提供的基本摄像头访问、设备中的联系人资料和传感器。
但是他们的工作原理完全不一样:
PhoneGap 的工作原理:许多原生移动开发SDK提供了Web浏览器窗口组件webview,作为用户界面框架的一部分。在纯原生应用程序中,Web视图控件用来显示来自远程服务器的HTML内容,或者显示以某种方式与原生应用程序一起封装的本地HTML内容。由PhoneGap创建的原生“包装器”(wrapper)应用程序把HTML页面装入到这其中一个Web视图控件,并且在应用程序启动后,将随后出现的HTML作为用户界面来显示。
Titanium 的工作原理:titanium平台用原生编程语言针对特定平台实现了js语言支持的API,通过访问这些api,产生的对象即是原生对象的代理,它向JavaScript提供关于底层原生用户界面对象的属性和方法。
从它们各自的工作原理来看,phoneGap 包装的app 其实是运行在浏览器中。通过titanium平台,app调用的所有控件都是原生控件,而不是通过页面语言模拟的控件。
所以如果你关心的是你的应用如何看起来更加本地一点,那么Titanium 是更好的选择。由于Titanium主要针对Iphone和Android,如果你期望你的应用能够被移植到更多的平台上,那么PhoneGap无疑是最佳选择。
Jqtouch 、Jquery Mobile 和 Sencha touch
既然web app 是运行在浏览器上面的,我们又想得到同原生应用相差无二的体验,那么我们就需要用html、css、js来模拟原生应用上的控件如:toolbar、navigation 等。模拟这些UI的组件以及交互的工作,jqtouch、Jquery Mobile 和 Sencha touch 都帮我们搞定了。那么各有什么不同呢?
JQtouch :jquery 的插件。它提供了一个基础的小工具集、动画方案以及主题配色。它是专为WebKit内核的浏览器打造的。如果所开发的项目中,目标用户群都使用WebKit内核的浏览器,且目标终端是小屏幕手机,可以考虑此框架。
jQuery Mobile:轻量级框架,相对于JQtouch,它支持各主流终端、提供较丰富的UI组件,但交互表现依赖于平台自身,会有差异;开发语言是html、css和js,入门门槛较低。
Sencha Touch:重量级框架;组件封装较多,拥有众多效果不错的页面组件和丰富的数据管理,在各平台交互表现统一(内部封装),Sencha Touch可以让你的Web App看起来像Native App;与jQuery Mobile不同之处在于,它的开发语言不是基于HTML标签,而是类似于客户端的MVC风格编写JavaScript代码,相对来说,学习周期较长。
由于框架比较多,以上纯属个人总结,还有许多不够完善的地方,希望大家多指教,一起完善