百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

移动端开发框架选择及实践(移动开发ui框架)

ccwgpt 2024-09-29 09:43 36 浏览 0 评论


一、移动端框架选型

1、原生or 混合 or web

选型问题其实我并没有考虑,因为根据我们实际情况,最适合的还是混合开发。这里大概阐述一下原生、混合、web的区别。

原生开发没什么可说的,体验肯定是最好的,但是需android、ios两批人,小程序还要加人,人力成本相对较高。

这里所说的web是指用webview包装,主要问题是体验不太好,开发成本最低。

而混合开发则结合两者的优势,即可感受原生的体验,也可享受热更新。原生通过js调用android及ios的API(iOS是jscore,Android是v8)。特别是首页,列表等页面达到近似于原生的性能,也可以通过webview达到热更新的便利。

这里选型主要考虑人力情况、开发成本情况、人才的知识结构等。见下图:

2、三大框架

不讨论。根据人员知识结构决定了选择vue。

3、flutter or uniapp

这里特别说下flutter,因为它是google的产品,性能高。但它也只是个界面库。渲染性能排序:flutter>js调用原生渲染(react native/weex/uni-app)>webview渲染。但是flutter的写法很有可奇葩,不适应web开发者;另外三方接口调用方面能力弱。虽然flutter的发展势头不错,但对我们团队来说,成本还是太高。

二、uniapp框架选择

其实在写文章之前已经决定采用uniapp了,并不是它有多好,而是它适合我们目前的小团队。由于之前我们已经用uniapp来开发app,但由于库太旧,对nvue的支持弱,就决定升级原框架及页面,但并不想从头开始构造,于是选择合适的基础通用框架。

1、uni-starter

dcloud官方提供的快速框架,官方描述:uni-starter是一个集成了大量商用项目常见功能的,云端一体应用快速开发基本项目模版。APP有很多通用的功能,比如登录注册、头像、设置、banner、... uni-starter将这些功能都已经集成好。

其实已经基本满足一个通用框架的基本条件,本来准备采用它,但是它后台基于uniCloud,而且“不能将后台改成php、java等其他后台,这将违反使用许可协议“,由于我们后台有自己的框架,所以只能放弃了。

2、uni-xiaofan

最终我们采用的基础框架。

原因有三:

(1) 跟旧框架一脉相承,升级成本低。

(2) 采用uview2,支持nvue。

(3) Mit协议,且目前作者在维护。

3、ruoyi-uniapp

基于ruoyi的基础框架,目前只实现部分功能,界面可借鉴。

最终我们采用uni-xiaofan框架,并借鉴uni-starter及ruoyi-uniapp的部分功能。

三、uniapp实践

1、实践目标

(1)平台必须支持app(android和Ios),微信小程序、Chrome。

(2)app尽量采用nvue,特别是首页和列表部分。

(3)尽量采用flex布局,布局不使用百分比、没有媒体查询。

(4)基本框架支持vue3,尽量同时支持vue3。

(5)部分功能用uni-cloud实践,如版本升级及问题反馈功能。

2、UI库

本项目UI库主要采用uni-app自带的,再结合第三方库。第三方基础库主要采用uview2.0。

优先级:内置组件>uni-ui扩展组件>uview2.0组件>…

可通过uni_modules来安装扩展组件,不需要引用、注册,并可以通过右键快速更新组件。

3、布局

支持跨平台,框架使用 Flex 布局。

4、CSS

※尽量不使用百分比布局,如width:100%

※class 进行绑定时只支持数组语法。

※不支持媒体查询。

※不能在 style 中引入字体文件。

※不支持在css里写背景图background-image,但可以使用image组件和层级来实现类似web中的背景效果。因为原生开发本身也没有web这种背景图概念。

※设置background-color。

※文字内容,必须只能在text组件下,text组件不能换行写内容,否则会出现无法去除的周边空白。

※只有text标签可以设置字体大小,字体颜色。

另外尽量不使用uview2.0中的内置样式。

5、国际化

目前框架已支持国际化。使用时{{$t('mine.notLoggedInfo')}}or$t('mine.feedback')调用即可。

6、支持uniCloud

虽然我们不完全采用uniCloud,但是部分功能可通过unicloud实现,如版本升级及问题反馈等,实现更便捷。

四、uniapp页面

1、我的



2、消息



3、通讯录



4、工作台


相关推荐

Python+ Appium:Android手机连接与操作详解(附源码)

