为什么要爱开发app源码论坛上线论坛手机app?

查看: 157|回复: 0
“搞个APP要多久?”一个开发者的内心独白
主题帖子精华
运营币1335
马上注册,全球最大的中文互联网运营论坛!
才可以下载或查看,没有帐号?
这是一个“如有雷同,纯属巧合”的故事,外加一些废话,大家请勿对号入座。开始了……
我有些尴尬地拿着水杯,正对面坐着来访的王总,他是在别处打拼的人,这几年据说收获颇丰,见如火如荼,自然也想着要进来干一场,尽管王总从事的行当也算跟IT沾边,但毕竟太长时间不接触技术,有些东西不太熟,总要咨询下我这个在一线开发混了十几年的老程序员,十几年的开发,有好几种可能性,不过这不是重点,所以暂时忽略掉这个细节吧。
我之所以尴尬,是对王总的需求有些不知如何回答,仿佛陷入了某种习惯性的沉思中。
王总站了起来,把手机递到我面前,说:“你看看,就这样一个。”他不太熟练地在屏幕上划了几下,我并没有很认真地看,因为我知道这个问题很难,那就是所有的开发者都会被问,并且可能是被问得最频的一个问题:“开发这么一个APP需要多长时间?”我很想说不知道,这可能是最直截了当和准确的回答,但面对王总这位老朋友,我要是这么回答估计有些失礼,所以这个时候,我除了大致思量了一下他所指的那个APP大致涉及到哪些方面之外,还要组织下自己的语言,如何用非常得体的话告诉他,这个事情我估算不出。“你看,就这么简单的一个APP”,王总继续在屏幕上拨弄了几下,然后带着几分期待的眼神看着我。
我谨慎地说:“坦白说,我说不准,我这方面经验也不是很足,尽管做过APP开发,但又跟这个很不一样,得具体分析好所有的逻辑,才能估算出时间。”
王总对我的说法似乎不以为然,他晃了晃手机,说:“我要求不多,其实比这个还简单”,他指着屏幕上某些地方,继续说:“这个,这个,这个都可以不要,只需要这么一个列表,里面有详情,可以查看修改……”
我心里很自然地想到这是很典型的“想当然简单”的态度,我想我得让他认识到这个问题的复杂程度,我反问道:“需要登录吗?”
王总稍作停顿后,说:“那当然。”
“什么登录?用户名密码方式,还是手机登录,抑或像QQ,微博,微信这种可以借用的第三方登录?”
王总这回似乎想了一下:“作为移动互联网,我想手机登录肯定是要的,QQ,微博,对了,微信,微信最好也要……哦,你前面说用户名密码,这个应该也是要的吧。”
我很流利地接着问:“那总得有注册,如果你打算用手机登录,那得找个短信平台,还有微信登录,你得先做好企业身份认证,对了,有登录,有密码,那密码找回功能也得有吧。”
“这是肯定的。”
“同时有多种登录途径,你必须要想出一种合理的逻辑来将它们‘整合’,最常见的当然是账号绑定,例如给你的账号绑定手机号码,这样就能用手机号来登录同样一个账号,对微信登录也同理,但如今移动互联网的用户们都挺厌恶注册流程的,所以往往会要求直接手机登录或者直接微信登录,自动完成注册过程,那考虑这种情况,如果用户先用微信登录,然后再用手机登录,而不是绑定,那么就会产生两个不同的账号,而且无法将其再‘整合’起来,我们得想出一套比较完善的方案……”
王总对我所说的似乎有些缺乏耐心:“没必要这么复杂吧?你看看这个APP,这些不都有吗?”
“有没有我前面所描述的那个问题,你尝试过了吗?”
但王总似乎对问题并不关心,他只想知道做这么一个APP需要多长时间,当然要多少钱,这也是他关心的问题,他拿出了信心满满的语气:“有问题怕什么?困难算什么?这些我相信都能解决,但时间很要紧,得快,我们的竞争对手不会等我们,就这么一个东西,你想想看,要多久?”
看他的架势,像十足那种混得风生水起的成功人士,而我这种身份低微的程序员在他面前确实是有口难言,我本来还想继续告诉他细节的重要性,却被他打断:“不,不需要有多精确,你只需要估算一个范围,两个星期?或是两个月?”
我觉得我没必要再隐瞒什么了:“我真的不知道,也许一支优秀的团队两个星期就能做好(不过我自己可不相信有这么牛逼的团队),但我很明显不是那个能创造这种奇迹的人。”我心想其实就算说出了“两个星期到两年”这么一个开玩笑式的范围,也可能是错的。
王总似乎对我这样的回答很失望。但他是个执行力很强的人,想做一件事,就一定会行动,行动一定快,一定要有结果,这种雷厉风行的行事风格,确实,我挺欣赏,不过他的这个项目,我可真帮不上忙,但我还是出于礼貌,说道:“技术方面有什么问题,还是可以来问我的。”
====================== 不怎么华丽的分隔线 ======================
“做一个APP需要多长时间?”这个问题估计比测一个人还能活几天还难,一个条件如此不充分的问题,如何回答呢?
总体来说,需求越是明确,团队越是成熟,估算出来的时间就越是准确。而软件开发这个事情,不管发展多少年,不管提出了怎样的方法论,都没办法像传统制造业那样把“工时”算得那么精确,其内部错综复杂的逻辑关系使然,软件工程,绝无可能量产。
用户看到的只是一个APP,如果他用的是iOS系统,也许他根本就不会接触Android,不知道开发者除了iOS版之外,还需要做一个Android版,(有没可能还有Windows版?这样工作量无疑更大)或者,网页版搞定一切?也许你真正动手做过后就不会这么认为,再说微信小店那种模式真能适用于所有场合么?而且,如果不是网络出现异常的话,一般用户也不会注意到服务器的存在,服务器总是那么默默无闻地为用户全天候地工作,它的开发难度恐怕也不亚于APP本身,而负责APP运维的还需一些人力,大了之后甚至需要组建一个专业团队,他们需要一个“后台”,能随时查看和处理数据,如果需要随时随地都能查看和处理数据,恐怕还得给后台专门弄个APP。
这个道理就有点类似:我们看到了战机在天上华丽地完成了歼敌任务,以为只是战机本身很牛,往往忽视了战机相关的那些配套,如果没有娴熟的飞行员、作战指挥中心、地面雷达、预警机、补给、机场或航母、地勤人员等等,那么战机将失去战斗力。APP也一样,它不是一个只要能跑起来就完事的东西,支持它的配套设施和维护工作丝毫不比APP本身简单。
除开这些大的方面,细节上也带有许多的不确定性,所以一支成熟的团队尤为重要,一个经验丰富的开发者会知道,至少大致知道这个开发过程会遇到哪些问题,哪些问题比较简单,哪些问题则可能需要耗费大量的时间,这得依赖经验。我有一句话常常挂在嘴边,那就是:“没做过的东西别轻易说简单。”“想当然简单”的态度对项目没有任何好处,如果自己不确定,那么去咨询一个有这方面经验的人,就算得不到具体的答案也有大致的方向,沿着这些方向研究一下,就能知道会面临的那些问题,当然往往还不是全部。
关于“低估了难度”这事情,我过去的公司有个经典故事,当时有个小项目,就是准备把一套已经在仪器上使用的只支持英语的程序增加多语言支持,程序并不大,涉及内容也不算太多,工程师一开始认为这只是个简单的翻译工作,顶多两个星期就能完成,但一做下去就发现不简单,首先翻译得找专业人士来做,自己做不好,我们没人精通欧洲各国语言,接下来还有单位换算,有些国家用公制,有些用英制,这个得考虑,包括日期显示格式也得考虑,一下子不知道多了多少工作,这些都差不多了之后又发现了德语单词过长,我们的仪器的屏幕显示不下,超出范围,于是再调字体,做精简,前前后后开会讨论了N次,最后想Release的时候发现这么一改,程序的Size变大了很多,有些仪器的存储器装不下,这下大家可都傻了,优化呗,精简呗,程序开始有些凌乱不堪了,最后勉强通过质控部检验,总算发布了,发觉足足搞了半年。不过如今想想之所以耗费了这么多时间,一个很重要的原因是经验不足,对多语言,国际化这块不熟,走了不少弯路,所以我前面也提到,成熟的团队尤为重要。
我们在估算项目时间的时候,往往只算了“写代码的时间”,而把那些和老板或客户扯皮,做需求分析,设计,测试,和修复bug的时间不考虑进去,而这些时间加起来通常比写代码的时间多出不少,我个人是不轻易为了讨好老板而把完成时间说得很短的,为啥?——根本做不到嘛,干嘛要撒谎?如果一个需要一星期完成的新功能开发,我通常得把这个时间double,这已经算比较“不保守”的了。
即便只算写代码的时间,也往往会被低估,老板或客户对你开发的东西很可能不满意,或许你误解了他的功能需求,或者界面有点卡顿,或者这个图标颜色不好看,你是开发者,不是美工,虽然凑合可以当一下美工,但毕竟不专业,更重要的是做做UI设计,做做图这种事情,也得耗费不少时间,当你为“一个像素”焦头烂额的时候,是不是很渴望团队中有一名设计师?这时候得提醒下老板:你必须要在时间和功能之间,做点取舍。老板当然很不高兴,但也不得不在功能上做出了一些妥协。虽然这样做能让难产的项目早点上线,但却为来日项目的失败,给老板添加了一个很好的借口:我们的工程师太差了,没按我说的去做。
老板或客户除了会抱怨你做出来的东西不够好看之外,还会再提很多东西:这个界面能不能改成多选,能否增加通知功能,已读未读状态要有,界面能不能再流畅点,昨晚程序咋“闪退”了一次……需求只管提功能,但没说具体这个UI要多美观,也没说程序稳定性要好,更没涉及到要达到多大的吞吐量,当然,可能更重要的——安全性也没提,你心一惊:是啊,如果有黑客,不,只要稍微懂一点技术的恶意用户想刷爆我们的服务器,那简直太简单了,而这些防护措施我都没做!所幸的是项目名气太小,暂时无需考虑这个。(貌似大多数APP都活不到需要考虑这个的时候)
所有这些,你说功能也好,细节也好,稳健性也好,都不是能自动从土里长出来的东西,都得需要花时间去想,去做,有些甚至还是个“系统工程”,如果头痛医头脚痛医脚去做的话,系统里到处充满“飞线”,无疑会给将来的维护留下了许多隐患。攻城狮的你,都考虑了吗?更别说老板为了节省成本而给你购置的低性能电脑让你整天抓狂这些“无关紧要”的事。
====================== 不怎么华丽的分隔线 ======================
话说王总告别我之后就以迅雷不及掩耳之势注册了公司,注册了域名,搞到了办公室,还一下子叫来了一帮子人风风火火地搞了起来,这种发展势头,这种干劲,我只有自叹不如。心底里真有些后悔怎么没跟他去干事业,不过这只是感性的一瞬间,理性又在接下来的几百毫秒里将我拉了回来:还是别去好,跟他沟通不来的。
王总的项目后来以一飞冲天之势迅猛发展,而他如今已经是一家估值几亿的公司的CEO,我嘛,越来越觉得自己是个Loser,独自坐在办公室里,还是拿着那个水杯,懊恼不已——打住!这样是不是比较有戏剧性?可虽然一开始我就声明此故事“如有雷同,纯属巧合”,但也不能胡乱瞎编,真正的结局是:确实风风火火弄了几个月,后来就突然杳无音讯了,本来想打电话问问王总究竟怎样,无奈他变成了另一个超级忙人,再无心思跟我聊家常了。嗯,结局还是差不多,我还是那个继续苦逼地坐在办公室里的程序员,唉,别想了,开工吧!
本文转自微信公众号知名app合作群
姑婆那些事儿()是互联网推广运营知识分享平台,关注移动推广(android,ios)运营,网站推广运营、校园推广及互联网领域最新动态 。欢迎关注我们的微信(gupo520),新浪微博(姑婆那些事儿)。
更新日期:日文章标签: 文章链接:/news/825.html
你知道吗?在运营者论坛只要认真回帖,就会有20运营币和1达人分奖励哦~
Powered by Discuz! X3.2
用微信扫一扫关注运营者微信
用手机扫一扫下载运营者APP手机APP三年内将彻底消失,以后全靠H5了
[思路网注] 过去这些年,HTML5颠覆了PC互联网的格局,优化了移动互联网的体验,接下来,HTML5将颠覆原生App世界。这听起来有点危言耸听,但若认真分析HTML5的发展史,你会发现,这个世界的发展趋势确实就是这样。
2007年W3C(万维网联盟)立项HTML5,直至2014年10月底,这个长达八年的规范终于正式封稿。过去这些年,HTML5颠覆了PC互联网的格局,优化了移动互联网的体验,接下来,HTML5将颠覆原生App世界。这听起来有点危言耸听,但若认真分析HTML5的发展史,你会发现,这个世界的发展趋势确实就是这样。HTML5对开发者的7大优势跨平台:在多屏年代,开发者的痛苦指数非常高,人人都期盼HTML5能扮演救星。多套代码、不同技术工种、业务逻辑同步,这是折磨人的过程。有点类似个人电脑早期世界,那个时候的每家电脑都有自己的操作系统和编程语言,开发者疲于做不同版本,其实DOS的盛行也很大程度是因为开发者实在没精力给其他电脑写程序。跨平台技术在早期大多因为性能问题夭折,但中后期硬件能力增强后又会占据主流,因为跨平台确实是刚需。快速迭代:移动互联网是一个快鱼吃慢鱼的时代,谁对用户的需求满足的更快,谁的试错成本更低,谁就拥有巨大的优势。互联网产品大多免费、且有网络效应,后入者抢夺用户的难度非常大。使用原生开发,从招聘、开发、上线各个环节的效率都慢一倍以上,而且参与的人越多,沟通效率往往拖慢不止一倍。持续交付:很多人有这样的体会,一个原生应用上线Appstore,突然有一个大bug,只好连夜加班修复,然后静静等待2周或更长时间的Apple审核,这2个星期被用户的涂抹淹死,市场上一片差评,用户大量流失。等新应用被审核上线了,用户已经卸载了。但是,HTML5没有这些问题,你可以实时更新,有问题立即响应。大幅下降成本:创业者融资并不容易,如何花钱更高效非常重要。如果你使用原生开发的App和竞争对手使用HTML5开发的App没什么区别,但你的开发成本高出一倍,我相信没有投资人会喜欢给你投钱。开源生态系统发达:HTML5前端是开放的正反馈循环生态系统,大量的开源库可以使用,开发应用变得更轻松、更敏捷,当然这也体现在了快速迭代和成本下降上。不过更重要的是,这种开放的正反馈循环生态系统未来的生命力是比原生生态系统更强劲的。开放的数据交换:HTML是以page为单元开放代码的,它无需专门开发SDK,只要不混淆,就能与其他应用交互数据。开发者可以让手机搜索引擎很容易检索到自己的数据, 也更容易通过跨应用协作来满足最终用户需求。更容易推广、更容易爆发:导流入口多:HTML5应用导流非常容易,超级App(如微信朋友圈)、搜索引擎、应用市场、浏览器,到处都是HTML5的流量入口。而原生App的流量入口只有应用市场。聪明的HTML5开发者当然会玩转各种流量入口从而取得更强的优势。流量大:前段时间微信朋友圈风靡一时《神经猫》,这个游戏如果放到Appstore,绝对没有那么多流量,超级App带来的流量,远大于原生应用市场。假如微信允许游戏在桌面创建快捷方式、假如游戏后续升级解决持续娱乐问题,未来不可想象。导流效率高:除了入口多、流量大,导流效率高也不可忽视,谁都知道:页游和端游打同样的广告,广告变用户的转化率,页游远远高于端游。HTML5对最终用户的3大优势大幅降低使用门槛为什么流媒体会替代下载视频成为主流?为什么页游会如此火爆?只因用户太“懒”。让用户更方便的满足需求,有时效果好于更多的满足需求。用户眼睛看到一个兴趣点,点击后,就应该立即开始满足用户需求。比如流媒体可以立即看,页游可以立即玩。而目前的原生应用市场,用户需要这样操作:选一个应用、等待下载、确认权限、等待安装,然后点击打开。这样糟糕的体验迟早要被颠覆。不管是App、游戏还是音视频,未来都将即点即用。谁先满足用户这个需求,谁就制胜。实时更新、差量更新的优秀体验HTML5应用可以绕开应用市场的限制进行自主实时更新,用户可以快速享受新服务。而且这种更新完全可以是差量更新,比如某个HTML页面或某个js文件有问题,只更新这个几k的小文件就可以了,这比原生应用的更新体验好太多。跨应用的使用体验目前手机应用切换是以桌面或任务管理器为中心的,但事实上这些中心很影响效率和体验。用户想出差三亚,先打开去哪App订票,然后切回桌面,再找到并打开天气App,搜索输入三亚,再切到桌面,找到并打开航旅纵横App,输入航班号值机,哦对了,航班号多少来着,再切到桌面,找到并打开去哪App看航班号,最后找到并打开租车App,输入租车地点,然后再切回桌面。在原生应用体系下,用户只能这样。但在HTML5体系下,他不需要切回桌面,他可以在App间方便的直接跳来跳去,而不是使用一个一个孤岛A他更不用重复录入数据,应用间可以方便的互相传递数据。这种模式需要一点想象力,但未来迟早会来。分析至此,我们可以明显的看出,不管是站在最终用户角度、还是站在开发者角度,HTML5必将取代原生应用当前的位置。并由此引发一系列颠覆。还有什么会被改变?HTML5的爆发,原生App生态系统的颠覆,是一场产业革命,很多角色都会受到影响,我们来预测一番。新型HTML5引擎战火将烧起标准的HTML5引擎并不能解决HTML5的所有问题,拥有大流量入口的互联网巨头,莫不在思考内嵌更优秀的增强引擎。腾讯推出了X5浏览器引擎,就是看中这个机会。目前各路浏览器厂商、应用市场厂商、甚至rom厂商,都在努力整合更优质的浏览器引擎。假使微信内嵌的Webview可以运行更优秀的canvas游戏、假使360手机助手可以发行即点即用的HTML5应用并且能力体验与原生一致、假使小米rom内置更强大的webview使得所有HTML5应用在小米手机上运行的更流畅。一个巨头开始行动,所有巨头都会闻风而动,没错,这场战役会是移动互联网世界的二次世界大战。应用发行市场将洗牌由于超级App的巨大流量能轻易成为HTML5应用的入口,并且会形成大者更大的效应,传统的应用商店、甚至线下预装,这些流量不足和效率偏低的发行模式将被挤出市场主流。本身也是超级App的大流量应用商店,如果转型得当,也将以发行HTML5应用为主。广告和统计市场原生的广告和统计SDK提供商会面临尬尴,Google、百度等基于网页的广告和统计服务会取得更大的优势。开发者不再需要打包SDK,引入一个Script即可。开源技术将在移动互联网领域更加流行HTML的开放性造就了大量的开源产品,也反向促进了HTML的繁荣。在Github上有大量的JS框架,而原生的开源代码数量相比甚少。而未来移动互联网世界将因为开源而发展的更迅速,这里也同样存在类Github厂商的机遇。开发工具的变化早期HTML只需要记事本写几个Tag,中期的HTML、JS、CSS比较复杂,需要更高级的文本编辑器,但HTML5到来后,它的代码量、复杂度、开发模型将与原生开发看齐,需要类似XCode、Eclipse等专业的IDE工具来解决开发、调试的问题。一些以会使用记事本写代码为荣的开发者,将面临思路转换甚至被更高效的开发者淘汰。性能分析调优目前很多针对原生应用的性能分析调优工具或服务,未来也面临转型,HTML5应用的性能分析调优是另一个世界。混淆与产权保护HTML5是开放代码的,好处也带来弊端,有些东西开发者希望暴露,但有些东西开发者希望保护。混淆技术就变得更有商业机会。PC Web上Gmail的混淆就做的不错。除了JS混淆,离线数据加密相信也有不少空间。安全厂商的新机会HTML5的强大会引发很多安全问题,并且解决思路与原生不一样,业内有可能会出现新的安全厂商领导者。熟知历史才能预知未来,让我们来看看HTML5为什么诞生、这8年是怎么过来的。HTML5的诞生自W3C于1999年发布HTML4后,Web世界快速发展,一片繁荣。人们一度认为HTML标准不需要升级了。一些致力于发展Web App的公司另行成立了WHATWG组织,直到2007年,W3C从WHATWG接手相关工作,重新开始发展HTML5。HTML5的发展史,有用户的需求在推动,有技术开发者的需求在推动,更有巨大的商业利益在推动。在互联网的早期,对用户而言,能打开浏览器接入到互联网世界就是一个神奇的事情,但互联网发展到2005年前后,开始出现下一个变化,就是宽带互联。随着宽带的普及和电脑性能的增强,人们不再满足于单纯的通过互联网看新闻、收发邮件,消耗更高带宽的娱乐产品开始出现,就是流视频和网页游戏。其实视频和游戏是古老的需求,在互联网不普及的时候,需求的满足方式是离线传输的VCD和游戏光盘;后来互联网逐渐普及,人们更改了使用方式,通过下载软件+本地媒体播放器来看视频,下载体积较大的端游玩游戏。但是对消费者体验更好的新方式还是出现并颠覆了以前的一切,那就是流媒体和网页游戏。Youtube等公司把握住潮流飞速崛起,各种页游公司也如雨后春笋。但是HTML标准没有把握住产业的变化及时演进,浏览器产品也未升级,这块新需求被浏览器插件满足了,那就是Flash。这个部署在亿万浏览器里的商业插件俨然成为事实标准。2005年Adobe巨资收购Macromedia,把Flash收归旗下,紧接着大幅推广FLV流媒体和action script语言,很明显这桩收购可以列为IT并购的经典案例,FLV流媒体和Flash游戏风靡互联网,Adobe在新的产业升级中攫取了大量的利润。除了Flash这个商业产品成为了事实标准,W3C还面临一个尴尬,就是另一个私有扩展协议的制造者—IE。IE当时在桌面浏览器占有垄断地位,并且扩展了大量的IE Only语法,开发者完全不知道这些语言是谁定义的。整个web世界,就被两家公司微软+Adobe绑架了。很多IT巨头都坐不住了,尤其是苹果和Google。PC操作系统的世界难有突破,Web浏览器被苹果寄予厚望,而且第一代iPhone只支持网页,那时还没有Appstore,Safari是乔布斯非常看重的产品;新贵Google虽然大量赞助Mozilla,但并未对IE的地位产生实质影响,收购了YouTube后发现底层被Adobe控制,也是非常难过,而且Google每年给IE的搜索框和Adoble FLV缴纳的费用真不是小数目。既然大家都是W3C的主席单位,好吧,我们重新开始做HTML5吧。是的,HTML5其实就是这么诞生的。那是2007年,IE和Flash由盛转衰的转折点。HTML5第一阶段:Web增强与破垄断自HTML5诞生以来,一共经历了两个阶段,分别是Web增强和移动互联网。我们先从Web增强说起。web体验的丰富增强主要表现在:1.webapp,比如2. 流媒体;3. 游戏。我们就这3个方面来讲HTML5做了什么。1.webAppHTML5新增了离线存储、更丰富的表单(比如Input type=date)、js线程、socket王乐、标准扩展embed、以及很多css3新语法…2. 流媒体HTML5新增了audio、video3. 游戏HTML5新增了canvas、webgl当然还有Google努力在HTML5中推进Header和Section等标签,以利于搜索引擎分析,这些不多述。HTML5补充流媒体和游戏能力后,加上苹果强势拒绝在iOS上引入Flash,成功的遏制了Flash的发展,然后就该遏制IE私有语法了。在HTML5标准的升级过程中,苹果和Google同时也看到了浏览器市场重新洗牌的机会,他们一方面参与HTML5的规范,一边在浏览器产品上发力。Apple首先开始大力发展Safari,建立WebKit开源项目,Mac、iOS、Windows多平台齐发力;Google起初是赞助Mozilla开发Firefox,后来自己开发了v8引擎,合并WebKit,于2008年正式推出Chrome。“IE的私有规范+Flash不是标准,我们才是标准”这样的口号在新一代浏览器大战中打响,IE瞬间成为千夫所指的垄断代表,甚至成了阻碍Web发展的罪人(当时IE6已数年未更新,并且丝毫不惧Firefox的发展)。偏偏微软此时也出了晕招,推出了一系列即不完整支持规范又互相不兼容的IE7、8、9、10,彻底失去了开发者的心。Adobe的Flash被遏制,与Web霸主的位子擦肩而过;IE的私有标准被遏制,并且造成IE市场份额不停下滑,直到IE最新的移动版本反过来开始支持WebKit私有语法,真是令人唏嘘。不知道HTML6是不是该打倒WebKit垄断了。HTML5第二阶段: 移动互联网随着Chrome和Safari的高歌猛进,以及IE+Flash的衰落,HTML5告一段落,进入了下一个时代——移动互联网。HTML5的跨平台优势在移动互联网时代被进一步凸显。HTML5是唯一一个通吃PC、Mac、iPhone、iPad、Android、Windows Phone等主流平台的跨平台语言。Java和Flash都曾梦想这个位置,但梦断于iOS。此时人们纷纷开始研究基于HTML5开发跨平台手机应用。很多人当时认为,原生应用只是过渡,就像当年从C/S结构转变为B/S结构一样。而且学习Objective-C和Java很费劲,我既然会网页开发,为何不试试HTML5。W3C此时成立了Device API工作组,为HTML5扩展了Camera、GPS等手机特有的API,然而麻烦的是,移动互联网初期的迭代太快了,手机OS在不停的扩展硬件API,陀螺仪、距离感应器、气压计。。。每年手机OS都有大版本更新。而W3C作为一个数百家会员单位共同决策的组织,从标准草案的提出到达成一致是非常复杂的过程,跟不上移动互联网初期的快速迭代。PhoneGap的出现,给开发者打开了一扇窗。很多人期待PhoneGap不停扩展API,来补充浏览器的不足。Adobe看到PhoneGap仿佛看到了重振江湖地位的希望,但在Adobe收购PhoneGap后,又发现这个东西可商用性不足,而且开源使得Adobe无法像Flash那样获取商业利益,于是就把PhoneGap捐给了Apache,改名为Cordova。因为各种原因,Cordova的定位最终没有成为浏览器的强化,而走向了混合式开发。基于当时的背景,他们认为原生是不可替代的,“原生+HTML5”的混合模式更有意义。所以现在Cordova的使用模型是“原生工程师+HTML5工程师”一起协作完成App。这时Facebook加入了W3C,牵头成立了Mobile Web工作组。Facebook是混Web圈的,并且在手机OS上没有自己的领地,他不喜欢被苹果和Google掌控的原生应用生态系统。Mobile Web这个工作组的重要目标就是让HTML5开发的网页应用达到原生应用的体验。然而,事与愿违,它不努力也就算了,结果是努力了却失败了。2012年,Facebook放弃了HTML5的新闻充斥了全世界的IT媒体,HTML5瞬间被打入冷宫。Facebook为何放弃HTML5?核心是当时基于HTML5真的做不出好的移动App。对比Twritter等竞争对手的原生App,Facebook的HTML5版本实在无法让用户满意。比如Push功能,到现在HTML5的推送和原生的推送体验差距依然巨大,更不用说HTML5应用的页面切换白屏、下拉刷新/侧滑菜单不流畅等众多问题。看着原生工程师轻松实现摇一摇、二维码、语音输入、分享到朋友圈等功能,更是让HTML5工程师感觉自己站错了队。即使Facebook不喜欢被控制,也不能拿被用户抛弃来冒险。而且Facebook并没有掌握关键点—手机浏览器内核。如果浏览器不跟上,徒然定一堆标准草案落不了地。而浏览器在手机上的表现是什么呢?先看Google,Chrome性能虽高,但Android上的浏览器却并非Chrome,而是WebKit改出来的一个蹩脚的Android浏览器;再看苹果,iOS上不允许其他浏览器引擎上架App Store,而且其他使用Safari引擎的应用也无法调用苹果自己的JavaScript加速引擎Nitro。结果是苹果和Google不但不在浏览器上积极实现HTML5关于移动App所需的规范,反而对HTML5做出种种限制。不管是当时硬件能力不足,还是手机OS厂商的故意限制,总之结果就是:在移动互联网的初期,一定是原生应用生态系统的天下,iOS和Android首先自己的地盘稳固后,产业才会向下个阶段升级。Facebook也好,PhoneGap也好,想在移动互联网初期就分一杯羹是分不到的,但坚持下来,机会往往会出现。HTML5这回真的来了终于,在2014年10月底,W3C宣布HTML5正式定稿。这个时间,不晚不早,硬件性能更强、手机OS迭代速度下降。随着HTML5标准定稿,一切纷争将告一段落,现在,属于HTML5的时代到来了。有人说,光标准定稿没用啊,配套起来了吗?HTML5做的应用究竟能否匹敌原生App?答案是,HTML5不但可以匹敌原生App,甚至它天然的很多特性超越了原生App。我们先谈谈HTML5原来不如原生应用的地方,业内俗称HTML5有“性工能”障碍。即HTML5性能不如原生、开发工具不如原生、能力调用不如原生。这几个问题导致开发者无法使用HTML5做出与原生一样的App。然而,不管是硬件升级还是OS厂商策略变化,以及相关软件技术的成熟,已解决了HTML5的“性工能”障碍。1. 硬件升级2011年,iPhone 4s的CPU是A5,现在iPhone 6是A8,按苹果的历次发布会的说法,速度共提升了7.5倍。这3年间7.5倍的速度提升,抹平了太多HTML5的性能问题。2. 苹果、Google的策略变化Google在2013年底发布的Android 4.4,内置的Webview不再是蹩脚的Android WebKit浏览器,而是Chromium,性能大幅提升。从最新的Android5.0开始,Webview可以通过Google Play Store实时更新,和Chrome的升级保持一致,用户就可以不刷机享受到最新的浏览器引擎;再看Apple方面,2012年iPhone 5发布后,HTML5在iOS上的表现已令人满意,Safari独家的JavaScript加速引擎Nitro不再那么重要,不过在iOS 8发布后,苹果还是很识趣地取消了三方程序调用Nitro的限制,现在任意浏览器或应用调用iOS的UIWebview都可以利用Nitro加速,这样在前端使用JS做大型运算也成为可能。两大手机操作系统霸主和浏览器巨头的态度发生了变化,使得HTML5在手机上的发展不再受限,而且这个变化不可逆只能继续向前,这种变化势必会产生深远的影响。3. 软件技术的成熟PhoneGap的发展虽然放缓了,但其他产品技术却成熟了。2014年的iWeb大会上,众多厂商的产品提供了面向开发者免费或开源的HTML5性工能障碍的解决方案。(注:编者作为从业人员,也会在分析各种方案时提到我们公司的方案,但编者会客观不夸张的陈述方案,而且该方案是纯免费的,没有商业销售嫌疑。)DCloud公司在iWeb大会上发布了系统的HTML5“性工能缺失”的解决方案,包括:a) 性能:提升HTML5性能的手机端引擎,让侧滑菜单、下拉刷新等动态交互卡顿的问题得以解决;b) 工具:HTML5开发IDE产品HBuilder, 超快的编程利器;c) 能力:把40万原生API封装成JavaScript对象,以解决HTML5能力不足问题的Native.js技术;d) 最接近原生体验的高性能框架:MUI框架,体积只有几十K,加载、运行远快于一般框架。基于该方案开发的HTML5应用完全可以达到原生App的功能和体验。使用HBuilder开发HTML5应用英特尔公司发布了Crosswalk引擎,可以让Android 4.0-4.3的手机上的应用打包Chromium引擎而不是Android WebKit。毕竟目前市场上存在大量Android 4.0-4.3的手机,同时统一的webview也避免了兼容性的烦恼。在专业方向上很多公司也做出了不错的成绩。触控的Cocos2d-html5、Egret runtime和Ludei CocoonJS强化了Canvas的表现,让HTML5游戏体验更好;UC、猎豹等手机浏览器都强化了音视频播放的表现。不管是硬件升级、软件成熟,还是操作系统厂商策略变化,都在强力推动HTML5的爆发。不过要注意,我说的HTML5爆发,不是指手机浏览器会替代桌面成为应用入口。有人说HTML5不好,因为用户讨厌打开浏览器输入URL的过程。我想说这种想法是对HTML5的片面理解。HTML5!=传统浏览器,虽然编程语言还是HTML、Javascript、CSS,但发行方式绝不是传统网站那么简单。HTML5应用的入口,反而很少是启动浏览器输入URL,它可以是存在于手机桌面的图标、也可以来自超级App(如微信朋友圈)、以及搜索引擎、应用市场、广告联盟。。。到处都是它的入口。它的入口,比原生App更多。原生App的颠覆HTML5的“性工能”障碍得到解决,可以接近原生App的效果,所以它就可以替代原生App吗?很多人认为,即使HTML5会发展的比现在好,也将是与原生App各占一部分市场的格局,要求不高的长尾应用会使用HTML5,而主流应用仍是原生App的天下。但我认为这样的想法很危险,就像Apple成立前,HP的高层告诉沃兹:谁会在家里摆一台电脑呢?未来HTML5肯定会颠覆原生App。结语其实未来如何发展是没人能准确预测的,变量非常多。但我想让用户和开发者都更方便的趋势是不会错的。我在这里抛砖引玉,欢迎大家一起讨论,但我希望我们能理智的分析,在争议中提炼真知,而不是未经思考或验证仅因为害怕被颠覆而无谓的乱喷。也祝愿大家在HTML5的浪潮中,把握住机遇,享受下坐在风口当猪的感觉。(文/王安)
热门文章标签
电商服务推荐
电商服务招标
版权所有 思路
保留所有权利
Copyright & EBrun, Inc. All Rights Reserved.
京ICP证070369号 | 京ICP备号 | 京公网安备 87
北京亿商联动国际电子商务股份有限公司
地址:北京市石景山区鲁谷路74号中国瑞达大厦1701 电话:010-
打开微信“扫一扫”打开网页后点击屏幕右上角分享按钮
选择需要的电商服务类别
店铺外包(代运营、设计...)
软件工具(ERP、CRM...)
仓配物流(管理、配送…)
外贸出口(推广、管理…)
其它服务(请在备注说明)}

我要回帖

更多关于 手机app上线流程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信