七年iOS工作经验的我为什么放弃了iOS而选择了Android �C 码农网



七年iOS工作经验的我为什么放弃了iOS而选择了Android �C 码农网

不管怎样,在过去的几年里, ServiceWorker技术和Progressive Web App的概念构建起了一种特色,这种特色使我比以前我使用过的任何web技术更让我开心,而且这种开心的心情会持续很久很久。

ServiceWorker介绍链接: http://html5online.com.cn/articles/2015051201.html

Progressive Web App介绍链接: http://blog.csdn.net/ejinxian/article/details/50082889

我相信在Android里引入ServiceWorker技术和Progressive Web app技术是自从苹果公司CEO乔布斯首次把iPhone手机介绍给用户以来在移动web平台上发生的最重要的事情。

为什么这样说呢?!因为,这是第一次我们拥有一个有着庞大用户基础的移动平台,这个平台让我构建的每一个web app被当做了一等公民看待!

(注意:是的,我知道还有其他的平台试图这样做的,但是它们中没有一个是有着14亿活跃用户的。)

这些新技术最终给了我们开发者一个平台,在这个平台上每一个web app都是一等公民!

而且需要说清楚的是,我不仅仅是在谈论一种将一个美化的标记贴到主屏上的方法!

我正在谈论的是能使我们构建的web app与原生的app别无二致的方法。

这些各种类型的app所遵循的唯一条款是"Progressive Web App"条款。

事实上,我认为Progressive Web App(简称PWA)实际上对原生app有着巨大的帮助,因为你可以立即开始使用它们。你不需要登录电脑搜索界面,然后由搜索界面跳转到一个app商店,再然后等上一两分钟直到一些庞大的二进制包被下载下来。它们就是web app,它们有URL,它们可以被构建加载的超快。因为……我们已经在web上优化加载时间的性能很长时间了。

用户仅仅需要很少的磨合时间就可以开始使用它们。而用户需要考虑的是它们如何来处理你的转换数据!

由于在Android行业中经验的增加,我敢肯定企业针对他们的Android用户有着这样强烈的疑问:他们有必要构建原生Android app吗?

那么到底什么是Progressive Web App呢?

出于某种原因Google公司已经在设法教一代的开发者什么是Polymer框架和Angular框架。不幸的是,现今我遇到的和交谈的绝大部分web开发者对什么是ServiceWorkers或者什么是Progressive Web App

还是零的概念。

Polymer框架简介链接: http://www.linuxidc.com/wap.aspx?nid=102184&cid=10&sp=1348

Angular框架简介链接: http://www.jb51.net/article/60494.htm

一些人产生上面问题的原因是因为Progressive Web App完全是崭新的东西,而最近产生上面问题的人数在减少,情况得到了改善……上帝啊……我希望这种改变。

你可以这样想象一个progressive web app:

它是用HTML,CSS和JS脚本编写的一个app,而且它完全可以被当成一个原生的app.

这包括:

1.在手机主屏上运行。

2.在Android的app切换器上作为一个单独的app(不是作为浏览器App的一部分)运行。

3.正真的离线行为…这意味着当你用手指点击app图标时……不管它是否是在当前网络状态它都会打开。

4.即使当app和浏览器关闭时,它仍然能在后台运行并触发操作系统级的消息通知。

这些app作为一个标签开始生存和运行在你的浏览器里,而不是作为一个无用的网页上面写着"请按照我们的app"标语开始的。然后渐渐地它们会被更多的安装直到最终成为操作系统的一部分。

起初,它和你访问的其他网站没有什么不同。但是,然后你如果在你的浏览器里再次访问同一个站点或者app,你的浏览器会巧妙地问用户是否愿意把它添加到他们的桌面。

从这一刻开始它对用户来说就变得与原生app一样了。

并且,如果你正确的构建它们,通常用户根本不需要下载它们或者浪费时间等待下载。这也就意味着把它添加到主屏幕上,app会立即生效,这中间的安装过程会很短。另外,设想一下它会为你的转换做些什么?是吗?(不,我不是加拿大人)(大概加拿大人精于计算).

幸运的是,我们不必去完全猜测它们的商业影响。我们实际上从印度一家名叫FlipKart价值200亿美元的在线零售商那里获得了一些真实的数据,这家在线零售商上线了一个PWA并且他们共享了他们的一些数据。

从FlipKart的数据中筛选出的关键重点:

  • 40%的回头客户周而复始的访问他们的在线零售网站。
  • 63%的转换是来自用户的主屏访问。
  • 用户在FlipKart Lite(移动端)上花费3倍的时间。

这些数据来自Alex Russel最近就手机的下一步是什么的主题发表的流利演讲。我支持你去看看并且在你所在的公司里把它和你的产品经理和你的领导分享分享。那很好解释了什么是Progressive WebApp和为什么选择Progressive Web App.

相关阅读查看:

那么这对我们意味着什么呢?

那意味着我们作为web开发者最终能构建快速流畅的完全可以离线的并且用户隐私可以得到保护的app,而且app可以在交叉平台上运行而不用向苹果公司缴纳任何该死地App Store税收,不再需要等待审批过程,用户不再会伴随着"在使用这项服务之前请安装我的app"的声音而被拒之门外。

那么关于IOS的支持呢?

很好,它妙就妙在即使service worker在IOS上的支持不存在,IOS用户仍然可以使用你的web app.

他们只是没有获得额外的功能,比如离线功能和推送消息功能。

但是你也可以把Cordova捆绑进你的app而且还可以使用Service Worker插件,理论上这将使你用同样的代码去做这些事情,但是它们捆绑到一起后就可以看做是一个IOS app了。

Cordova介绍链接: http://www.cnblogs.com/luoguoqiang1985/p/3574738.html

我为什么要关注?React Native现在出现了并且可以用来解决同样的问题。

React Native介绍链接: http://blog.csdn.net/u011068702/article/details/49431211

就我个人而言,我实际上有些希望像React Native的工具不存在的。耐心些听我解释。React Native是一个令人既吃惊又印象深刻的工具,它使我们可以使用我们的JS编程技巧来编写原生的IOSapp.

但是就像我一直所说的……我不认为我们应该构建原生的app,除非我们完全需要这么做。

React Native产生的最终结果是因为它的存在和因为它主要针对的是web开发者,我们现在有web开发者涌向开发原生app,因为有了这个框架他们有能力开发原生app了!

我怕这种变化在无形中破坏我们使用我们集体讨价还价的力量来促使苹果公司实现在IOS中对Progressive Web App支持的能力。

需要澄清的是,我完全理解它为什么会被创建出来,而且我也非常的尊重它所代表的技术成就和尊重它背后的开发商。

我仅仅是不想让我们停止去促使苹果公司改善在IOS中对web的支持。

总结


Read full article from 七年iOS工作经验的我为什么放弃了iOS而选择了Android �C 码农网


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts