一:概念辨析

Web App:生存在浏览器里的应用,只能运行在浏览器里,宿主是浏览器,不是操作系统。资源一般都在网络上,就是一个触屏版的网站。如:微信公众号。不需要在设备上下载安装,只需通过浏览器即可访问、运行。

【但:也能通过第三工具打包成为可安装的app】

    Hybrid App:一个半原生程序,内嵌了一个原生的浏览器组件,把地址写死,然后里面运行了一个webapp。它也需要下载安装,虽然看上去是一个Native App,但只有一个UI WebView。半原生主要体现在:根据运行的系统而不同,需要打包成不同的app安装包(apk\ipa)。“Hybrid App同时使用网页语言与程序语言开发,通过应用商店区分移动操作系统分发,用户需要安装相应系统的移动应用”。
 
    Native App:一个原生程序,一般运行在机器操作系统上,一般静态资源都是在本地。浏览使用方便,体验度高。原生App是专门针对某一类移动设备而生的,它们都需要下载安装到设备里
    
 
二:把页面放在后台
    “能不放到前端,就尽量不要放到前端。做app(页面等在客户端)最终只会把自己赶上绝路。”
    原生App、WebApp打包生成的app,都是把页面、资源放在了客户端,好处是:加快了速度,缺点是:后面难维护、难迭代更新。【每次变动都需要重新发布安装包,用户需要重新安装应用】
    页面放在后端的好处:有变动,只需修改服务器上的页面文件即可,用户下一次打开时就是最新的页面。
 
三:技术选型
    1:不涉及原生调用的、面向业务的应用:做成WebApp,从微信、qq等地方提供一个入口即可,运行在微信内置浏览器、手机浏览器中。
    2:WebApp、H5程序打包成app:用HBuilder将WebApp、H5程序首页地址进行打包;得到的app默认打开到首页地址,之后app相当于一个浏览器内核,在其内就可以像操作原生app一样去操作页面了。【优点:资源全部放在后台,方便更新改动;用H5来开发,提高效率、自适应性好;整个App唯一受限于首页地址,首页地址变了需要重新打包,也可以直接在后台将原首页地址redirect到新首页地址即可。

3:业务复杂、页面多、数据多的跨平台应用:用跨平台开发技术,一套逻辑代码,打包成两种安装包;

4:业务场景特定、需求特别明确、性能要求严格、受硬件限制 的应用:如基于Android系统的设备,在其上开发控制类、交互应用,肯定是选用Android原生;还有游戏类收到硬件限制严重的应用,也肯定是用原生开发。

