多端开发之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 ...
随机推荐
- Standalone集群搭建和Spark应用监控
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6815920501530034696/ 承接上一篇文档<Spark词频前十的统计练习> Spark on ...
- [转]JS正则表达式基础
1. 正则表达式的概念 正则表达式(regular expression)描述了一种字符串匹配的模式.这种模式,我们可以理解成是一种"规则".根据这种规则再去匹配符合条件的结果,而 ...
- 如何查看mysql的用户权限
查询语句:select * from mysql.user where user='root'\G;user是用户名 <privileges>是一个用逗号分隔的你想要赋予的MySQL用户权 ...
- 一条 Git 命令减少了一般存储空间,我的服务器在偷着笑
元旦不是搭建了一个<Java 程序员进阶之路>的网站嘛,其中用到了 Git 来作为云服务器和 GitHub 远程仓库之间的同步工具. 作为开发者,相信大家都知道 Git 的重要性.Git ...
- 【刷题-PAT】A1112 Stucked Keyboard (20 分)
1112 Stucked Keyboard (20 分) On a broken keyboard, some of the keys are always stucked. So when you ...
- Ajax_同源策略以及跨域问题
Ajax_同源策略 同源策略是浏览器的一种安全策略, 同源指的是:协议.域名.端口.必须完全相同. 违背同源策略就是跨域. 而AJAX是默认遵循同源策略的: 同源说通俗一点呢就是页面跟获取请求的接口是 ...
- golang中如何将json文件解析成结构体
package tool import ( "bufio" "encoding/json" "fmt" "os" ) t ...
- 介绍一个golang库:fastcache
学习VictoriaMetrics源码的时候发现,VictoriaMetrics的缓存部分,使用了同一产品下的fastcache.下面分享阅读fastcache源码的的结论: 1.官方介绍 fastc ...
- 001 研发同学必学哪些 Linux 命令?
01 研发同学为啥要掌握 Linux 命令? 身为研发同学,Linux 是绕不过去的一个小山包,不是说要掌握的十分精通,在程序员界里做个极客,也不是说要抢了 Devops 同学的饭碗,但至少要做到摆脱 ...
- pycharm下载安装教程
简介: 首先,PyCharm操作简便,拥有一般IDE具备强大的功能,既适合新手,也可以满足开发人员的专业开发需求,接下来介绍一下如何下载和安装pycharm. ### 一:Pycharm下载 1.首先 ...