一个小型GIS项目的技术选型
最近的一段时间里,一直没怎么更新相关 GIS 干货,实在有点抱歉。原因是业余时间和朋友一起接了个小活儿(没有996的公司只能自食其力了),由于之前也没太多相关经验,断断续续做了一段时间之后,这里也简要写个心得体会,万一后面有人也想接个小外包啥的,或许也可以做点小的参考。后续的时间如果条件允许,在数据脱敏的情况下,我会写几篇文章,详细介绍开发一个简单的GIS应用(跨Android、IOS、H5及小程序平台)的过程。
1
需求
主要的场景如下。
通过管理后台可以下发不同的检查任务给不同的检查员
检查员通过手机中的APP收到推送
打开APP点击任务,打开地图,导航路线
检查员到达特定地点,完成作业,并上传。
1
技术选型
前端:Uni-app,官网地址:https://uniapp.dcloud.io/
后端:Parse,官网地址:https://parseplatform.org/
1
为什么这么选?
其实前端的技术栈的选择还是有点纠结的,当时对比了几个:
React Native
Weex
Flutter
uni-app
React Native是我本人最想使用的技术选型,因为之前项目中也写过一些,并且最新的 React Native 已经支持了 Hooks,并且开发生态非常好,基本常用的功能不需要再去写原生代码。但项目中的几个新人都是Vue技术栈,并且对 React Native 的坑还没怎么踩过。基于 时间和团队开发效率 考虑,于是放弃。
Weex 在之前的很长一段时间内被折磨的很惨,并且现在官方的维护也基于相当于停止。PS:阿里的开源项目,目前最好用的就是 Antd 了吧。好不容易从坑里爬出来,我不是不可能再跳进去的。
Flutter,这是挑战 React Native 的强力对手。之前也看过许多文章和测评,并且写过一些的小的demo,但最后出于其目前 5000+ 的issue数量以及目前的开发生态,最后还是出于保守交付考虑,暂时搁置。
uni-app,其实本来是不想选这个的,(是的,我倾向于React Native),它是一个国产的平台,并且兼容APP端也使用了 Weex。选它一是因为使用的是 Vue 语法,团队成员可以迅速投入交付,不需要多少学习成本。二是其支持的平台足够多,一套代码编到8个平台。
另外其对 Weex 也做了一定的封装,避免了之前 Weex 开发的各种痛苦。生态目前来看也可以,官方还有各路开发者提供不少的插件。
至于后端的选型比较简单,因为这个项目的后端工作量不大,用不上 Spring 这种大家伙,本来考虑的是 Lean Cloud,后来客户要求数据放自己服务器上,于是就使用了开源的 Parse(相当于开源版本的 Lean Cloud)。
1
有哪些坑?
目前开发过程中遇到几个坑,也和大家简单分享。
vue的数组检测在某些情况下必要要更新引用
底层 weex 支持的css语法少
地图的开发不如 JavaScript API 方便
原生 TabBar 支持的设定太少,好多效果实现不了
IOS 13,部分UI会有bug,目前需要更新到最新开发版
开发工具不好用,不支持Vim模式与插件
还有一些小的细节,大约在可接受的范围之内,也欢迎踩过坑的老铁一起讨论解决方案。
1
结语
目前开发已经进行了2个迭代,从目前可见的进度来看还是可以的,后续如果有更多的坑我会再写文章更新。如有其他问题,也可以留言。如果项目如期交付,我再把整个开发过程写几篇文章,这里立个Flag,欢迎大家监督。另外最近因为推文干货有点少,后期忙完,会给大家送点小奖品,生活不易,请大家理解~
1
扩展阅读
「图解」ArcGIS 10.6 for Desktop 安装教程(附下载地址)
「图解」ArcGIS 10.4.1 Desktop 完整安装教程(含win7/8/10 32/64位+下载地址+亲测可用)
「解惑」安装ArcGIS License Manager 服务无法启动的解决方案汇总
「分享」 王志强:ArcGIS 10.2操作入门视频教程汇总
「教程」使用ArcGIS(ArcMap)进行简单的缓冲区分析
「视频 」ArcGIS API for JavaScript开发入门教程
「视频」ArcGIS 10.6 for Desktop 安装视频教程
1
分享你的文章
扫码加小编
一起"稿"GIS
END
关注 麻辣GIS
291616564(QQ群一)
166408035(QQ群二)
627853279(QQ群三)436386604(QQ群四)
606176554(QQ群五)
946178380(QQ群六)
http://malagis.com
长按识别二维码关注我们