移动应用开发技术选型:WebApp>HybridApp>NativeApp的更多相关文章

  1. 05- 移动端APP的分类 与对比webApp hybridApp nativeApp

    随着智能手机的普及,移动端应用几乎成为每个互联网产品的标配.在快速迭代的互联网战场中高效开发.低成本上线产品,是每个应用开发团队追求的目标.此时,选择合适的应用类型和开发模式便至关重要.移动应用可以粗 ...

  2. Web开发技术选型之Java与PHP

    PHP与J2EE的对比 网上有很多关于PHP与J2EE之间的对比,细观无非以下几点: 1.语言特征 PHP为脚本语言,解释型语言,弱类型,专为Web开发打造.Java为C语言系编程语言,编译型,强类型 ...

  3. Android 开发技术选型(博客,新闻,阅读类)

    前言 最开始学习写应用的时候,发现类聚合数据这个平台可以提供一些免费数据接口,于是写了个人的第一个应用-– JuheNews,当时的知识储备稍显粗糙,虽然现在的知识也不咋滴,但是相对之前而言还是有些进 ...

  4. 关于APP,原生和H5开发技术的争论 APP开发技术选型判断依据

    关于APP,原生和H5开发技术的争论 App的开发技术,目前流行的两种方式,原生和Html5.原生分了安卓平台和ios平台(还有小众的黑莓.死去的塞班就不说了),H5就是Html5. 目前争论不休的问 ...

  5. 国内混合APP开发技术选型

    http://www.sunzhongwei.com/weex-react-native-ionic-technology-selection 选谁? 企业级应用是要考虑性能和流畅度的, 如果只是做个 ...

  6. Atitit 开发2d游戏的技术选型attilax总结

    Atitit 开发2d游戏的技术选型attilax总结 1.1. 跨平台跨平台:一定要使用跨平台的gui技术,目前最好的就是h5(canvas,webgl,dom) +js了..1 1.2. 游戏前后 ...

  7. 基于SpringBoot从零构建博客网站 - 技术选型和整合开发环境

    技术选型和整合开发环境 1.技术选型 博客网站是基于SpringBoot整合其它模块而开发的,那么每个模块选择的技术如下: SpringBoot版本选择目前较新的2.1.1.RELEASE版本 持久化 ...

  8. Unity外包团队:关于手机unity游戏开发的技术选型

    技术选型 Unity引擎内置了多人联机的解决方案,涵盖了从最底层的网络数据传输,到不同玩家之间的消息发送,再到游戏大厅这样的高级功能.考虑到Unity官方提供的云服务(Internet Service ...

  9. 前端开发工程师 - 05.产品前端架构 - 协作流程 & 接口设计 & 版本管理 & 技术选型 &开发实践

    05.产品前端架构 第1章--协作流程 WEB系统 角色定义 协作流程 职责说明 第2章--接口设计 概述 接口规范 规范应用 本地开发 第3章--版本管理 见 Java开发工程师(Web方向) - ...

随机推荐

  1. Windows 下安装 Ubuntu 双系统(更新)

    Windows + Ubuntu 16.04 ---> 双系统 前言:本篇文章是对之前文章的更新,更新的主内容是把原来用手机拍摄的图片换成了虚拟机的截图,以及对磁盘划分的新的见解和一些使用感受, ...

  2. Maya Max python PySide集成 shiboken版本对应关系

    Maya_Max _python_PySide集成_shiboken版本对应关系 1.如何查看 Maya Max 集成的 Python版本: Maya:在 Maya 的安装目录下的 bin 文件夹中找 ...

  3. 牛客练习赛28B (经典)【线段树】

    <题目链接> qn姐姐最好了~     qn姐姐给你了一个长度为n的序列还有m次操作让你玩,     1 l r 询问区间[l,r]内的元素和     2 l r 询问区间[l,r]内的元 ...

  4. poj 3685 Matrix 【二分】

    <题目链接> 题目大意: 给你一个n*n的矩阵,这个矩阵中的每个点的数值由   i2 + 100000 × i + j2 - 100000 × j + i × j  这个公式计算得到,N( ...

  5. hdu 2553 n皇后问题【DFS递归解法】

    <题目链接> 题目大意: Problem Description 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45 ...

  6. 初心不负 笔记-JS高级程序设计-引用类型篇-Array

    ES3方法集合: 1join()方法,将一个数组里面的所有元素转换成字符串,然后再将他们连接起来返回一个字符串,通过制定的符号,默认值为逗号.不会改变原数组 ,,,,]; a.join(); &quo ...

  7. ASP.NET Core 新建线程中使用依赖注入的问题

    问题来自博问的一个提问 .net core 多线程数据保存的时候DbContext被释放 . TCPService 通过构造函数注入了 ContentService , ContentService ...

  8. Alpha(10/10)

    鐵鍋燉腯鱻 项目:小鱼记账 团队成员 项目燃尽图 冲刺情况描述 站立式会议照片 各成员情况 团队成员 学号 姓名 git地址 博客地址 031602240 许郁杨 (组长) https://githu ...

  9. UVA 1590 IP Networks JAVA

    题意:输入m代表接下来的数据个数,计算接下来输入数据的网络掩码,和最小网络地址. 思路:①子网掩码:先将数据转为二进制,判断从哪一位开始有数据不一样,记下下标index,则子网掩码是index的前面是 ...

  10. 菜鸟随谈 Bootstrap 框架

    乃菜鸟也,尚来浅谈 Bootstrap!!! 人不努力就跟咸鱼有什么区别? 你想当咸鱼吗? 反正我不想!! 我是一个Java后台端的一个简单且普通的码农,对于原生的Html5这一块,只有略懂一丢丢,一 ...