1 Ionic和Hybird应用介绍
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应用天生就有这个限制。
1 Ionic和Hybird应用介绍的更多相关文章
- Cordova+ionic 开发hybird App --- 开发环境搭建
Cordova 开发hybird App 开发环境搭建 一.一些基础概念: Ant : 简单说来可以这么理解,如果你用记事本写JAVA程序,然后在cmd里输入javac命令编译它,但是有一天你发现每次 ...
- Web App, Native APP,Hybird App 介绍
一.Web App 这个主要是采用统一的标准的 HTML,JavaScript.CSS 等 web 技术开发. 用户无需下载,通过不同平台 的浏览器访问来实现跨平台, 同时可以通过浏览器支持充分使用 ...
- ionic 接触的第一个Hybrid项目
最近需要维护一个Hybird项目,使用的是ionic,由于是第一个Hybrid项目,在这里记录下基本的知识. 先看一下ionic的最基本介绍: http://my.oschina.net/u/2275 ...
- ionic之$ionicGesture手势(大坑)
鄙人来本公司前未用过ionic框架,但由于ionic是基于angularjs封装的,正好我用过angularjs,很荣幸的面试就过了,然后通过该网站http://www.ionic.wang(后面简称 ...
- APP应用的发展趋势
PhoneGap 是什么 PhoneGap 是一个用基于HTML,CSS 和JavaScript 的,创建移动跨平台移动应用程序的快速开发框架.它使开发者能够利用iPhone,Android,Palm ...
- Web前端开发推荐阅读书籍、学习课程下载
转自http://www.xuanfengge.com/fe-books.html 前言 学校里没有前端的课程,那如何学习JavaScript,又如何使自己成为一个合格的前端工程师呢? 除了在项目中学 ...
- 22、(转载)jQueryMobile 知识点总结
本文转自:http://www.cnblogs.com/jxyedu HTML5技术生态介绍 H5的现状与未来 HTML5是用于取代1999年所制定的 HTML 4.01 和 XHTML 1.0 标准 ...
- 01.html5+phonegap跨平台移动应用开发
一.html5+PhoneGap基础知识 (1)html5介绍 HTML5是用于取代1999年所制定的 HTML 4.01 和 XHTML 1.0 标准的 HTML 标准版本,现在仍处于发展阶段,但大 ...
- 小强的HTML5移动开发之路(21)—— PhoneGap
一.PhoneGap是什么 PhoneGap 是一个用基于 HTML,CSS 和 JavaScript 的,创建移动跨平台移动应用程序的快速开发框架.它使开发者能够利用 iPhone,Android, ...
随机推荐
- maven项目如何使用jetty启动?
1.在pom.xml文件中插入下面的片段 <build> <plugins> <plugin> <groupId>org.eclipse.jetty&l ...
- iOS项目目录结构
一. 目前最为流行的目录结构是: <先根据模块后根据功能> 的文件目录结构 优点: 模块分明, 并且开发和维护时方便查阅各个功能 缺点: 可能会出现模块内随意建立文件夹, 导致局部逻辑紊乱 ...
- [POJ2109]Power of Cryptography
[POJ2109]Power of Cryptography 试题描述 Current work in cryptography involves (among other things) large ...
- 跟着百度学PHP[4]OOP面对对象编程-15-魔术方法__call方法
简而言之就是调用了一个类中没有的方法就会自动调用__call()方法, 该参数有两个必须的参数! 第一个参数:调用的不存在的方法的方法名. 第二个参数:调用不存在的方法的参数. 但是总的说回来,__c ...
- am335x sd卡启动开启识别emmc kernel 上的改动
sbc 7109-454 sd 卡启动qt系统后一直识别不了 emmc 也就是mmc1口, 一开始以为是硬件初始化的问题,后面又以为是io口复用,最后才知道是根本没有注册mmc1设备. 更改下面的代 ...
- ubuntu14.04显卡驱动问题(amd5600k集显7650d)
安装ubuntu的时候,多次莫名其妙地黑屏,起初以为是最新得ubuntu14.04安装包不稳定,所以一直尝试了很多次. 重启-->安装-->黑屏(硬盘仍在转动,屏幕上什么都没有)--> ...
- Maven的作用总结
前言: maven项目也是一个项目,类似于javaProject,javaWebProject,就是多了些功能! 1 . 帮你下载jar包 maven项目会有一个 pom.xml文件, 在这个文件里面 ...
- VS2012创建UML项目
1.选择建模工具 2.添加新建项 3.添加UML图或用例图 4.打开工具箱添加
- [大坑]FFT学习
[大坑]FFT学习 Macros #define fon(i,s) for(int i=0;i<s; ++i) #define fone(i,s) for(int i=0;i<=s;++i ...
- html表单样式, table隔行高亮, 长字符串自动换行
2016年1月14日 11:16:54 星期四 效果图: html: <!DOCTYPE html> <html lang="en"> <head&g ...