麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

一个小型GIS项目的技术选型

最近的一段时间里,一直没怎么更新相关 GIS 干货,实在有点抱歉。原因是业余时间和朋友一起接了个小活儿(没有996的公司只能自食其力了),由于之前也没太多相关经验,断断续续做了一段时间之后,这里也简要写个心得体会,万一后面有人也想接个小外包啥的,或许也可以做点小的参考。后续的时间如果条件允许,在数据脱敏的情况下,我会写几篇文章,详细介绍开发一个简单的GIS应用(跨Android、IOS、H5及小程序平台)的过程。

需求

主要的场景如下。

  1. 通过管理后台可以下发不同的检查任务给不同的检查员
  2. 检查员通过手机中的APP收到推送
  3. 打开APP点击任务,打开地图,导航路线
  4. 检查员到达特定地点,完成作业,并上传。

技术选型

前端:Uni-app,官网地址:https://uniapp.dcloud.io/

后端:Parse,官网地址:https://parseplatform.org/

为什么这么选?

其实前端的技术栈的选择还是有点纠结的,当时对比了几个:

  1. React Native
  2. Weex
  3. Flutter
  4. 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个平台。

uni-app

另外其对 Weex 也做了一定的封装,避免了之前 Weex 开发的各种痛苦。生态目前来看也可以,官方还有各路开发者提供不少的插件。

至于后端的选型比较简单,因为这个项目的后端工作量不大,用不上 Spring 这种大家伙,本来考虑的是 Lean Cloud,后来客户要求数据放自己服务器上,于是就使用了开源的 Parse(相当于开源版本的 Lean Cloud)。

Parse

有哪些坑?

目前开发过程中遇到几个坑,也和大家简单分享。

  1. vue的数组检测在某些情况下必要要更新引用
  2. 底层 weex 支持的css语法少
  3. 地图的开发不如 JavaScript API 方便
  4. 原生 TabBar 支持的设定太少,好多效果实现不了
  5. IOS 13,部分UI会有bug,目前需要更新到最新开发版
  6. 开发工具不好用,不支持Vim模式与插件

还有一些小的细节,大约在可接受的范围之内,也欢迎踩过坑的老铁一起讨论解决方案。

结语

目前开发已经进行了2个迭代,从目前可见的进度来看还是可以的,后续如果有更多的坑我会再写文章更新。如有其他问题,也可以留言。如果项目如期交付,我再把整个开发过程写几篇文章,这里立个Flag,欢迎大家监督。另外最近因为推文干货有点少,后期忙完,会给大家送点小奖品,生活不易,请大家理解~

相关阅读

麻辣GIS-Sailor

作者:

GIS爱好者,学GIS,更爱玩GIS。

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

手机阅读
公众号关注
知识星球
手机阅读
麻辣GIS微信公众号关注
最新GIS干货
关注麻辣GIS知识星球
私享圈子

留言板(小编看到第一时间回复)