移动APP开发之技术选择

移动APP开发之技术选择APP开发种类目前主流的APP主要为iOS版本和Android版本。早期APP的开发,两个版本需要分开独立进行,分别使用Objective-C/swift和Java语言。这些APP也称为NativeAPP,即原生系统。由于NativeAPP开发成本高、难度大,随着技术的发展,出现了Hybrid(混合)APP开发,即支持跨平台或支持原生+H5相结合的APP。除此之外,还有一种称为WebAp…

大家好,又见面了,我是你们的朋友全栈君。

APP开发种类

目前主流的APP主要为iOS版本和Android版本。早期APP的开发,两个版本需要分开独立进行,分别使用Objective-C/swift和Java语言。这些APP也称为Native APP,即原生系统。由于Native APP开发成本高、难度大,随着技术的发展,出现了Hybrid(混合)APP开发,即支持跨平台或支持原生+H5相结合的APP。除此之外,还有一种称为Web App的移动端Web系统,其完全使用Web技术进行开发,与操作系统无关。原生、Hybrid及Web APP之间关系如下图所示:
这里写图片描述

开发种类的比较

开发种类 优点 缺点
原生Native (1) 可访问手机所有功能(GPS、摄像头);(2) 性能高、用户体验最好(3) 可离线使用; (4) 支持图形和动画; (1) 开发及维护成本高; (2) 支持设备有限(系统只能运行在一个平台上);(3) 新版本需重新下载应用;
Web (1) 基于浏览器运行,可跨平台; (2) 开发工具选择多; (3) 不需要安装,控制更新容易;(4) 对开发人员要求相对低;(5) 开发成本低; (1) 只能使用有限的硬件设备能力; (2) 安全性低; (3) 必须联网; (4) 用户体验不是很好;(5) 性能低;
混合Hybrid (1) 可以混合使用原生和Web技术;(2) 可以跨平台;(3) 开发成本比原生低;(4) 可以利用手机的多种功能; (5) 可离线使用; (1) 用户体验不如原生; (2) 性能稍慢;(3) 技术还不是很成熟;

混合开发方式

方式一

这里写图片描述

方式二

这里写图片描述

比较

名称 优点 缺点
Cordova 可以跨平台;框架比较成熟;学习成本较低;基本不需要Android开发技能;对原生的特定要求,可以使用已有插件,也可以自定义开发 框架较重;性能可能稍差;中文参考文档少;自定义插件的开发,需要由原生开发人员完成
Android+H5 框架量级较轻;可以使用全部硬件功能;采用MVP模式,可以简化开发;可选前端框架比较多;性能比较好 不能跨平台;学习成本较高(需要了解android开发及前端框架);框架繁多,多数不成熟,可能会遇到一些陷进

其它

Android原生APP的开发有很多开源的框架可以使用,很多都可以从GitHub上找到。比如MVP架构的mvpart,以及基于事件的异步编程库RxJava2,以及前端框架vasSonic等。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/138894.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • jrtplib 编译安装配置[通俗易懂]

    jrtplib 编译安装配置[通俗易懂]  RTP是目前解决流媒体实时传输问题的最好办法,而JRTPLIB是一个用C++语言实现的RTP库,包括UDP通讯,它的主页地址是:Jori’spage  jrtplib源码的获取,可以在它的主页上直接下载,也可以使用git直接克隆一份。因为它的主页是国外网站,下载速度非常慢,我这里提供一份已经下载好的最新的jrtplib源码:jrtplib-3.11.1.tar.gz  我…

  • python 递归排序[通俗易懂]

    python 递归排序[通俗易懂]python递归    对序列排序,使用二分冒泡排序,将序列分割为两部分    第一步:首先,设定一个初始值,假设为序列的第一个值,    第二步:将序列中大于初始值的值,放置于初始值的左边    第三步: 将序列中小于初始值的值,放置于初始值的右边    第四步:将序列一分为二,存放小值的列表作为一个列表进入递归…

  • PyCharm vs Spyder:两个Python IDE的快速比较

    PyCharm vs Spyder:两个Python IDE的快速比较Ifyouhavefollowedmyblogyoumayhavenoticedthatalotoffocushavebeenputonhowtolearnprogramming(particularlyinPython).IhavealsowrittenaboutIntegratedDevelopmentEnvironments…

  • python可以自动回收垃圾吗_c语言垃圾回收机制

    python可以自动回收垃圾吗_c语言垃圾回收机制前言现在的高级语言如java,c#等,都采用了垃圾回收机制,而不再像c,c++里,需要用户自己管理内存。自己管理内存及其自由,可以任意申请内存,但这如同一把双刃剑,可能会造成内存泄漏,空指针等bug

  • 不能定义声明dllimport_不允许 dllimport 静态数据成员

    ViewCode“CTest::~CTest”:不允许dllimport函数的定义“CTest::CTest”:不允许dllimport函数的定义//代码如下templateclass__declspec(dllimport)CTest{public:CTest();~CTest();};templateCTest::CTest(){//}templateCTest::~…

  • vue人脸识别_vue不是内部或外部命令

    vue人脸识别_vue不是内部或外部命令1.vue报错:无法将“vue”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号