热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

起因虽然是个程序员,但是从来没做过Android和iOS应用的开发。但是一直有一个想法,想开发一个自己的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 确定了以下功能,在确定功能的同时还要调研实现这个功能需要那些技术和平台支持,比如说实现注册和登录功能,那就需要有服务器,自己也没写过服务器,所以就找有没有提供类似功能支持的平台。最后国内我找到了两家提供支持的平台 LeanCloud 和 Bmob,通过比较最后我选择了 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


推荐

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


技术类:

  • Flutter 官网
  • Flutter 社区中文资源
  • Flutter 实战电子书
  • Flutter Dart packages
  • LeanCloud 后端云支持
  • FlutterFire

美术类:

  • 阿里巴巴矢量图标库
  • Material Design
  • Android Asset Studio
  • 图标工厂
  • hotpot

最后我要隆重介绍一下这个 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

BMNZNQ.png

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

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


推荐阅读
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了如何找到并终止在8080端口上运行的进程的方法,通过使用终端命令lsof -i :8080可以获取在该端口上运行的所有进程的输出,并使用kill命令终止指定进程的运行。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • (三)多表代码生成的实现方法
    本文介绍了一种实现多表代码生成的方法,使用了java代码和org.jeecg框架中的相关类和接口。通过设置主表配置,可以生成父子表的数据模型。 ... [详细]
author-avatar
Joql
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有