uni-app跨端开发H5、小程序、IOS、Android(一):太强了,一次性搞定全端开发

算法工
• 阅读 3988

大家好,我是黑马腾云。

这是一个原创系列连载文章,基于企业真实项目案例分享经验,带你快速入门uni-app开发!欢迎点击头像关注,避免迷路!同时如果觉得文章不错,欢迎转发帮助更多人。

文章断更了段时间,之前大半年一直在忙创业的事情,期间带领团队从0到1用uni-app+java开发了二款商城类商业级应用,产品形态覆盖H5、微信小程序、IOS、Android。目前产品已成功发布到各大电子市场。

难得有空静下来对项目做下总结,本系列文章先站在公司的的角度对产品技术选型进行分析,然后再根据我们项目实际开发经验进行汇总,供大家参考。

一、我们为什么选uni-app?

一个项目从立项开发到推向市场,开发只是其中占比很小的一个板块,尤其是对于初创企业来说,把每分钱都花在刀刃上显得尤为重要,因此产品开发的过程要够快、成本要够低。

基于一些特殊的原因,项目启动之初,团队对产品要求就是需要包含:微信小程序、H5、Android、Ios,并且尽可能多的覆盖其它平台。

单从技术角度去考虑,实现方式还是挺多的。

1、采用原生开发的模式

微信小程序:微信官方提供了原生的开发模式。

Android:采用java或Kotlin进行原生开发。

Ios:采用Object-c或Swift进行原生开发。

采用原生开发模式,小程序、Android、Ios每个岗位都至少需要一位人员,成本较高。

2、采用大前端技术,一次开发,打包多个平台

大前端跨平台技术也有不同技术方案:uni-app、flutter、react native、Taro等等,都可以做到一次开发,跨端兼容。

跨端技术经过这些年的发展,除非特殊场合对性能要求非常高的场合,针对普通应用,性能基本都能满足,即便是真有特殊需求也可以通过混合开发的模式进行解决。

综合从技术生态、开发者社区活跃度、学习成本等诸多方面考虑,针对初创团队来说uni-app是比较好的选择。uni-app有很好的多端兼容机制,并有大量成功的项目案例。同时uni-app是基于vue.js实现,因此前端人员很容易就能实现H5、小程序、App以及管理后台的开发(甚至在很多小企业一个人就把这些活儿干完了),节约人力成本。

二、系列文章规划

研发产品的成功上线(App store、Android电子市场、小程序发布)直接验证了方案的可行性。当然在开发过程中也遇到一些坑,特意梳理总结出来供参考和讨论。

为了让没接触过uni-app开发的人员也能快速上手,本系列文章将从最常用的基础知识点开始梳理,汇集成入门到实战系列文章。前半部分的文章主要讲解基础知识点、后半部分将以实战形式进行demo演示。

前置知识

了解微信小程序开发概念

了解app相关概念

有一定的HTML+CSS基础

适用人群

零基础前端人员

在校学生

想了解前端的后端程序员

对小程序和app开发感兴趣人员

特别说明:由于本系列文章主要是面向入门人员提供参考和帮助,因此不适合uni-app经验丰富的开发人员。后期会推出高阶实战系列,敬请关注。

内容规划

基础部分

uni-app跨端开发H5、小程序、IOS、Android(一):太强了,一次性搞定全端开发

uni-app跨端开发H5、小程序、IOS、Android(二):使用HBuilderX等工具进行跨端开发

uni-app跨端开发H5、小程序、IOS、Android(三):理解uni-app框架思想

uni-app跨端开发H5、小程序、IOS、Android(四):了解uni-app项目结构

uni-app跨端开发H5、小程序、IOS、Android(五):一文弄清uni-app双向数据绑定

uni-app跨端开发H5、小程序、IOS、Android(六):一文弄清uni-app事件绑定机制

uni-app跨端开发H5、小程序、IOS、Android(七):uni-app渲染

uni-app跨端开发H5、小程序、IOS、Android(八):理解uni-app生命周期函数及作用

uni-app跨端开发H5、小程序、IOS、Android(九):为什么uni-app能自适应不同屏幕尺寸

uni-app跨端开发H5、小程序、IOS、Android(十):如何实现跨端兼容,全平台覆盖

uni-app跨端开发H5、小程序、IOS、Android(十一):有哪些主流的前端布局方式

uni-app跨端开发H5、小程序、IOS、Android(十二):一文掌握flex布局中的容器属性

uni-app跨端开发H5、小程序、IOS、Android(十三):一文掌握flex布局中的元素属性

demo部分......

三、uni-app简介

uni,读 you ni,是统一的意思。

uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)、快应用等多个平台。

uni-app 在开发者数量、案例、跨端抹平度、扩展灵活性、性能体验、周边生态、学习成本、开发成本等8大关键指标上拥有更强的优势。

uni-app最大特点就是跨平台,底层屏蔽了各大平台的差异,使得开发者能用同一套语法开发不同平台的应用。uni-app跨平台本质思想就是在编译时将代码转化为各自平台的代码。

官方提供的uni-app功能框架如下图:

uni-app跨端开发H5、小程序、IOS、Android(一):太强了,一次性搞定全端开发

平台经过几年的发展,目前已经聚集了几百万开发者,有着完善的插件市场和周边生态,也提供了广告变现,无论初创公司还是个人开发者都是一个不错的选项。

四、开发工具介绍

前端开发工具很多,主要分为文本编辑器和IDE集成环境,选择很多:Atom、sublime、Dreamweaver、Visual Studio Code、WebStorm、HbuilderX等等。

没有最好,适合的就是好的。业界普遍用的多的就是:Visual Studio Code和HbuilerX,我们团队采用的是官方提供的HbuilderX进行跨端开发。

可以根据个人喜好选择某一个开发工具,也可以多个开发工具混用。

五、真实项目演示

真实商业项目,已发布小程序、上线各大电子市场,可自行根据名称进行搜索体验。

案例1:“好厨联盟”

app store、各大电子市场、公众号、小程序皆可搜索体验。

案例2:“大当家云火锅”

公众号、小程序皆可搜索体验。

下一篇文章,来看看HBuilderX开发工具的使用技巧。

更多精彩内容,欢迎持续关注。有任何疑问欢迎添加作者进行交流。

作者介绍: 黑马腾云,码农、创业者、终身学习者! 乐于分享技术、创业、人生思考。关注我,一起为人生喝彩!

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
3年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Stella981 Stella981
3年前
Docker 部署SpringBoot项目不香吗?
  公众号改版后文章乱序推荐,希望你可以点击上方“Java进阶架构师”,点击右上角,将我们设为★“星标”!这样才不会错过每日进阶架构文章呀。  !(http://dingyue.ws.126.net/2020/0920/b00fbfc7j00qgy5xy002kd200qo00hsg00it00cj.jpg)  2
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这