关于武汉APP开发的三种模式和一些主流框架介绍!

作者:小站 来源:APP开发 2019-08-15 14:50

随着智能手机的进一步发展,手机除了作为传统意义的通信工具,更多的成为一个类似于家用电脑的平台终端,这就促使了App开发的蓬勃发展。

1、App开发模式

目前,App开发最热门的平台就是苹果的iOS操作系统和Android操作系统。对于这两种不同的操作系统,现阶段有三种不同的开发模式:

Native App

Web App

Hybrid App(混合模式移动应用)

1.1 Native App

Native App是基于本地(操作系统)运行的App,即原生App,对于iOS平台来说,开发语言为Objective-C或者Swift,而Android开发语言为Java。对于开发原生App,优点是:

打造完美的用户体验

性能稳定

操作速度快,上手流畅

访问本地资源(通讯录,相册)

设计出色的动效,转场

拥有系统级别的贴心通知或提醒

用户留存率高

缺点是:

无法跨平台,Android和iOS都需要开发各自平台的版本,开发成本高。

维护成本高(例如一款App已更新至V5版本,但仍有用户在使用V2,V3,V4版本,需要更多的开发人员维护之前的版本)。

升级麻烦:每次升级都要下载安装包,Android还好,反正不需要审核,下载就下载吧,但iOS就麻烦了,发布每个版本还得经过App Store的审核,这导致第三个问题。

Android和iOS很难同步发布。

1.2 Web App

Web App,是一种基于智能机的浏览器运行的App,生存在浏览器中的应用,基本上可以说是触屏版的网页应用。说白了就是一个针对iOS、Android优化后的Web站点,它使用的技术无非就是HTML5、CSS3、JavaScript,服务端技术JAVA、PHP、ASP。虽然开发成本大大降低,但页面访问速度慢、操作体验差。

1.3 Hybrid App

Hybrid App,是指介于Web-App、Native-App这两者之间的App,兼具“NativeApp良好用户交互体验的优势”和“Web App跨平台开发的优势”。Hybrid App其实也分不同的解决方案。

1、借助一些混合开发工具(PhoneGap、AppCan等中间件),以WebView作为用户界面层,以Javascript作为基本逻辑,去和中间件通讯,再由中间件访问底层API的方式,进行应用开发。这种架构一般会非常依赖WebView层的性能,属于Web架构为重的HybridApp解决方案。

2、使用Adobe Air、RubyMotion、Appcelerator或者是Xamarin这种非官方语言的工具,打包成原生应用的方式开发。它们并没有很单纯地使用原生提供的语言进行开发,而是通过对开发者提供友好的开发工具,并折中地把这种开发语言转换成原生语言,最终打包出整个应用,属于编译转换的Hybrid App解决方案。

3、在开发原生应用的基础上,嵌入WebView,但是整体的架构使用原生应用提供,一般这样的开发由Native开发人员和Web前端开发人员组成,Native开发人员会写好基本的架构以及API让Web开发人员开发界面以及大部分的渲染,这种方式属于Native架构为重的Hybrid App解决方案。

优点:

全Web开发方式,一定程度上有利于Web前端技术人员快速地构建页面样式,可以基于浏览器调试;对于编译转换的混合开发方式,利用自己熟悉的语言,进行应用开发,开发效率高;Native架构为重的开发方式,无疑是最稳定的Hybrid App开发方式了,交互层上由Native的东西解决了,而且架构上基本就是在App内写网页,连App Store都是采用了该种方案,开发时分工非常明确,底层的由iOS开发人员处理,上层的由Web前端开发人员处理。

开发效率高,同一套代码WebView部分Android和iOS基本都可用,具有跨平台性。

Web部分更新和部署比较方便,不需要每次升级都要上传到App Store进行审核了,只需要在服务器端升级就可以。

缺点:

对于Web架构为重的开发方式,他的优点都是针对Web界面层的,但是涉及到和手机底层交互问题,就需要依靠各种中间件,更多的时候需要采用原生开发去调用;对于编译转换的混合开发方式,严重依赖于其工具厂商提供的工具包,调试的时候就要有全套的工具,遇到系统升级,第三方SDK升级,开发工具出现Bug等,那么就要等待工具厂商解决了,相当于把风险压在对方身上了,自己却要承担责任;对于Native为重的混合架构方式,团队至少需要两个工程师,一个是Web的,一个是iOS/Android的,还需要考虑运行效率,要权衡好多少界面采用Web来渲染,毕竟WebView的效率会相对降低。

混合App开发的安装包比原生的App包大一些,运行时间越长就容易会出现卡顿的情况,当然这个与开发有没有很好的垃圾和缓存清理机制有关。

