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应用介绍的更多相关文章

  1. Cordova+ionic 开发hybird App --- 开发环境搭建

    Cordova 开发hybird App 开发环境搭建 一.一些基础概念: Ant : 简单说来可以这么理解,如果你用记事本写JAVA程序,然后在cmd里输入javac命令编译它,但是有一天你发现每次 ...

  2. Web App, Native APP,Hybird App 介绍

    一.Web App 这个主要是采用统一的标准的 HTML,JavaScript.CSS 等 web 技术开发. 用户无需下载,通过不同平台 的浏览器访问来实现跨平台, 同时可以通过浏览器支持充分使用 ...

  3. ionic 接触的第一个Hybrid项目

    最近需要维护一个Hybird项目,使用的是ionic,由于是第一个Hybrid项目,在这里记录下基本的知识. 先看一下ionic的最基本介绍: http://my.oschina.net/u/2275 ...

  4. ionic之$ionicGesture手势(大坑)

    鄙人来本公司前未用过ionic框架,但由于ionic是基于angularjs封装的,正好我用过angularjs,很荣幸的面试就过了,然后通过该网站http://www.ionic.wang(后面简称 ...

  5. APP应用的发展趋势

    PhoneGap 是什么 PhoneGap 是一个用基于HTML,CSS 和JavaScript 的,创建移动跨平台移动应用程序的快速开发框架.它使开发者能够利用iPhone,Android,Palm ...

  6. Web前端开发推荐阅读书籍、学习课程下载

    转自http://www.xuanfengge.com/fe-books.html 前言 学校里没有前端的课程,那如何学习JavaScript,又如何使自己成为一个合格的前端工程师呢? 除了在项目中学 ...

  7. 22、(转载)jQueryMobile 知识点总结

    本文转自:http://www.cnblogs.com/jxyedu HTML5技术生态介绍 H5的现状与未来 HTML5是用于取代1999年所制定的 HTML 4.01 和 XHTML 1.0 标准 ...

  8. 01.html5+phonegap跨平台移动应用开发

    一.html5+PhoneGap基础知识 (1)html5介绍 HTML5是用于取代1999年所制定的 HTML 4.01 和 XHTML 1.0 标准的 HTML 标准版本,现在仍处于发展阶段,但大 ...

  9. 小强的HTML5移动开发之路(21)—— PhoneGap

    一.PhoneGap是什么 PhoneGap 是一个用基于 HTML,CSS 和 JavaScript 的,创建移动跨平台移动应用程序的快速开发框架.它使开发者能够利用 iPhone,Android, ...

随机推荐

  1. 观察者(Observer)模式

    http://www.cnblogs.com/zhenyulu/articles/73723.html 一. 观察者(Observer)模式 观察者模式又叫做发布-订阅(Publish/Subscri ...

  2. python 集合 -----直接用逗号连接的是元组,不是list

    t = 12345, 54321, 'hello!' >>> t[0] 12345 >>> t (12345, 54321, 'hello!') 元组:元组由逗号分 ...

  3. hiho #1372:平方求 (bfs)

    #1372 : 平方求和 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 对于一个非负整数n,最少需要几个完全平方数,使其和为n? 输入 输入包含多组数据.对于每组数据: ...

  4. (备忘)android清单文件中<meta-data>标签,以及<intent-filter>下的<data>标签及其他标签

    1.metadata可以写在application下也可以写在activity下,作为全局或activity内共享的数据 以键值对形式保存 <meta-data android:name=&qu ...

  5. Delphi结构体的扩展,可以自动初始化,反初始化,自定义拷贝函数.

    转载:http://www.raysoftware.cn/?p=518&utm_source=tuicool 恭贺Delphi XE7诞生,Delphi XE7在编译器内部集成了我之前所实现的 ...

  6. Javascript闭包——懂不懂由你,反正我是懂了

    摘要:“如果你不能向一个六岁的孩子解释清楚,那么其实你自己根本就没弄懂.”好吧,我试着向一个27岁的朋友就是JS闭包(JavaScript closure)却彻底失败了. 越来越觉得国内没有教书育人的 ...

  7. JavaScript——Window对象

    1.serTimeout()和setinterval()可用于注册在指定的时间之后单词或者重复调用的函数. 2.window对象的location属性引用的是Location对象,表示该窗口当前显示的 ...

  8. Struts2学习笔记《三》

      Struts2的工作原理图: struts的用法:

  9. Verify Preorder/Inorder/Postorder Sequence in Binary Search Tree

    Verify Preorder Sequence in Binary Search Tree \Given an array of numbers, verify whether it is the ...

  10. 【leetcode】Search in Rotated Sorted Array II

    Search in Rotated Sorted Array II Follow up for "Search in Rotated Sorted Array":What if d ...