Ionic 是下一代 APP 开发框架

最近 Facebook React 团队释出了 React Native, 用来构建 Mobile Native 应用. 非常给力的口号即是标题所指: Learn Once, Use Anywhere.

我突然觉得, 他们正好把我思想的口号给用去了( 不过我没想到这么美的词 ), 因为我已经在更早的时候就决定要讲一讲 Ionic 了, 这个口号也同样是: Learn Once, Use Anywhere, 但是, 加了一句, For AngularJS.

开始 Ionic 之前, 我们要先回顾下历史.

Web 领域的历程

Web 领域从 1995 年第一个真正的网站建立到 2015 年, 发展的飞起. 整体而言, 我认为经历了以下发展阶段:

原始期 - 拼接字串( 用 C, C++, Bash 编写 CGI )

语言期 - 专为 Web 而生的语言 php, 商业化项目 jsp

MVC 框架期 - Java 秀的飞起, 最著名的当属 J2EE, 以及后起之秀 Spring

MVC 框架颠峰期 - 当属 Rails, 将动态语言的优势发挥到极致, 以及各种语言衍生的一大批类 Rails 框架

前后端分离期 - 目前所处的 "混乱" 时期

我认为, 前后端分离是必然的趋势, 切看我的分析.

前后端分离的必然原因

Web 刚兴起的时候, 它真的只是 "Web", 它只管浏览器的渲染, 大家头疼的只是各家浏览器的兼容性问题. 于是乎, jQuery, Bootstrap 等和它们的组件们层出不穷, 来解决这类问题.

随着 Web3.0 的到来( 我参考 <文明之光> 发明的词, 意指移动端 Web 的起步 ), 我们发现, 现在的问题不是浏览器的问题了, 而是伴随着各种各样的屏幕, 以及各种各样的嵌入Web. 而且, 最擅长构建界面的 Web 技术还没有打入 APP 阵营.

我们以前的经验似乎都不够用了, 但是, 我们发现, 如果不把浏览器当浏览器, 而把它们当作数据处理层( 这要求浏览器拥有很高的计算能力, 以前这不可想像, 而但是, 一个 iPhone5 的手机处理能力超过几年前的一个 PC ), 服务器只提供数据( 目前最流行的方案即 Restful API ), 如此, 我们就可以解决 Web3.0 下的主要的问题:

屏幕的多样性( Web 渲染技术是目前最强大的 UI 渲染技术, 没有之一, 可以渲染各种屏幕效果无压力 )

用户体验 ( 在移动网络还不够给力的时候, 前端代码预先下载简直完美 )

通过这样的革新, Web 技术自然而然渗入到原生 App 的领域. 其优势在于:

开发效率更高( 我认为等到 Web APP 技术成熟, 至少十倍于原生 App 开发效率 )

跨平台开发( Web APP 可以做到基本跨平台使用, 并且随着技术推进, 可以做到接近原生性能 )

最重要的一点, 学一次, 到处用.( 当你掌握了前后端分离的开发技术, 你既可以写 APP, 又可以做网站, 不仅 iOS, 而且 Android, 甚至于 WinPhone )

既然如此, 是时候影响到原有的 Web 开发技术了:

在 Web3.0 的发展下, 传统的 MVC 框架, 会转变为前后端分离的开发方式. 这样, 你就可以学一次, 到处用.

AngularJS 领域下的 Learn once, Use Anywhere 新秀: Ionic

AngularJS 是一个类似于 Rails 的全栈式的前端框架, 它拥有自己的路由, 控制器, 作用域, 和组件, 非常适合作为前端的全栈基础框架. 而 Ionic 正是基于它而完成一个框架:

Ionic 目标是开发原生 APP 而不是 Web APP, 从体验上如此.

Ionic 可以操作大部分原生 API, 因为它基于 Cordova ( 一个可以用 JS 操作原生 API 的基础项目 )

Ionic 是面向未来的框架, 换句话说, 它是为新手机准备的.( 官方仅支持 iOS6+, Android4.1+ )

Ionic 的技术构成为:

AngularJS 为基础, 在其上封装了众多组件, 如 侧面滑动, Tabs, 刷新, 无限滚动等等你能想到的与原生 APP 类似的组件.

一套 CSS 样式, 一方面配合上面的组件, 另一方面并提供给你使用.

一套改进的工作流, 基于我之前那篇 Web 工作流里用到的所有的工具.( 默认是 NodeJS, Gulp, Bower )

一套命令行工具, 帮助你快速开发, 测试, 构建, 发布你的 APP.

Ionic 工作流非常简单:

ionic start myapp [template]

像 AngularJS 应用一样写自己的页面与控制器( 与原生效果几乎一致 )

ionic platform add ios

ionic build ios

ionic emulate ios

一些国内的例子:

CNodeJS

WBlogApp

Ionic ShowCase

就在最近, Ionic 上线了 LiveReload 功能, 你可以在模拟器与测试机器( 没错, 是你的手机 )上, 得到实时的代码刷新功能.( 此刻, 我想, 真正的 iOS 工程师还在编译他们的 xcode 吧.)

如果你就是工程师, 马上去试试吧:http://ionicframework.com/getting-started/

在这个领域, Ionic 的野心就跟 Web2.0 时代的集大成者 Rails 一样大, 都想建立整个开发流的生态环境.

反哺 Web2.0

一旦你的团队计划一并开发 APP, Web APP, 以及网站, 那么, 最佳的选择即是一套前后端分离的技术栈, 它可能是这样:

AngularJS( 前端框架 )

Ionic ( APP 全栈框架 )

Angular UI ( Bootstrap for AngularJS )

Rails / ExpressJS / Go( API 后台 )

现在, 我们可以不再使用传统的 MVC 框架的 Web 开发工作流, 而只需要关心前后端分离后的工作流:

API 开发与测试

前端工作流( 类似于 Yeoman )

你既不需要学习传统的 MVC 中的 复杂的 form 处理流程, 也不用关心 session, cache 等在 Web3.0 不存在的问题, 只需要关注好前后端分离之后的问题即可:

SEO ( 已经有服务端渲染的方案解决了:https://prerender.io/)

用户体验 ( 因为前后端分离后网页也变的更快, 也许模拟的慢一点, 会让某些人更习惯点 )

与原生 APP 相比性能的优化

最后, 使用 AngularJS 与 Ionic, 运用同一种思想开发 APP 与网站, 这就是:

Learn Once, Use Anywhere.


原文:http://yafeilee.me/blogs/54d67d4a6c69341204090000?utm_source=tuicool&utm_medium=referral

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354

推荐阅读更多精彩内容

  • 这是我写的一系列文章中的第一篇关于如何利用Web开发技术为iOS和Android系统构建混合应用程序(Hybrid...
    bubuli阅读 2,609评论 3 29
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,110评论 25 707
  • 2017年的一开始就感觉时间紧张起来。不仅是自己已越过不惑之龄,更是发现周围的牛人奔跑得已经只能看见他们身后扬起的...
    礼明阅读 213评论 0 0
  • 无处诉说,只有在简书上自己对自己诉说着,倒也是难得的坦诚相诉,没有润色也没有浮夸。唯有当下每一个念头以及这念头带给...
    遇见哟哟鱼阅读 63评论 0 0
  • 1. 在心里列了几个时间节点,盘点自己的这些年,没有大成绩,但也算过得去。 一直也算努力读书勤奋工作,在很多人的眼...
    繁花吕葳阅读 650评论 4 47