不到一个月用业余时间撸了个App

起因

虽然是个程序员,但是从来没做过 Android 和 iOS 应用的开发。但是一直有一个想法,想开发一个自己的 App 并且发布。
为此,也做了一些了解,发布到 Apple App Store 需要开发者账号,这个账号每年 99 刀,在这不得不吐槽一句太贵了,还不是终身,而是每年 99 刀,尤其对于我这种非专业 iOS 开发者来说,又没那么多应用发布,就有些不值得。所以只能转 Android 平台了,也了解了一下国内的众多安卓应用市场,这里也得吐槽一下,国内的 Android 市场太混乱了,每家都有一个,每家有每家的要求和政策。但是基本上都是需要软著的,这个是没办法绕过去的。所以,必须要去申请一个软著(目前还在申请中)。然后,国外的 Android 商店就是 Google Play 了,开发者账号25刀,并且还是终身的(不得不说,对于开发者来说很良心啊)。这么便宜,我也就申请了一个,准备也发布到 Google Play上。

相识

去年底的时候,无意中看到了 Flutter,它是 Google 开源的 UI 工具包,可以让开发者通过一套代码库,高效的构建多平台精美应用,现在可以说是全平台支持了,移动、Web、桌面和嵌入式平台都支持。真是非常强大啊。后边也一直有关注和了解,发现使用的人也越来多,我也尝试了安装和跑通了官方的 Demo。Flutter 本身就提供了非常多的漂亮内置组件,让你即使在没有美工设计的情况下,程序员自己都能非常方便的设计出好看界面。这就非常适合我这种不会画图和设计的程序员了。而且Flutter 还有很多开源的第三方 Package 包,在这里可以找到各种工具包,避免重复造轮子。

总之,Flutter 给我的感觉就是很强大,结合本身自带基础组件和第三方 Package 包,能够大大提高开发者的效率。只是有两点:1、Flutter 使用的是 Dart 语言,这个语言比较小众,不过有编程基础的学起来非常快,边用边学,基本很快就能上手。2、Dart 代码的谜之嵌套,代码可能会嵌套 n 多层,在修改的时候可能会比较麻烦,不过使用 AndroidStudio 和 VS Code 编辑器都提供了非常方便的快捷键,也基本能解决这个问题。

开始

我是在这个十一假期正式开始这个 App 的开发。都说熟悉一门新的框架,从一个 Todolist 开始。我这次也不例外,也是一个 Todo 类应用。

因为我也想通过这个 App 熟悉整个 Flutter 的框架和一个完整 App 的开发流程。所以我给自己的这款 App 确定了以下功能,在确定功能的同时还要调研实现这个功能需要那些技术和平台支持,比如说实现注册和登录功能,那就需要有服务器,自己也没写过服务器,所以就找有没有提供类似功能支持的平台。最后国内我找到了两家提供支持的平台 LeanCloudBmob,通过比较最后我选择了 LeanCloud,两家功能差不多(当然不止是注册登录功能,还有很多服务),我只是根据我自己的需求选择了其中一家。国外当然是首选 Firebase 了,免费,功能强大(可惜国内不支持)。最后我确定了以下功能和技术选型:

  • 注册登录功能(国内 LeanCloud,国外 Firebase)
  • Todo list 功能,todo 提醒功能
  • 笔记本功能
  • 主题切换
  • 多语言切换

主要就是以上几个主要功能,下面带你们来看一下,没有美工,一个程序员使用 Flutter 能做出来什么样的界面。

登录

登录本来打算实现邮件密码登录和手机号验证码登录,微信、QQ等第三方登录。奈何调研之后发现,手机验证码是需要付费的,本人穷屌丝一枚,无奈只能放弃手机验证码登录;微信和QQ等第三方登录大都需要企业资质,无奈个人开发者也只能放弃(当然,如果你确实需要可以个人注册公司,或者找第三方挂靠)。最后只能使用邮件和密码登录了。国外也是使用邮件密码登录,不过还接入了 Google 第三登录(后续会加上FB,Twitter等),不需要什么资质和条件,在这不得不说一下,国外貌似对个人开发者更加友好。

然后就是忘记密码,通过邮件重置密码。下面是截图:

BMGPdH.png

Todo

Todo 可以创建一个 Todo list 列表,然后列表里添加具体的 Todo 事项,Todo 列表可以收起和展开,可以为不同的 Todo 列表设置不同的颜色来区分,具体的 Todo 事项可以添加提醒功能。大体就这么多。来看一下应用内截图。

BMGCee.png

BM8zQK.png

BMGSsO.png

笔记

可以把一些重要的东西或者内容记下来,随你使用,自己记日记,写作文都没问题。

BM8vz6.png

设置

最后就是设置里边,可以切换深浅两种主题,切换不同的语言,还有退出登录。

BMGpLD.png

BMYwGR.jpg

推荐

在整个开发的过程中我把我用的一些好用的工具和网站推荐给大家。

技术类:
美术类:

最后我要隆重介绍一下这个 AI 设计工具:Hotpot ,因为现在上传 Google Play 需要上传 Google Play Feature Graphics 和 Screenshots,也就是一张置顶大图还有应用截图,但是我又不会 PS ,最后在网上找到这个工具网站,功能十分强大,直接网页在线设计,提供了很多模板,我上边的屏幕截图就是在这个网站设计的,是不是很漂亮。通过 Promo code 可以免费使用。

这个还有一个小插曲,因为 Promo code 需要去国外各大社交等网站找,或者在 FB,Twitter 分享后获得,我有点等不及,所以直接付了 1 美金来设计和下载,但是设计完之后需要连接外网才能保存和下载,结果就是我的没能下载成功,然后我就发邮件联系网站,后面我们通过网页聊天窗口交流,我使用我蹩脚的英文,一边利用翻译软件一边交流,快到最后解决的时候发现了对方是美籍华人,懂中文只是不太好,后边我们果断使用中文交流了,我还教了他很多说中文需要注意的地方。最后他帮我下载了设计图,并送了我一个免费七天的无限下载 code。

总结

现在国内和国外的第一个版本都已经开发完成了,国外的已经发布到 Google Play,目前正在审核中,貌似现在这个特殊时期审核时间大大加长了,不知道什么时候才能过。国内的还在申请软著中。不过我已经使用蒲公英内测分发了,感兴趣的小伙伴可以去这里下载安装:https://www.pgyer.com/JdvS ,安装密码:1111

蒲公英内测每个版本下载次数限制为 10 次/天,如果不能下载可以使用百度云下载:
链接: https://pan.baidu.com/s/1RyGN3n8ikI3o6HDGIxxNXA 提取码: zwii

我一个从来没接触过移动开发的人,从十月一开始到今天二十多天,每天也就利用业余的一两个小时,从学习查资料,调研技术,选择平台,美术资源等等一个人搞定。可见 Flutter 还是能大大提高开发者效率的,如果是从事移动开发,肯定会比我更快。在这个过程我也学习了很多,也有很大的收获,最后完成的时候也有很大的成就感,虽然只是一个简单的工具类应用。