加载缓慢/网络要求高:混合App的Web部分,数据需要全部从服务器调取,每个页面都需要重新下载,所以打开慢,网络占用高,缓冲时间长,容易让用户反感。

安全性比较低:安全性较低,网络发展快,病毒多,如果不能实时更新,定期检查,容易产生漏洞,造成直接经济损失。

2、iOS原生开发

2.1开发环境和开发语言——Xcode 9+Swift 4+iOS11设备+开发者账号

Xcode是苹果公司为开发者提供的集成开发环境,可构建适用于苹果iPad、iPhone以及Mac设备的应用程序。在应用程序的创建、测试、优化以及提交至App Store的过程中,Xcode为开发者提供了用以管理整个开发工作流的工具。最新版本是9.0版,建议运行在macOS High Sierra系统中。

Swift是一门开源的编程语言,该语言用于开发OS X和iOS应用程序,开发环境需要在OS X系统中运行。Swift被设计用来无缝兼容Cocoa和Objective-C。在Swift中,你可以使用Objective-C的API(包括系统框架和你自定义的代码),你也可以在Objective-C中使用Swift的API。

cocoa框架是以Objective-C来编写API的,用Swift调用Objective-C的函数是非常自然的,两者之间没有明显的界限。在iOS的开发过程中,重点会用到Cocoa中的Funation框架和UIKit框架。前者包含了数据存储、文本处理、时间处理、文件系统和网络等功能,后者则提供了内容呈现和交互等。

2.2 iOS开发目录结构

以下为一个单页面的iOS简单应用,可以看到这个App的目录结构如下所示:

关于武汉APP开发的三种模式和一些主流框架介绍!

1.Info.plist:在编译时提供app配置的关键信息,用于让iOS系统定位各类资源。

2.AppDelegate:App的核心代码,定义了App初始化、状态转换、和时间等。

3.Storyboard:提供一种可视化的方式来定义用户界面,通过单个或很少的几个文件构建全部UI。

关于武汉APP开发的三种模式和一些主流框架介绍!

4.ViewController:管理App显示的页面内容。在Xcode里可以直接通过拖拽的方式,将view里面的控件直接定义在ViewController里面,通过编写代码管理view所有控件的属性和动作。

关于武汉APP开发的三种模式和一些主流框架介绍!

5.Asserts.xcassets,主要用来存放图像资源文件的。

3、Android原生开发

3.1开发环境和开发语言——Android Studio+JAVA

Android Studio是一个Android集成开发工具,基于IntelliJ IDEA。类似EclipseADT,Android Studio提供了集成的Android开发工具用于开发和调试。

3.2 android开发的目录结构

Android开发的系统框架与目录结构如下所示:

关于武汉APP开发的三种模式和一些主流框架介绍!

src目录:主要是完成java代码的编写

assets目录:资源目录

res目录:存放图片,布局文件和字符串、菜单等文件

--drawable存放工程图片的信息,默认png格式的图片

--layout存放工程的布局文件以.xml结束

--values文件夹下面存放一个很重要的string.xml,此文件夹存放的是自定义的字符串和数值。除了这个文件之外,还可以定义arrays.xml(用来定义数组)、color.xml(用来定义颜色和颜色字符串数值)、dimens.xml(用来定义尺寸数值)、styles.xml(用来定义样式)。

bin目录:输出文件夹,如生成的APK文件

.properties工程属性文件配置

gen目录:系统自动生成的源代码目录

R.java文件是系统自动生成的文件,非常重要,这个R.java默认有attr,drawable,layout,string 4个静态内部类,每个类对应一种资源。例如我们在工程中添加一幅图片,那么工程就会在此类的drawable内部类中添加一条数据,如果删除了此图片,工程则会自动删除此条数据。

4、APP混合开发架构

App原生开发由于存在版本不能同步、开发成本高等问题,Hybrid App开发模式逐渐成为移动界的核心话题,下面介绍几种目前业界流行的混合开发架构。

4.1基于WebView的混合开发框架

基于WebView的混合开发架构,指的是程序员写纯粹的HTML5代码,最后通过原生端的WebView组件来加载渲染。每个页面都是一个独立的WebView容器,页面之间的跳转,一些特殊效果,特殊组件的实现,都是通过HTML5发消息来调取原生功能实现的。

4.1.1 PhoneGap/Cordova

Cordova是Apache软件基金会的一个产品,其前身是PhoneGap,比较出名的一个跨平台解决方案。Native接口比较丰富,通过封装的API可以直接访问硬件,提供硬件访问控制。可调用加速计、摄像头、罗盘、通讯录、文档、地理定位、媒体、网络、通知(警告、声音和振动)、存储。扩展api需要用原生语言开发,更致命的是这类方案的性能不足。

PhoneGap并不支持UI设计,它仅仅是浏览器调用本机代码(比如获取地理位置)的一层接口。UI设计还需要别的JS类库支持。手机端UI框架如下:

Vux:基于WeUI和Vue(2.x)开发的移动端UI组件库,主要服务于微信页面,例如微信公众号。

Ionic:AngularJS移动端的解决方案,一般大家指的Ionic框架=Cordova+AngularJS+Ionic UI。

jquery mobile

bootstrap

Framework

4.1.2 Dcloud

Dcloud同样是基于WebView的Hybrid框架,通过CSS动画、预加载、多个WebView的显示隐藏等技术,其中Native.js把原生API映射成JS对象,提供一套JS库来取代原生API的调用,类似于一个中国版本的Ionic框架。DCloud大部分产品开源,旗下四款产品:HBuilder、5+Runtime、MUI、流应用都是弥补并扩展HTML5特性的产品。MUI是一款不错的前端框架,使用原生JS编写,性能比jQuery Mobile、Bootstrap好很多。

关于武汉APP开发的三种模式和一些主流框架介绍!

Phonegap/Cordova方案相对Dcloud比较灵活,但是它自带JS API比较少,扩展API需要用原生语言开发,而Dcloud自带封装好的API功能,包括二维码、摇一摇、语音输入、地图、支付、分享、文件系统、通讯录等,对流畅性要求不太高的,可以考虑使用MUI,开发速度快,成本低。

4.1.3 AppCan或者APICloud

AppCan不开源,无法修改、优化底层代码,分大众版和企业版,大众版免费,但功能有缺失,暂不支持自行开发控件,无法调取Android原生功能;框架自带功能过多,导致应用安装包偏大,文档偏少;部分系统无法使用IDE进行调试,只能在服务器端发布,无法在本地发布,iOS发布,需要将证书上传至服务器。

APICloud的技术引擎和大部分的模块没有开源,但是有详细指导(收费),还有课程服务讲解课程实例,课程中包括了第三方登录分享、即时通讯、地图功能、客服功能、照片的上传与浏览、音视频的播放。

4.2基于JavaScript引擎的开发框架

该类框架不使用WebView,减少了WebView带来的性能问题(流畅度不高,交互性差等),典型代表有React Native、Weex、NativeScript,其中ReactNative最为流行。它们的主要实现思路是,程序用JS实现,然后框架负责把JS代码翻译成原生代码,最后呈现出原生页面(Dcloud的Native.js是驱动html dom渲染,而React Native是直接驱动Android/iOS原生组件渲染)。

4.2.1 React Native

React Native是Facebook在2015年3月在F8开发者大会上开源的跨平台UI框架。

React Native性能要好于Cordova等混合开发架构,但ReactNative抛弃了HTML5,基于JavascriptCore,使用JavaScript去开发原生应用,属于一种新的和原生语言通讯的机制,有较强的扩展性,可以直接使用Native原生的动画,可以通过更新远端JS,直接更新App。

React Native从开发环境的搭建到开发方式上其实都是偏向于原生的,前端的JavaScript用的语法是Jsx,和JavaScript有一点的区别,界面布局和CSS完全不一样,而且需要分别搭建Android和iOS开发环境。纯粹的Web开发者要想很快熟练使用React Native甚至说是搭建开发环境似乎还是要多花一些心思的,并且在React Native的宣讲中,仍然是建议原生开发者能够尝试接纳React Native这种新的开发模式,以提高自己的开发效率。可以推断出,React Native在设计之初所考虑面向的开发者为原生开发者。

4.2.2 Weex

Weex是阿里巴巴公司于2016年6月开源的一种用于构建移动跨平台的UI框架,实现思路来源于React Native与Vue,开源较晚,网上相关资料还比较少,社区规模较小,网站资源还在建设中。

4.3.3 NativeScript

NativeScript应用程序是用JavaScript、XML和CSS组合编写来实现跨终端App,相比于React Native,iOS和Android界面的组件几乎一致,开发效率高。然而,React Native可以很方便与原生项目混着用,NativeScript却无法与原生项目融合,即只能纯写个NativeScript的应用,不可能把它抽离出来作为某原生应用的一部分来出现。

5、总结

