小项目应该如何进行跨平台方案选型
作为一个小开发,近期完整的经历了,一个初创项目从搭建到推向市场的过程。实际上在整个过程中,开发只占很小的一个板块,尤其是对于我司这种初创型企业,人少钱少,每一分都得花到刀刃上,因此产品开发的过程要足够快,成本也要足够低!
由于我们项目的特殊性,最初的产品demo通过微信小程序的形式跑通了基本功能,然后就到了正式研发阶段。老板对产品的要求就是需要包含:微信小程序、H5、Android、ios、windows、macos并且尽可能多的覆盖其它平台。本系列文章先站在公司的的角度对产品技术选型进行分析,然后再根据我们项目实际开发经验进行汇总,供大家参考。
目前大前端技术也非常丰富,可以实现,一次开发,打包多个平台。团队针对几个不同技术方案里进行了讨论:有比较老牌的Cordova、Xamarin、NativeScript,也有近几年比较火:React Native、Flutter、FinClip、Election
Cordova
Cordova胜在架构简单,比如一个简单的Activity,上面搭载一个CordovaWebView Component,他是一个改造过的WebView,加装了一些Cordova API,让你借此和Native的部分交互。App基本上就是一个Mobile Web,多了一些跟Native交互的能力。
优点是好上手,写代码快。有丰富的插件去衔接Native平台、社区完善。使用Ionic可以一套代码在安卓端、iOS端、网站端、小程序端通吃。
Cordova(Ionic)缺点也明显,终究是个Web,性能体验太差了!
Xamarin
Xamarin是Cordova的老对手,Xamarin的产品简化了针对多种平台的应用开发,包括iOS和 Android。总体比Cordova复杂多了,大致上分成几个部分:Xamarin.Android、Xamarin.iOS、Xamarin.Mac(后来才出现的)以及Xamarin.Forms。
Xamarin.Mobile有很多优点。在这一框架内,开发 Android 和 iOS 应用可以不用转到 Eclipse 或者额外购买 Mac 并使用 Xcode,而继续在Visual Studio之中使用 C# 与 .NET Framework 进行。而且性能性能接近原生、内置功能丰富(数千个自定义UI控件)。
缺点:稍微延迟支持最新的平台更新、对开源库的访问受限、Xamarin生态系统不大、与第三方库和工具的兼容性问题等等
Flutter
Flutter是近两年风很大的一款开源、跨平台移动端开发框架,由 Google 开发。Flutter 使用 Dart 作为开发语言,这是一门简洁、强类型的编程语言。它允许使用同一个代码库构建高性能、漂亮的 iOS 和 Android 应用,Flutter还提供了两套视觉库,可以针对不同的平台有不同的展示效果。此外,通过自定义的 Flutter 引擎可以将其嵌入到其他平台。
Flutter优点非常多:开源免费;Dart语言简单易学;独立的Skia渲染引擎,高性能高一致性、丰富的组件支持、丰富的社区支持,在混合开发中,是最接近原生开发的框架。
团队没有选择Flutter 的主要原因是Flutter on desktop也还是beta版本。Windows PC和linux平台的兼容支持官方正在持续研发中。
FinClip
与上面Flutter、Cordova、Xamarin这些框架技术比起来 FinClip实在是一款轻便简洁的小工具,我们惊叹于它的灵活性!整体灵活又体积小巧(大概3M)。
FinClip 是一套小程序容器技术,也可以说是小程序SDK Runtime/Engine,提供 Runtime 基于浏览器内核,采用动态语言(JS)和声明式 View 构建(XML),并且兼容互联网主流小程序技术,可采用 vue、react 基础上的 DSL 框架。
这种容器技术与上述的跨端技术不仅不冲突,还可以兼容。不管是通过Flutter、Reactive Native、uni 、Taro等开发出来的小程序都可以通过FinClip运行。
小程序运行时方案的高性价比,主要体现在应用体验、应用框架支持以及宿主环境结合等方面。
应用体验方面,小程序技术是前端容器技术的一种应用,其组件及UI都有明确的规范,开发者不用考虑兼容性及类似H5开发时复杂工具及框架的选择。同时,由于组件及UI都是预设的,展示体验也会更佳。
应用框架支持方面,运行时方案不仅支持纯 wxml 微信小程序运行,还支持包括Flutter、Reactive Native、 uniapp等第三方框架集成的小程序。
宿主环境结合方面,小程序是基于App端实现的应用,其获取系统(App)的权限也会多于H5;目前小程序技术的发展已经趋于成熟,市面上小程序以运行时已经开始出现多智能终端设备的适配(基于Andriod系统的多终端屏幕适配)。
目前我们团队选择了FinClip这样一款,灵活性轻量较高的技术方案,并且通过官方IDE里自带的“小程序转APP”功能将前期在微信上跑通的demo转成了APP应用上架到了应用市场。目前还在实现PC端的适配。该技术应用的情况,后续再给大家做分享。
小项目应该如何进行跨平台方案选型相关推荐
- 富文本及编辑器的跨平台方案
一.前言 之前在<富文本编辑器之游戏角色升级 ing>一文中,跟大家分享了富文本编辑器的发展历程.选型技巧和扩展方案.今天将和大家一起聊一聊"富文本及编辑器跨平台方案" ...
- 最火移动端跨平台方案盘点:React Native、weex、Flutter
本文原文由"恋猫月亮"原创发布,原题为<移动端跨平台开发的深度解析>,本次重新整理后,为了优化阅读体验,内容略有改动,感谢原作者的无私分享. 1.前言 跨平台一直是老生 ...
- 一篇读懂:Android手机如何通过USB接口与外设通信(附原理分析及方案选型)
更多技术干货,欢迎扫码关注博主微信公众号:HowieXue,共同探讨软件知识经验,关注就有海量学习资料免费领哦: 目录 0背景 1.手机USB接口通信特点 1.1 使用方便 1.2 通用性强 1.3 ...
- 一篇读懂无线充电技术(附方案选型及原理分析)
更多技术干货,欢迎扫码关注博主微信公众号:HowieXue,一起学习探讨软硬件技术知识经验,关注就有海量学习资料免费领哦: 目录 一篇读懂无线充电技术(附方案选型及原理分析) 0.背景 1.无线供电特 ...
- 多端统一技术方案选型
文章目录 概述 需求目的 考虑因素 项目因素 团队因素 技术因素 技术选型 候选技术 初步筛选 详细对比 多端支持 流行活跃度 开发工具 组件库/工具库/Demo 实践反馈 支持宝小程序 百度小程序 ...
- 制作一个有趣的涂鸦物联网小项目(涂鸦模组SDK开发 CBU BK7231N WiFi+蓝牙模组 HSV彩色控制)
实现的功能: l APP控制月球灯 l 本地月球灯控制 l APP控制"大白"颜色,实现各种颜色变身 l 门状态传感器状态APP显示 l 网络状态指示灯,连接服务器长亮, ...
- 开源数据湖方案选型:Hudi、Delta、Iceberg深度对比
文章目录 前言: 共同点 一.Databricks 和 Delta 1.1.Delta的意图,解决的疼点 1.没有 Delta 数据湖之前存在的问题 : 二.Uber和Apache Hudi 三.Ne ...
- K8s 或 K3s 集群中持久化存储方案选型
存储架构 1 三个概念: pv , pvc ,storageclass pv - 持久化卷, 支持本地存储和网络存储, 例如hostpath,ceph rbd, nfs等,只支持两个属性, capac ...
- 从零开始手搓一个STM32与机智云的小项目——硬件介绍
文章目录 前言 硬件简介 选型 1.主控 2.电源 3.电机驱动 4.舵机驱动 5.USB转TTL 6.其他模块 原理图绘制 1.STM32最小系统 1.电源输入 2.晶振选择 3.复位电路 4.BO ...
最新文章
- 开始新的BLOG了!!
- RosBE生成ReactOS的VS2015工程失败2
- JZOJ 1322. 硬币游戏
- 端口复用:隐藏 嗅探与攻击
- android包名更换后升级方案,Android增量升级方案
- 浅谈对称加密与非对称加密
- 基于JAVA+SpringMVC+Mybatis+MYSQL的相声购票系统
- sql 键查找 索引查找_残留谓词对SQL Server索引查找操作的影响
- media type
- Overfeat论文笔记
- cropper.js使用
- 配置MatConvNet
- scratch好书推荐
- 小tips:页面滚动到关闭时的位置与不滚动
- Git error: unable to create file xxx: Filename too long
- 2017年中国银行业软件测试成果交流会”在京成功举办-「D-Uni」
- html怎么修改背景图片,css怎么设置背景图片?
- Poj1704:staircase nim【博弈】
- Mule ESB开发与学习
- 重定向和转发的概念及区别
热门文章
- matlab中cuk电路搭建,Cuk斩波电路在MATLAB的建模与仿真 - cuk电路matlab仿真
- LMT LicManager系统对license管理创新中的新附加值
- C# 之 GUID格式化
- HTML5自定义表单验证错误提示信息
- 什么是通过人工神经网络,人工神经网络作用
- intel cpu tick-tock
- 桌面虚拟化计算机教室,为什么越来越多学校多媒体计算机教室实施桌面虚拟化终端学生机教学方案?...
- RSVP协议的基本概念介绍
- 第二十四天学Python:文件(3)XML格式文件的建立,用SAX解析
- 计算机毕业设计Java大学生宿舍信息管理系统(源码+系统+mysql数据库+lw文档