在移动端自动化测试领域,Appium一直是最热门的开源工具之一。今天这篇文章,我们聚焦Android端自动化测试的完整流程,从环境配置到代码实战,一步一步带你掌握用Python控制Android...

全平台开源即时通讯IM框架MobileIMSDK开发指南,支持鸿蒙NEXT

写在前面在着手基于MobileIMSDK开发自已的即时通讯应用前,建议以Demo工程为脚手架,快速上手MobileIMSDK!Demo工程主要用于演示SDK的API调用等,它位于SDK完整下载包的如下...

移动开发(一):使用.NET MAUI开发第一个安卓APP

对于工作多年的C#程序员来说,近来想尝试开发一款安卓APP,考虑了很久最终选择使用.NETMAUI这个微软官方的框架来尝试体验开发安卓APP,毕竟是使用VisualStudio开发工具,使用起来也...

在安卓系统上开发一款软件详细的流程

安卓app软件开发流程是一个系统而复杂的过程,涉及多个阶段和环节。以下是一个典型的安卓软件开发流程概述:1.需求分析目的:了解用户需求,确定APP的目标、功能、特性和预期效果。活动:开发团队与客户进...

ArkUI-X在Android上使用Fragment开发指南

本文介绍将ArkUI框架的UIAbility跨平台部署至Android平台Fragment的使用说明,实现Android原生Fragment和ArkUI跨平台Fragment的混合开发,方便开发者灵活...

Web3开发者必须要知道的6个框架与开发工具

在Web3领域,随着去中心化应用和区块链的兴起,开发者们需要掌握适用于这一新兴技术的框架与开发工具。这些工具和框架能够提供简化开发流程、增强安全性以及提供更好的用户体验。1.Truffle:Truff...

Python开发web指南之创建你的RESTful APP

上回我们说到了:PythonFlask开发web指南:创建RESTAPI。我们知道了Flask是一个web轻量级框架,可以在上面做一些扩展,我们还用Flask创建了API,也说到了...

python的web开发框架有哪些(python主流web框架)

  python在web开发方面有着广泛的应用。鉴于各种各样的框架,对于开发者来说如何选择将成为一个问题。为此,我特此对比较常见的几种框架从性能、使用感受以及应用情况进行一个粗略的分析。  1Dja...

Qwik:革新Web开发的新框架(webview开源框架)

听说关注我的人,都实现了财富自由!你还在等什么?赶紧加入我们,一起走向人生巅峰!Qwik:革新Web开发的新框架Qwik橫空出世:一场颠覆前端格局的革命?是炒作还是未来?前端框架的更新迭代速度,如同...

Python中Web开发框架有哪些?(python主流web框架)

Python为Web开发提供了许多优秀的框架。以下是一些流行的PythonWeb框架:1.Django:一个高级的Web框架,旨在快速开发干净、实用的Web应用。Django遵...

WPF 工业自动化数据管控框架,支持热拔插 DLL与多语言实现

前言工业自动化开发中,设备数据的采集、处理与管理成为提升生产效率和实现智能制造的关键环节。为了简化开发流程、提高系统的灵活性与可维护性,StarRyEdgeFramework应运而生。该框架专注...

[汇川PLC] 汇川IFA程序框架06-建立气缸控制FB块

前言:汇川的iFA要跟西门子对标啦,这可是新的选择!就在2月14日,汇川刚发布的iFA平台,一眼就能看出来是对标西门子的全集成自动化平台博途(TIAPortal)。这个平台能在同一个...

微软发布.NET 10首个预览版:JIT编译器再进化、跨平台开发更流畅

IT之家2月26日消息,微软.NET团队昨日(2月25日)发布博文,宣布推出.NET10首个预览版更新,重点改进.NETRuntime、SDK、libraries、C#、AS...

大模型部署革命:GGUF量化+vLLM推理的极致性能调优方案

本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在官网-聚客AI学院大模型应用开发微调项目实践课程学习平台一、模型微调核心概念与技术演进1.1微调的本质与优势数学表达:1....

拓扑学到底在研究什么?(拓扑学到底在研究什么问题)

拓扑是“不量尺寸的几何学”,那么它的核心内容,主要方法是什么?如果你问罗巴切夫斯基,他会说“附贴性是物体的一个特殊的属性。如果我们把这个性质掌握,而把物体其他的一切属性,不问是本质的或偶然出现的,均不...

取消回复欢迎 发表评论: