关于武汉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,武汉华凯梦建站公司提供一站式网站制作开发服务:武汉网站建设、网站制作、网站开发、高端网站设计制作、移动网站开发,小程序开发等建站服务,制作周期短,价格实惠,效果满意;以及全网营销、武汉SEO服务、网站建设、百科词条创建修改、新媒体引流、公司负面公关处理等


相关文章相关文章
  • 武汉创业公司要不要做APP?一个成功与一个失败的案例解析!

    武汉创业公司要不要做APP?一个成功与一个失败的案例解析!

    现在网上有很多声音说现在创业越来越难了,吃穿住行等都被包圆了:吃的有“饿了吗”、穿的的有“淘宝”、住的有“美团”、行的有“滴滴”。但是我坚持认为互联网这块商机还没有被挖掘完,甚至连百分之一都没有出现,只是冰山一角而已。最先搞qq、搞电商、搞微...

    2019-09-03 18:06
  • 以武汉APP开发为例,为您全面讲解APP开发那些事儿!

    以武汉APP开发为例,为您全面讲解APP开发那些事儿!

    大家好,我是笔者,今天我给大家介绍一下开发一款APP你要知道的那些事儿,带您全面剖析。不论你是转型互联网,还是嫁接互联网,只要你想要拥有你自己的线上平台,拥有你自己的官方app,拥有自己的企业官网,拥有自己的官网公众号,拥有自己的电商平台等,与...

    2019-09-01 21:11
  • 武汉APP开发公司告诉你没有好的产品规划,一切软件开发都是0

    武汉APP开发公司告诉你没有好的产品规划,一切软件开发都是0

    国内互联网公司对于产品规划的不重视是导致自身软件开发不好的很重要的原因。有很多公司的老板雇佣了一批软件开发工程师,然后自己充当了产品规划的角色,这种身份很尴尬,老板认为产品规划没啥作用,反正都是按照自己想怎么开发怎么开发,于是乎程序员们听...

    2019-08-29 20:00
  • 武汉APP开发流程图,每个开发流程中潜藏的问题

    武汉APP开发流程图,每个开发流程中潜藏的问题

    现如今线上业务对于线下实体店的冲击影响力越来越大,越来越多的实体店商家选择转型线上业务;同时也有一些拥有新奇创意的甲方,想要去将自己的思想付诸行动;总之,各种各样的原因都会导致一些没有技术背景的甲方想要开发APP。...

    2019-08-27 19:22
  • 武汉APP开发全方位解析APP设计改版经验及复盘总结

    武汉APP开发全方位解析APP设计改版经验及复盘总结

    今天给大家推荐的文章是来自某设计团队的项目复盘总结全方位解析APP设计改版经验 一.设计目标拆分 提出核心改版目标后,我们在设计内部进行了向下的目标拆分。对app视觉系统的一致性和易用性做了定性分析和调研,以制定后续改版工作的具体框架。首先从商业、...

    2019-08-26 14:08
  • 什么样的企业需要开发APP?符合这些特征就别再等了

    什么样的企业需要开发APP?符合这些特征就别再等了

    随着移动互联网的飞速发展,人们对手机的依赖程度越来越高,以致于很多行业商家都开始重视对移动应用的开发。但很多企业在开发前并不确定自己是否需要开发APP,以及想要通过APP获得什么样的成果。今天,笔者就来说说什么样的企业需要开发APP。...

    2019-08-25 21:29
本地企业
              可提供上门服务

便捷

本地企业可提供上门服务

提供适合、专业可行方案

周到

提供适合、专业可行方案

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号