一个小型GIS项目的技术选型
最近的一段时间里,一直没怎么更新相关 GIS 干货,实在有点抱歉。原因是业余时间和朋友一起接了个小活儿(没有996的公司只能自食其力了),由于之前也没太多相关经验,断断续续做了一段时间之后,这里也简要写个心得体会,万一后面有人也想接个小外包啥的,或许也可以做点小的参考。后续的时间如果条件允许,在数据脱敏的情况下,我会写几篇文章,详细介绍开发一个简单的GIS应用(跨Android、IOS、H5及小程序平台)的过程。
需求
主要的场景如下。
- 通过管理后台可以下发不同的检查任务给不同的检查员
- 检查员通过手机中的APP收到推送
- 打开APP点击任务,打开地图,导航路线
- 检查员到达特定地点,完成作业,并上传。
技术选型
前端:Uni-app,官网地址:https://uniapp.dcloud.io/
后端:Parse,官网地址:https://parseplatform.org/
为什么这么选?
其实前端的技术栈的选择还是有点纠结的,当时对比了几个:
- 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)。
有哪些坑?
目前开发过程中遇到几个坑,也和大家简单分享。
- vue的数组检测在某些情况下必要要更新引用
- 底层 weex 支持的css语法少
- 地图的开发不如 JavaScript API 方便
- 原生 TabBar 支持的设定太少,好多效果实现不了
- IOS 13,部分UI会有bug,目前需要更新到最新开发版
- 开发工具不好用,不支持Vim模式与插件
还有一些小的细节,大约在可接受的范围之内,也欢迎踩过坑的老铁一起讨论解决方案。
结语
目前开发已经进行了2个迭代,从目前可见的进度来看还是可以的,后续如果有更多的坑我会再写文章更新。如有其他问题,也可以留言。如果项目如期交付,我再把整个开发过程写几篇文章,这里立个Flag,欢迎大家监督。另外最近因为推文干货有点少,后期忙完,会给大家送点小奖品,生活不易,请大家理解~
相关阅读
声明
1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。
2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。