多端开发之uniapp开发app
最近在给f做一些工具app,学习了不少关于uniapp编写android应用的知识。
首先,App应用的创建的时候要选择项目类型为uniapp类型。最开始我选择的是h5+项目,这种项目就比较容易写成纯js的项目,利用一些html5plus能力,或者使用mui来编写手机app。
我调研了一下,uniapp和h5+(mui为代表)的差异和优缺点如下所示。
| 技术类型 | 优点 | 缺点 |
|---|---|---|
| uniapp | 可以使用unipp封装的组件和api,有海量的插件可以从插件市场中找到。兼容多端,也可以用html5plus的api能力。可以复用小程序项目的逻辑代码,对团队的技术积累有好处。 | 需要学习vue语法,可能性能没有mui的优化效果好。 |
| H5+ | 也可以跨端生成多种应用,但是不能使用uniapp的组件、插件以及api中涉及h5的能力。其中mui号称可以达到原生应用级别的性能和交互效果。 | 局限于原生js以及依赖库的编写方式。无法统一和小程序项目的技术栈和编程方式,无法服用代码。 |
我首先尝试了一下h5+的mui项目,发现写起来很原始,因为大部分能力都是mui的js库提供的,写法完全和uniapp项目不同,很多uniapp封装的组件和api都不能直接使用。为了长远考虑,如果以后还要生成ios的app,mui技术未必适合。
再加上之前的小程序端也是uniapp类型项目,有很多基础库和方法是可以借鉴的,所以最终选择使用uniapp类型的项目来开发f端的app。
不得不说uniapp来开发跨端的应用是非常方便的,同一套代码除了平台特性的代码不能直接在其他平台上用,大部分通用的能力和代码是可以复用的。
tab上的定义还是在pages.json里面的tabBar定义,图片资源的目录结构也可以参考之前的项目。
然后就是一些功能开发了,其中uuid的获取方式和小程序不通,原始app的获取uuid(设备的唯一标识)的api在html5plus上也有对应的api,获取方式如下所示。
const uuid = plus.device.uuid;
值得一提的是html5plus里面提供了非常多好用的html5新特性,包括蓝牙(Bluetooth)、AD(广告联盟模块)、设备麦克风(Audio)、二维码(BarCode)、设备的摄像头(Camera)、设备信息(Device)、系统相册(Gallery)等。上面获取uuid的方法就属于管理设备信息的API之一。国内有专门的HTML5产业联盟,相关API可以从这里跳转。
由于我是开发的andorid app,所以在调试的时候也会使用到android studio,关于调试的方法我会单独写一篇文章来讲述,这里不展开说。大部分时候我们都有2种选择,要么使用AVD(虚拟设备)来调试app,要么连接真实手机进行调试(假设你有android系统的手机)。
调试的过程会遇到一些坑(后面写专题单独讲),但是最终我们是可以开发出较为满意的app,通过hbuilder可以打包成需要的apk。
这种开发模式非常流畅,适合创业团队或者全栈技术人,一套代码生成多端,开发效率非常高。测试代码也可以复用之前的,uniapp项目的自动化测试都是类似的,对测试团队也是非常友好。
性能方面,由于是小范围使用,数据量不是很大,体验上和原生app差别不大。对于资源也能预加载,这方面我还没有深入了解,但是提供了相关api,不用太担心lazy load的问题。
多端开发之uniapp开发app的更多相关文章
- 移动端开发之APP消息推送
有这样一种场景,当你在手机APP上输入你的信息,会自动跳出一个弹窗,表示某任务已执行.最简单的一个例子就是当你输入手机号,点击获取验证码的时候,就会跳出一个对话框,说“验证码已发送到手机,请注意查收” ...
- Java进击C#——应用开发之WinForm开发
本章简言 上一章笔者介绍了关于WinForm环境.这一章笔者将继续讲WinForm.只不过更加的面向开发了.事实就是在学习工具箱里面的控件.对于WinForm开发来讲,企业对他的要求并没有那么高.但是 ...
- 应用开发之WinForm开发
本章简言 上一章笔者介绍了关于WinForm环境.这一章笔者将继续讲WinForm.只不过更加的面向开发了.事实就是在学习工具箱里面的控件.对于WinForm开发来讲,企业对他的要求并没有那么高.但是 ...
- 选择了uniapp开发app
7月份打算做一简单app,之前公司做app的时候简单用过Dcloud公司的mui,当时由于uniapp刚出来,最终选择了mui.对uniapp的 了解几乎没有. 做app对我来说几乎是零基础的,当然是 ...
- 移动端开发之px,em和rem详解
px:表示的是绝对的像素值,1px就是1像素大小 em:关于em,网上有资料说是关于父元素的,但是其实个人感觉这种说法是不对的,其实em的大小是根据自身的font-size确定的,而只是正常的情况下子 ...
- 17-前端开发之jQuery
什么是 jQuery ? jQuery 是一个 JavaScript 库,它极大地简化了 JavaScript 编程. jQuery是一个兼容多浏览器的javascript库,核心理念是write l ...
- 15-前端开发之JavaScript
什么是 JavaScript ? JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出 ...
- 14-前端开发之CSS
什么是 CSS ? CSS 指层叠样式表 (Cascading Style Sheets),用于对页面进行美化. 存在的方式有3种: 元素内联:在标签中使用 style='xx:xxx;' 页面嵌入: ...
- Android 开发之 Android 开发的起步
前言 Android 开发的起步 我们可以先来看看百科上面怎么说? 百度百科上 Android的介绍 一.Windows环境下在线搭建Android环境. 1. 下载 Android开发工具. JD ...
随机推荐
- SQL高级优化(六)之MySQL索引
一.索引概述 1. 索引的优点 为什么要创建索引?这是因为,创建索引可以大大提高系统的查询性能.如果不使用索引,查询时从第一行开始查询.如果使用了索引,所以就可以更加快速的找到希望的数据. 第一. ...
- iframe 去除边框 背景透明等设置 待修改
<iframe name="file_frame" src="UploadFile.jsp" frameborder=no border=0 marg ...
- 【Java】单例设计模式
文章目录 单例设计模式 什么是设计模式 单例设计模式 实现 饿汉式 懒汉式 饿汉式与懒汉式的区别 饿汉式 懒汉式 单例模式的应用场景 单例设计模式 什么是设计模式 设计模式是在大量的实践中总结和理论化 ...
- Git 基本操作指南
Git 基本操作指南 内容概要 这个作业属于哪个课程 2022面向对象程序设计 这个作业要求在哪里 2022面向对象程序设计寒假作业1 这个作业的目标 Git & Github 作业正文 如下 ...
- cesium结合geoserver利用WFS服务实现图层编辑(附源码下载)
前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...
- 在DigitalOcean vps中安装vnstat监控流量,浏览器打开php代码。。。
由于DigitalOcean中没有发现可以观察已用流量的功能,有想知道自己的流量使用情况,所以安装了vnstat. 安装过程十分简单,见百度经验,官方主页等. 1.安装完vnstat后,直接命令vns ...
- [源码分析] Facebook如何训练超大模型 --- (3)
[源码分析] Facebook如何训练超大模型 --- (3) 目录 [源码分析] Facebook如何训练超大模型 --- (3) 0x00 摘要 0x01 ZeRO-Offload 1.1 设计原 ...
- 多线程-线程间通信-多生产者多消费者问题(JDK1.5后Lock,Condition解决办法及开发中代码范例)
1 package multithread4; 2 3 import java.util.concurrent.locks.Condition; 4 import java.util.concurre ...
- ambari-hadoop集群管理web工具
https://baike.baidu.com/item/Ambari/19697889?fr=aladdin https://www.ibm.com/developerworks/cn/openso ...
- python3 类的学习
# -*-coding:utf-8-*- # 定义类是通过class关键字,class后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继承下来 ...