主流移动应用开发的三种方式
目前市场上主流的移动应用开发分三种:
原生开发
原生开发主要指的是指开发者使用官方提供的语言、工具等开发在Android、IOS平台上运行的App。
原生开发的优点
- 官方提供了齐全的软硬件功能接口,App运行响应快,功能多,兼容性好,提供了较好的用户体验。
原生开发的缺点
- 可移植性差,一般需要不同的团队去开发对应平台的APP。
- 新版本上线需要应用商店审核,多渠道、多平台的上线时间存在时间差。
- 新版本功能需要重新安装才能更新使用,大部分情况下不能强制用户安装,需要同时维护应用的多个版本。
WebApp(本文所指的前端开发)
利用Web技术进行App开发,主要指可以在浏览器访问的网页。
WebApp开发的优点
- 同样的代码可以跨平台访问,开发成本低,新版本无需审核安装,用户可以直接统一使用新版本。
WebApp开发的缺点
- 由于技术本身限制,不能直接访问设备硬件,或不能使用部分软件功能,体验和性能相比原生较差。
- 必须联网使用,离线不能做任何操作。
混合开发
结合了前2种技术开发技术优点的开发方式,既有已有技术的结合用法(Hybrid),也有推出了新语言新工具新框架的用法(Flutter,ReactNative,Weex等),是当前的开发趋势。
为什么要学习前端
自参加工作以来,一直在做Android端的原生开发,经历了从不使用任何前端技术的纯App开发,到和前端配合在应用中嵌入前端页面的开发,也开发过一款使用了Flutter技术的APP。原生开发越来越离不开前端技术。
鉴于以下目的,我认为作为原生开发者也很有必要学习一下前端相关技术
- 能和前端进行基本交流,开发期间能够高效交流确定交互方案,出现bug时快速定位问题,高效解决问题。
- 混合开发是一种趋势,混合开发框架中大量采用了的前端开发一些思想,学习前端有助于学习混合开发技术。
- 即使是原生开发,一些好的开发框架中,也借鉴了前端开发中的优秀思想。学习前端技术有助于部分框架的理解。
前端开发入门路线图(持续完善中)
目前了解到对前端学习可从下图所示的一些技术入手,边学边补充吧