实践分享:开始用Cordova+Ionic+AngularJS开发App

http://www.cocoachina.com/webapp/20150707/12395.html

 

app500.jpg

本文是一篇关于我本人在使用Cordova+Ionic以及AngularJS开发移动App的过程中的经验的总结,它不是一篇基础入门教程,而是和大家探讨一下关于如何更好的使用这些技术开发一个更好的App。

声明:这是一篇中立的文章,我无意于挑起孰好孰坏的争论,这只是一篇经验分享文,至于为什么选择这种技术,因为我会这个,感觉还不错。

Cordova、Ionic、AngularJS都是什么?

Cordova

Cordova是一款开放源代码的App开发框架,旨在让开发者使用HTML、Javascript、CSS等WebAPIs开发跨平台的移动平台应用程序,其原名称之为PhoneGap,Adobe收购Nitobi公司后,PhoneGap商标保留,代码贡献给了Apache基金会,而Apache将其命名为ApacheCallback,其后发布新版本时,定名为ApacheCordova。

Cordova是一个行动设备的API接口集,利用JavaScript存取这些接口可以调用诸如摄影机、罗盘等硬件系统资源。配合上一些基于HTML5、CSS3技术的UI框架,如jQueryMobile、DojoMobile或SenchaTouch,开发者得以快速地开发跨平台App而不需要编写任何的原生代码。

注意到因为Cordova本身仍是一个原生程式,为App打包时依然需要用到这些系统平台的SDK。

本文将结合Ionic前端框架进行开发。

Ionic

Ionic是一个新的、可以使用HTML5构建混合移动应用的用户界面框架,它自称为是“本地与HTML5的结合”。该框架提供了很多基本的移动用户界面范例,例如像列表(lists)、标签页栏(tabbars)和触发开关(toggleswitches)这样的简单条目。它还提供了更加复杂的可视化布局示例,例如在下面显示内容的滑出式菜单。

Ionic宣称他们极度强调性能,并且通过限制DOM交互、完全移除jQuery以及使用像translate(z)这种特定的硬件加速的CSS滤镜触发移动设备上GPU——与由动力不足的移动浏览器提供的交互相比这种方式提供了硬件加速的交互——等方式使速度最大化。

AngularJS

AngularJS是建立在这样的信念上的:即声明式编程应该用于构建用户界面以及编写软件构建,而指令式编程非常适合来表示业务逻辑。[1]框架采用并扩展了传统HTML,通过双向的数据绑定来适应动态内容,双向的数据绑定允许模型和视图之间的自动同步。因此,AngularJS使得对DOM的操作不再重要并提升了可测试性。

设计目标:

  • 将应用逻辑与对DOM的操作解耦。这会提高代码的可测试性。

  • 将应用程序的测试看的跟应用程序的编写一样重要。代码的构成方式对测试的难度有巨大的影响。

  • 将应用程序的客户端与服务器端解耦。这允许客户端和服务器端的开发可以齐头并进,并且让双方的复用成为可能。

  • 指导开发者完成构建应用程序的整个历程:从用户界面的设计,到编写业务逻辑,再到测试。

Angular遵循软件工程的MVC模式,并鼓励展现,数据,和逻辑组件之间的松耦合。通过依赖注入(dependencyinjection),Angular为客户端的Web应用带来了传统服务端的服务,例如独立于视图的控制。因此,后端减少了许多负担,产生了更轻的Web应用。

开发环境

我所使用的开发环境包括下面这些:

工作站:一台13寸的MacBookProRetina+iPadMini

使用Mac开发前端有很多优势,对于我来讲,最大的优势就在于我还是一个Linux用户,很多的Linux习惯在Windows下面总是会有一些不适应,再者,OSX的系统稳定性以及各种各样优秀的App,也让它一直都成为我的工作利器。

