花费大概一个多月的时间,这个彻底由Flutter编写的Todo-List项目总算初步完成了!如今,它终于要被开源出来了。android
app灵感来源这个地方:ios
在开始介绍以前,先来简单的看一下真机运行效果吧github
“一日清单”是一个小巧、简洁而又漂亮的app,它能够帮你随手记录平常的各项计划,若是你刚好有写任务计划的习惯,那么它必定很是适合你。web
下面,针对使用者和开发者,我未来分别介绍一次数据库
app中,能够在主题切换界面选择各类主题颜色进行切换,app自带六个默认主题,这些都是我通过屡次尝试所挑选出来的颜色搭配。同时你也能够选择自定义主题颜色json
在app中,每项任务都会带有一个图标,而app提供了全部 Flutter 自带的 Material design 风格的图标。这些图标,你一样能够进行任意颜色的自定义缓存
在app中,有多项其余的操做是你能够进行自定义的bash
好比说主页测滑栏的头部展现内容。固然,还有一些其余的操做,就由你去自行体验了网络
当你完成了一项任务后,这个任务就会从主页转移到完成列表页面,在这里你能够看到任务的一些额外信息
那么,对于使用者的介绍就到这里结束
下面就是为广大开发者们介绍的时间了!
若是你对于Flutter有着浓厚的兴趣而又迟迟没有行动,别犹豫了,快点上车吧!这个项目对于新手司机再适合不过了。
各位开发者们请扶好大家的秀发,下面就我来带领各位参观参观这个项目的内部构造
项目中使用了一些很是优秀的第三方库,也特别感谢这些开发者们,让个人发量保持健康
下面就是这些控件的信息
控件 | 说明 |
---|---|
dio | 网络请求 |
shared_preferences | 本地存储 |
provider | 状态管理 |
test | 单元测试 |
carousel_slider | 滑动控件 |
circle_list | 环形列表 |
intl | intl语言包 |
sqflite | 本地数据库 |
flutter_colorpicker | 取色框 |
cached_network_image | 图片缓存 |
image_picker | 图片选取 |
permission_handler | 权限申请 |
path_provider | 路径获取 |
image_crop | 图片裁剪 |
flutter_svg | svg解析 |
package_info | 获取package信息 |
flutter_webview_plugin | 网页 |
pull_to_refresh | 上拉加载 |
photo_view | 图片展现 |
url_launcher | 能够用来打开应用商店 |
open_file | 打开文件,android更新下载安装包用 |
项目使用的状态管理框架是 Provider
,而整个项目的架构以下
看起来是否是和 Android 中的 MVP 模式很像呢?其实都差很少的,只是名字略有不一样罢了,你也能够就把上面的模式看成是 MVP 模式。
Flutter 能够说是特别适合这种架构模式的,由于视图跟随数据而变化,你基本上不用去关心View,只要去对数据进行操做就行了。
项目目录结构以下:
├── android
├── build
├── images
├── intl.sh
├── ios
├── lib
├── local_json
├── pubspec.lock
├── pubspec.yaml
├── res
├── svgs
├── test
└── todo_list.iml
复制代码
先说明一下除了 lib 外的其余目录:
目录 | 说明 |
---|---|
images | 用于存放各类图片 |
local_json | 我将Flutter的Icon信息封装成了Json文件存放在这个目录中 |
res | 存放“国际化”插件生成的语言文件 |
svgs | 存放svg格式的图片 |
而后是 lib 目录
目录 | 说明 |
---|---|
config | 存放各类配置类,好比Dio请求封装类等 |
database | 存放数据库操做相关类 |
i10n | 存放国际化相关操做的类 |
items | 存放部分List列表的Item类 |
json | 各类网络请求、数据库等相关的json文件 |
logic | 上面提到的,Locig层的目录 |
model | Model层的目录 |
pages | 存放各个页面,是View层的目录 |
utils | 封装好的各️工具类,好比文件操做等 |
widgets | 封装好的各类Widget |
项目建立于6月21日,到现在发布1.0.0版本花了三十多天的时间,虽然我作过不少测试,解决了不少bug,可是时间确实不充裕。纰漏也会在所不免
因此若是使用过程当中遇到什么问题,或者对于项目有什么好的建议,欢迎在app中的反馈界面提出来,也能够在下面留下评论,又或者在github上提issue。
项目的UI设计与后台接口均由我独自一人完成,因此这也是为何时间不够的缘由。不过目前项目中只是包含了两个本身写的接口,后续计划中应该会加入登陆功能,到时候会有不少接口操做。
如有兴趣,请持续关注!
若是你以为这个app不错,或者这个项目有帮助到你,不妨给这个项目一个Star吧。项目后面也会持续保持更新和维护!
Ios 下载地址:
目前还没有购买一年99$的ios开发者帐号,这个之后可能会有!
注意:目前项目运行环境是flutter 1.7.8 hotfix的版本,改版本相对以往而言多了一些破坏性修复,
若是你的flutter版本比当前版本低,项目中依赖的某些第三方库将没法运行,到时候请下降他们的版本
下面是在1.5.4版本下须要修改的第三方库
- flutter_svg: ^0.12.4+2
- image_crop: ^0.2.1
- photo_view: ^0.3.3
复制代码
UI项目地址 密码:Aczh