1.Ionic是什么,它和Angular、Cordova有什么关系?
Ionic通过整合各种技术和功能使构建Hybird应用更加快速、容易和美观。Ionic生态系统基于Angular和Cordova,前者是web应用框架,后者是构建和打包原生应用的工具。
2.为移动设备开发应用有哪三种类型?各自的优缺点都有什么?
(1)原生移动应用
要创建原生移动应用,开发者需要使用移动平台默认的语言,对于IOS来说是Objective-C或者Swift,对于Android来说是Java。写完之后需要编译应用并把它安装到设备上。开发者可以使用平台的软件开发套件(SDK)来和平台API通信,从而可以访问设备中的数据或者使用HTTP请求从外部服务器加载数据。
优点:a.可以使用原生API,这和平台的交流最紧密;
b.原生应用性能最好;
c.原生应用使用原生的API写成,对于其他原生开发者来说很容易理解。
缺点:a.原生应用要求开发者掌握平台对应的语言并且知道如何使用平台提供的API;
b.不支持跨平台,每个平台都要单独开发;
c.需要做很多构建工作,费时费力,增加成本。
(2)移动端网站(Web应用)
移动端网站或者说Web应用很适合移动设备使用,可以在手机浏览器中访问。Web应用就是在手机浏览器中访问的网站,它们专门被设计成适合手机屏幕尺寸。
优点:a.移动端网站更容易更新和维护;
b.网站在互联网中,不需要安装到移动设备中;
c.跨平台,所有移动设备都有浏览器,都可以访问你的应用。
缺点:a.不具备原生访问能力,不能访问原生API,只能访问浏览器提供的API;
b.需要使用键盘,用户必须在浏览器中输入网址来寻找或者使用移动端网站,这比单击一个图标要困难;
c.受限的用户界面,很难创建对触摸友好的应用,尤其要同时兼容桌面版时;
d.移动端访问量下降,用户在移动设备上访问网站的时间不断减少,使用应用的时间越来越多。
(3)Hybird应用
Hybird应用指的是包含独立浏览器实例的移动应用,这个实例通常被称作Web-View,可以在原生应用中运行Web应用。Hybird应用会使用原生应用封装器来实现WebView和原生设备平台的通信。这意味着Web应用可以运行在移动设备上,并且可以访问设备的功能,比如照相机和GPS。
优点:a.跨平台,只开发一次,部署到多个平台,最小化开发成本;
b.和web开发公用技术,可以使用开发网站和web应用的技术来开发移动应用;
c.设备访问能力好,因为WebView被封装在原生应用中,使应用可以像原生应用一样访问所有的设备功能;
d.简化开发,开发流程简单快捷,不需要为了预览重复构建。也可以继续使用构建网站的那一套开发工具。
缺点:a.WebView限制,应用智能运行在WebView实例中,这意味着应用的性能取决于浏览器;
b.通过插件访问原生功能,由于你需要的原生API现在可能还没有插件实现,可能需要一些额外的开发工作来进行桥接;
c.没有原生用户界面控件,如果没有Ionic这样的工具,开发者需要创建所有的用户界面元素。
3.为什么选择Ionic?
Ionic可以为Hybird应用提供看起来和用起来都很像原生应用的体验。Ionic的优点:
a.在Web平台上开发应用,可以使用HTML、CSS、和JavaScript开发类似原生应用的Hybird应用;
b.使用Angular开发,你可以使用Angular的全部功能以及所有第三方模块。Angular的目标是开发主流应用,Ionic把Angular扩展到了移动领域;
c.使用现代技术,如CSS3的新特性动画等,移动端浏览器对Web平台新规范支持的很好,所以你可以使用这些新特性;
d.有社区支持和开源精神;
e.有强大的CLI工具,你可以快速管理开发任务,如在浏览器中预览应用、模拟运行应用或者把应用部署到连接的设备中;
f.Ionic提供了很多辅助开发的服务;
g.Ionic有专职团队进行开发和支持;
h.使用Ionic可以创建类似原生应用的体验;
i.Ionic的性能不比原生应用差;
j.用户界面组件美观,可以根据需求针对应用进行自定义。
缺点:
a.Ionic目前只支持IOS和Android平台;
b.Ionic只保证支持IOS7+和Android4+;
c.不等于原生应用,原生设备API必须在Cordova支持之后才能使用;
d.不能应付大量图像,因为运行在浏览器中,Hybird应用天生就有这个限制。