我没有像很多牛逼的大神们购买多块屏幕,我只有一台iPadMini,然后还有一个叫作Duet的App,它可以让我把iPad作为我的Mac的第二块屏幕,一般不需要,但是它真的能提高我的工作效率,而且可以直接使用到iPad的触摸屏,这对于移动开发来讲,很好。

我还有一台Lenovo的Yoga3,装了Ubuntu,不过很少用,显示有点儿别扭,但是,比起其它的PC机,这台还是很不错了,大家也可以试试。

开发工具

以前是Notepad++的忠实用户,然后还有Coda、TextMate、BBEdit、SublimeText等等的,现在用的(而且可能以后会一直使用的)——WebStorm。

转载于:https://www.cnblogs.com/itlover2013/p/4630023.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/405485.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git仓库的基本用法

一、简介 git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的项目。git很容易学习,而且它的占用资源很小,性能也非常好。它超越了subversion、cvs、perforce和clearcase等scm工具,具有廉价的本地分支、…

React开发(249):react项目理解 ant design form加个扩展样式

<Form.Item label"详细地址&#xff1a;" wrapperCol{{ xs: { span: 14 },sm: { span: 14 } }}>{getFieldDecorator(address, {initialValue: type update? activeUpdateData.address : ,rules: [{ message: 请输入详细地址}],})(<Input.TextArea autoSiz…

重庆邮电计算机科学分数线,2020重庆邮电大学录取分数线已公布

重庆邮电大学录取分数线已经陆续出现&#xff0c;下面由出国留学网小编为你精心准备了“2020重庆邮电大学录取分数线已公布”&#xff0c;持续关注本站将可以持续获取高考资讯&#xff01;2020重庆邮电大学录取分数线已公布很多家长和考生们都想知道2020年重庆邮电大学的高考分…

系统集成资质 -考点分析- “三点估算法”出题的形式演化分析

以上内容分析“时间管理”中常考的计算题以及计算题演化的形式。 知识点1&#xff1a;三点估算法 常规考法1&#xff1a;完成活动A悲观估计36天&#xff0c;最可能估计21天&#xff0c;乐观估计6天&#xff0c;求该活动的期望完成时间。 点评&#xff1a;最早考核的形式&#x…

SQL 字符 数字 转换字母

1、将字符中数字转换为中文大写的数字&#xff0c; 注意 100>一零零 而非>一百 123>一二三 而非>一百二十三 CREATE FUNCTION Fn_NumberConvertChinase(number NVARCHAR(50)) RETURNS NVARCHAR(20) AS BEGIN DECLARE res NVARCHAR(20) DECLARE char CHAR(1) SE…

关于检测手机信号强度,wifi信号强度以及检测周围wifi热点的一个小例子

From: http://blog.csdn.net/wanglj0925/article/details/7743182 一.检测手机信号强度 检测手机信号强度需要用到TelephonyManager类 这个类主要提供了一系列用于访问与手机通讯相关的状态和信息的get方法。其中包括手机SIM的状态和信息、电信网络的状态及手机用户的信息。在…

git使用.ignore忽略工程中的文件变动

一、描述 总会有些文件无需纳入 Git 的管理&#xff0c;也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件&#xff0c;比如日志文件&#xff0c;或者编译过程中创建的临时文件等。 在这种情况下&#xff0c;我们可以创建一个名为 .gitignore 的文件&#xff0c…

React开发(250):react项目理解 ant design loding控制页面转圈加载

lecturer,lecturerOrganization,admin,menu,modalOkButtonLoading: loading. effects[lecturer/save] || loading.effects[lecturer/update],spanLoading: loading.effects[lecturer/sa ve] || loading.effects[lecturer/update],

华农计算机学院院长,华农大生命科学技术学院副院长到武生院任职

荆楚网消息(通讯员张雄豆)10月14日&#xff0c;华中农业大学生命科学技术学院副院长赵斌正式上任武汉生物工程学院副院长一职&#xff0c;至此&#xff0c;“名校”与“民校”的合作迈出了坚实的一步。根据武汉城市圈7所部属高校与18所省属高校对口支持合作计划&#xff0c;华中…

vc删除文件夹

//功能&#xff1a; 删除非空目录文件夹//输入&#xff1a; DirName 文件夹名//输出&#xff1a; 删除是否成功//功能&#xff1a; 迭代文件夹内文件&#xff0c;一个一个删除BOOL DeleteDirectory(char *DirName){CFileFind tempFind;char tempFileFind[200];sprintf(tempFile…

hadoop基本操作命令小结

启动和关闭Hadoop 启动Hadoop 1.进入HADOOP_HOME目录。 2.执行bin/start-all.sh 关闭Hadoop 1.进入HADOOP_HOME目录。 2.执行bin/stop-all.sh HDFS文件文件系统操作 Hadoop使用的是HDFS&#xff0c;能够实现的功能和我们使用的磁盘系统 类似。并且支持通配符&#xff0c;如*。 …

SourceInsight 常用快捷键

Source Insight是一个面向项目开发的程序编辑器和代码浏览器&#xff0c;它拥有内置的对C/C, C#和Java等程序的分析。能分析源代码并在工作的同时动态维护它自己的符号数据库&#xff0c;并自动显示有用的上下文信息。Source Insight自动创建并维护它自己高性能的符号数据库&am…

Linux无线网络设置(wpa_supplicant的使用)

From: http://blog.csdn.net/yming0221/article/details/7325198 主机环境&#xff1a;Gentoo Linux 3.1.10 WPA Supplicant工具包可以让您连接到那些使用WPA的AP。因为还只是beta版&#xff0c;所以它的配置方法仍会常常变化——尽管如此&#xff0c;在大部分情况下它已经…

四川省中职计算机考试题,(四川省计算机等级考试题库.doc

(四川省计算机等级考试题库第七章PowerPoint一、判断正误题1.在powerpointZ000的幻灯片上可以插入多种对象&#xff0c;除了可以插入图形、图表外&#xff0c;还可以插入公式、声音和视频。 2.在powerpoint2000的大纲视图中&#xff0c;可以增加、删除、移动幻灯片。 3.用Power…

转载:关于爱情、伴侣、承诺、人生、

关于爱情&#xff1a; 不要认为后面还有更好的&#xff0c;因为现在拥有的就是最好的。 不要认为还年轻可以晚些结婚&#xff0c;爱情是不等年龄的。 不要因为距离太远而放弃&#xff0c;爱情可以和你一起坐火车的。 不要因为对方不富裕而放弃&#xff0c;只要不是无能的人&am…

Net4.0的网站在IE10、IE11出现“__doPostBack未定义”的解决办法。

方法一、浏览器设置成兼容模式。 方法二、安装服务器版的.Net40的补丁。http://download.csdn.net/detail/5653325/6642051 方法三、点击VS的工具菜单--》库程序包管理器--》程序包管理器控制台&#xff08;如果没有“库程序包管理器”的菜单&#xff0c;就先点那个“扩展管理器…

数理统计中的卡方分布,t分布和F分布

有很多统计推断是基于正态分布的假设&#xff0c;以标准正态分布变量为基石而构造的三个著名统计量在实际中有广泛的应用&#xff0c;这是因为这三个统计量不仅有明确背景&#xff0c;而且其抽样分布的密度函数有显式表达式&#xff0c;它们被称为统计中的“三大抽样分布”。这…

电路设计时:TVS 管的最大钳位电压 VCMAX 应不大于电路的最大允许安全电压

TVS(管,也称为瞬态抑制二极管,是一种用于保护电子电路免受瞬态过电压损害的半导体器件。它能够在极短的时间内响应过电压事件,如电源浪涌、雷击、静电放电等,提供一个低阻抗的放电路径,从而限制电压在安全范围内。TVS管的最大钳位电压(V_CMAX)是指TVS管在规定的测试条件…