天小编给大家讲讲APP开发的事情。
APP就是手机里面的应用软件,对于大多数没做过研发的朋友,对内中细节还不是太了解。但是既然已经考虑要做独立APP,想做出一番事业来,有些东西还是需要了解一下的。
从研发的角度讲,开发一款APP,选择不同思维开发模式,无论时间成本还是研发成本,差异都是相当大的。从客户的角度,使用功能、实际体验和后期效果,差异就更大了。
APP的开发模式
目前市场主流的APP分三种:原生APP、WebAPP和混合APP三种,这里对三者的区别进行下详细分析。
原生APP
原生APP是什么?原生APP就是利用Android、iOS平台官方的开发语言、开发类库、工具进行开发。比如安卓的java语言,iOS的object-c 语言。在应用性能上和交互体验上应该是好的。
优点:
1.可访问手机所有功能、可实现功能齐全。
2.运行速度快、性能高,有较强的用户体验。
3.应用性能和交互体验是最好的。
4.比较快捷地使用设备端提供的接口,处理速度上有优势。
缺点:
研发成本高、周期长,特别是一款原生的App,Android和IOS都要各自开发,同样的逻辑、界面要写两套。各个厂家不同机型都要做适配。
Web版APP
本质就是浏览器功能的叠加,用普通Web开发语言开发的,通过浏览器运行。
优势:
1、支持范围广;
2、开发成本低、周期短。
缺点:
1、对联网要求高,离线不能做任何操作;
2、由于Web技术本身的限制,H5移动应用不能直接访问设备硬件和离线存储,所以在体验和性能上有很大的局限性
3、运行速度慢,页面不能承载太多东西;
4、后期用户量的增加,用户访问次数的增大,服务器的承载负荷会不断增大。
5、如果用户使用更多的新型浏览器,那么就会出现运行问题。
混合开发
即利用了原生APP的开发技术还应用了HTML5开发技术,是原生和HTML5技术的混合应用。混合比例不限。
优点:
1、比web版实现功能多;
2、兼容多平台;
3、可离线运行;
缺点:
1、用户体验不如本地应用;
2、性能稍慢(需要连接网络);
3、技术还不是很成熟。
选最适合自己的
笔者拿旅游做下比较,对比这三种APP开发模式,也许不是很恰当,但大家能理解就好。
就拿马上要来的国庆黄金周来说吧。
原生开发相当于选择出行旅游,花费时间长,旅游成本也高,获得的体验是真实的。总的来说就是苦,累,花钱也多。但大都数人都喜欢,问题是缺钱。
WEBAPP就简单了,待在家看电视就行。根本不用去现场,想看就看,省钱还舒服,短时间内周游全球都不是问题。
混合开发就复杂点了,就是去电影院看场电影,不过这个电影也不一样,有大屏幕的,也有3D的,有的甚至增加动感座椅,环境特效等等。待在电影院就能从听觉、视觉、达到强大的逼真感。
国庆长假怎么过?大家准备好了吗?是待在家里?还是去电影院?或者来一场一场说走就走的旅行。选择APP其实也一样,每种都有一定的需求群体。结合自己的能力、财力、需求,选择最适合自己的就好。
旅游虽然累点,但是如果免费,估计大多数人还是不会拒绝的。
原生APP一般都贵,要是能免费,又会有多少人拒绝呢?
ybrid App主要以JS+Native两者相互调用为主,从开发层面实现“一次开发,多处运行”的机制,成为真正适合跨平台的开发。Hybrid App兼具了Native App良好用户体验的优势,也兼具了Web App使用HTML5跨平台开发低成本的优势。
目前已经有众多Hybrid App开发成功应用,比如美团、爱奇艺、微信等知名移动应用,都是采用Hybrid App开发模式。
2、移动应用开发的三种方式比较
移动应用开发的方式,目前主要有三种:
Native App: 本地应用程序(原生App)
Web App:网页应用程序(移动web)
Hybrid App:混合应用程序(混合App)
图1:三种移动应用开发方式
如图1所示,三种移动应用开发方式具体比较如表2所示:
表2:三种移动应用开发方式比较
3、混合开发应用场景
(1)折中考虑——如果企业使用 Hybrid 开发方法,就能集Native 和web两者之所长。一方面,Native 让开发者可以充分利用现代移动设备所提供的全部不同的特性和功能。另一方面,使用 Web 语言编写的所有代码都可以在不同的移动平台之间共享,使得开发和日常维护过程变得集中式、更简短、更经济高效。
(2)内部技能——许多企业都拥有Web 开发技能。如果选择 Hybrid 开发方法,在合适解决方案的支持下,Web 开发者只要仅仅运用 HTML、CSS 和 JavaScript 等 Web 技能,就能构建 App,同时提供 Native 用户体验。
(3)考虑未来——HTML5的可用性和功能都在迅速改进。许多分析师预测,它可能会成为开发前端 App 的默认技术。如果用 HTML 来编写 App 的大部分代码,并且只有在需要时才使用 Native 代码,公司就能确保他们今天的投入在明天不会变得过时,因为 HTML 功能变得更丰富,可以满足现代企业一系列更广泛的移动要求。
4、混合开发框架和层次结构图
混合开发结构图
1)移动终端web壳(以下简称“壳”):壳是使用操作系统的 API 来创建嵌入式 HTML的渲染引擎。壳主要功能是定义Android应用程序与网页之间的接口,允许网页中的JavaScript调用Android应用程序,提供基于web的应用程序的Android API,将Web嵌入到Android应用程序中。
2)前端交互js:包括基础功能js和业务功能js。
3)前端适配器:适配不同的终端:Pad、android、ios、wap。
混合开发层次结构图
1) 页面加载
页面容器(XdjaWebView)类,是整个框架的核心和基础,主要用来实现页面的加载,以及对页面加载完成后的后续操作提供支持,例如:文件下载、js支持、文件上传,数据缓存、进度条等;
页面加载接口:对页面的加载过程进行跟踪;例如:页面加载进度百分比,页面开始加载、页面加载出错、页面加载完成等
2) JS调用Android功能
网页:页面调用js接口中的具体方法;
JS接口:调用android接口中一一对应的具体方法;
android接口:直接调用框架中集成的功能,或者通过框架接口在应用系统中自定义功能(例如,退出、返回键响应等);其中升级功能的返回结果或者过程信息,可以在客户端中通过升级接口获取。
XdjaClientHelper:如果需要将框架中的方法返回值通知给js方法,你们可以通过XdjaClientHelper类来实现;
3)应用系统调用JS功能
应用系统通过XdjaClientHelper来实现对js功能的调用;
4) 应用系统调用HDF功能
应用系统可以调用框架集成的工具类、消息提示框、升级模块以及手机上常见的打电话发短信等功能。
5、性能优化
1) 单个页面
登录、首页以及共用代码(样式文件、JS文件、页面加载loading代码)等放在index页面里。页面展示前显示fake页面(过场页面),首屏加载完后,fake页面消失。
页面虽然按照业务模块分为不同的页面,但是展示的时候会在同一个页面即index页面展示。具体的说,需要某个功能页面的时候将页面以AJAX的形式请求到index页面,使用完毕删除。
使用一个页面,公共的CSS和JS只会加载一次。
2)CSS、JavaScript
在本次混合开发框架开发中,CSS全部写在一个文件里。
CSS和Jquery Mobile的相关文件写在index页面头部,其余公用JS等写在index页面底部。防止JS阻塞页面加载。各业务逻辑JS写在各业务页面的底部。
开发完成后,CSS和JS需要进行压缩,减少用户使用时初次请求时间。
3) @font-face
本次混合开发中使用@font-face来实现图标字体化,统一控制图标的颜色和大小。
使用@font-face优点:减少页面因使用图片而带来的流量,大大缩短页面响应时间;图标可以随意改变大小和颜色,而不会导致失真。
使用时注意:所有的图标需要是矢量的SVG格式。
使用限制:只适用于纯色扁平化的图标。背景图等比较复杂的图片仍然使用图片。
4) 本地存储LocalStorage
HTML5本地存储LocalStorage,在混合开发中主要用来存储最近查询记录等。
拿首页最近查询来说,用户每次在综合查询中点击一个模块,通过LocalStorage将图标和对应的功能名字存储起来,如果用户不清除,LocalStorage中的数据是一直存在本地的。下次打开应用的时候从LocalStorage中读取最近查询记录等。
使用LocalStorage的好处是,不进行后台交互,速度快。
5)异步AJAX
本次开发中多处实现都是通过使用AJAX。首先,显示页面时,先显示框架,然后异步加载内容;其次,分页功能中,先显示部分简项列表,上拉获取更多内容。再次,每打开一个新功能,页面以AJAX的形式获取新页面的内容并展示出来。
异步AJAX,交互体验更好。从性能的角度考虑,速度也更快。
5是玩互联网的一个热词,搞移动开发的嫌它效率不够高、做市场营销的却用得风生水起。
整天听人说H5,概念倒是火,应用跟得上吗?它到底行不行?所幸网上出了很多有关它的“论断”,反倒能帮助我们“拨开云雾见青天”。
.
论断一:H5炒了n年了。
最近人工智能肯定火,根据百度指数,这个词近7天的搜索指数是8000多,最高有近2万,但李世石这5场比赛前只有2000几。
H5和HTML5却长期稳定在9000多,它的概念不是炒出来的,是实实在在应用广、有人持续在关注,人工智能这种紧跟时事起起落落的才算炒出来的。
.
论断二:一直没火起来,没救了。
现在一般提起H5,就是在移动端传播的微信H5页面。国内H5页面制作平台iH5产出的H5,最高一天能达到5亿PV,最低也在一亿页面浏览上下。火不火?火。
如果要比应用HTML5的网站,还真别说,国内知名网站多了去了。百度?是。QQ?是。淘宝?是。新浪?门户和微博都是。优酷?还是。
.
论断三:流量什么的全部免费就有可能,否则这是一纸空谈。
这句话是说因为流量这个大难题,H5网页不能取代原生APP。所以你为了看视频下了个××视频的APP后,会烧你的移动商运营流量,去看短片消磨长电影吗?你的APP也是趁有WIFI的时候下的吧?
现在没有网络,手机上也没几个APP真的能用,顶多看看本地缓存的电子书和视频。流量费用降低是当前的趋势,而H5会随着入口的完善,一步步蚕食APP的份额。
.
论断四:你想让我每次打开一个应用要重新加载?你是不是移动卧底,我还是很支持APP,有固定的模块,离线都能用。
HTML5也支持本地存储服务,能提供存储于客户端、不随页面刷新而消失、不回传至服务器的离线存储。
.
论断五:没有实用价值的体现,行业场景应用少。
如果出现一个HTML5应用市场,能取代你大多数APP的功能,还都不用下载,你用不用?现在H5网页缺的是一个集大成者式的入口,像APP Store激发APP的开发一样,去催生H5网页的生产。
前阵子微信说要出一个微信应用号,作为企业号的升级版,就是想打造这样的轻应用市场。
.
论断六:HTML5很简单,但是要运用起来,做出来一个作品,难。
你当研发近10年做出来的可视化平台iH5.cn是摆设?在可视化编程的帮助下,H5页面的制作只会越来越容易。手指按住屏幕的时间长短、手势擦除面积的大小、数据的提交和判断,这些都能通过图形化界面的操作+简单配置实现。
就算做一个数据管理系统,iH5也能提供模板,感兴趣可参见文章:一个团队协作Web APP可能引发的互联网革命。(此处是理直气壮的广告)
.
论断七:手机上有几个人愿意开浏览器?那么点大的屏幕,花花绿绿的网页体验比APP差远了。
手机屏幕大小是一定的,浏览器网页不一定是花花绿绿的,UI渣你去喷设计师。假设你打开微信的频率比浏览器APP高,难不成你不知道微信有内置浏览器?
.
论断八:你拿出HTML的Web APP还好意思去谈融资?还好意思谈市值?
当智能手机还没流行、APP还没形成市场的时候,我们还在用软件去谈融资、搞市值。当然,现在都玩APP了,软件反而很少听到有什么新闻了,做软件的都去做APP了。
只要用户做高了,是不是基于Web不是问题。
.
论断九:H5的开发和维护成本低,很多公司已经转向H5了,尤其创业公司用H5的越来越多。
随便打开一个网页,国内外都行,看看第一行文档声明是不是“<!DOCTYPE html>”,“是”就多少用了HTML5。
很多公司转H5,就是互联网服务平台,但更多用H5的公司目前还是用它去做市场营销,利用社交传播去打市场。创业公司多的是提供H5在线制作服务的平台,而且近两年融资成功的案例也不少。
.
论断十:现在任何一个用户量极高的APP都可以考虑增加H5应用接口,不是你就被等H5。
H5很好用,不用白不用。现在有一个概念是HTML5与原生APP结合,把网页封装在客户端里,形成混合模式移动应用(Hybrid APP)。典例是掌上百度和淘宝Android版客户端,你以为你下载了一个APP,其实暗地里一直在访问H5。
.
十个论断取自近日发的两篇文章的评论,HTML5取代原生APP:Google的智,腾讯的谋?(3.20),以及单日PV 5亿?他花10年创业养出了互联网的一个怪物(3.21),均由热心网友的留言整理得来。
*请认真填写需求信息,我们会在24小时内与您取得联系。