本文主要介绍了现阶段App开发的三种模式和一些主流框架。目前业界大多数App采用的是Hybrid的开发模式,即在Native框架的基础上,嵌套一部分WebView的方式。WebView占的比重依据具体业务而定,像淘宝、京东电商之类的需要频繁更新页面,比重会比较大。而像React Native等框架,优点很多(比如远端更新,流畅度堪比原生等),但是成熟度还不够。总的来说,选择什么样的开发模式和框架,一定要结合产品的市场定位和业务场景。同时,在进行框架选型之前,应该具备iOS和Android的原生开发经验,只有积累了一定的原生开发经验,才能直观的感受出不同框架的优势和缺点。


本文地址:武汉APP开发频道 https://www.dayku.cn/app/3119.html,武汉易企推建站公司提供一站式网站制作开发服务:武汉网站建设、网站开发、高端网站设计制作、手机网站开发,微信小程序开发等建站服务,制作周期短,价格实惠,效果满意;以及全网营销、网站优化服务、百科词条创建修改、新媒体引流、公司负面公关处理等


相关文章相关文章
  • 开发一个app到底需要多长时间?这就要看你需要的功能复杂程度了

    开发一个app到底需要多长时间?这就要看你需要的功能复杂程度了

    很多客户在咨询我们公司的时候无非就是问两个问题,第一:我要做个app,大概需要多少钱?第二:做这种app最快需要多久。然后希望我们马上就给他报价,不然就不做了。 其实这类的客户都有一个共同的特点:以为做app就像和做小程序一样的简单便宜,而且预算极低...

    2019-09-24 18:31
  • APP开发的流程有哪些?APP有这样的创新点吸引客户才能留存住客户

    APP开发的流程有哪些?APP有这样的创新点吸引客户才能留存住客户

    新时代下的APP会是什么样子的?作为这个行业的资深开发人员,我充满了期待,同时感受到挑战也会越来越大。 首先APP开发会成为越来越普遍的东西,不再是以前遥不可及的东西,随着中国智能手机的普及,现在每个人手机中的APP越来越多,种类越来越丰富,所以现...

    2019-09-24 18:14
  • 不花钱就可以马上拥有你的APP定制开发,根据自己的真实需求来选用

    不花钱就可以马上拥有你的APP定制开发,根据自己的真实需求来选用

    笔者为了帮助宝宝们解决建站时的技术、成本问题,推出了“建站系列”文章,旨在提供不花钱建站的方法,从域名、静态网站、动态网站、APP制作、H5海报、电商、网站服务器等方面逐一介绍,这里没有晦涩的术语,只有简洁的方法。...

    2019-09-22 16:54
  • 开发怎样的APP才能降低用户流失?如何降低APP用户的流失方法

    开发怎样的APP才能降低用户流失?如何降低APP用户的流失方法

    不管是在哪个时代,关于网站用户留存始终是大家思考和谈论的话题,对于产品网站运营而言,留住用户是重中之重的工作和考核指标。网站用户留存率越高,则表明了用户使用网站的时间越长,能够为产品带来现金流以及价值也就更大。 ...

    2019-09-20 18:08
  • 常见的APP开发方式有两种,一种是自建,一种是外包

    常见的APP开发方式有两种,一种是自建,一种是外包

    开发一个软件系统,是自己组建开发团队好还是进行外包好?这是很多互联网企业管理者的疑问。 常见的APP开发方式有两种,一种是自建,一种是外包。对大部分的公司来说,自建一个开发团队是很浪费的,因为需要的成本非常的高,前期的招聘成本,中期的开发成本...

    2019-09-19 19:53
  • APP开发什么途径最好?大家该如何选择一个适合自己的开发方式

    APP开发什么途径最好?大家该如何选择一个适合自己的开发方式

    导言:互联网科技开发主要包括APP开发(应用程序)、网站开发、小程序开发、电商系统开发、办公系统定制等。主要的途径有两种:组建研发团队自己开发和找互联网科技外包公司为您量身定制。那么笔者今天就为大家介绍一下各自的优点和缺点,告诉大家该如何选择...

    2019-09-18 13:47
本地企业
              可提供上门服务

便捷

本地企业可提供上门服务

提供适合、专业可行方案

周到

提供适合、专业可行方案

5-10分钟售后响应机制<

贴心

5-10分钟售后响应机制

按效果收费,无效果不收费

放心

按效果收费,无效果不收费

行业高标准,效果稳定可靠

稳定

行业高标准,效果稳定可靠

1-3个月排名上百度首页

快速

1-3个月排名上百度首页

武汉易企推建站公司;公司地址:武汉市武昌区静安路6号5.5创意产业园4楼;公司官网:https://www.dayku.cn

服务热线:18120550335 / 027-88866235 欢迎来电咨询; 联系QQ:1193073039

Copyrigh@2017-2030 版权所有:武汉易企推网络科技有限公司 备案号:鄂ICP备17012199号