Flutter实战 | 从 0 搭建「GitHub」APP(一、项目简介、技术选型)

3,920 阅读2分钟

写在前面

开这个坑实际上是对自己的阶段性挑战,入行Flutter有一段时间了,从学习到任职Flutter岗位,越学习越是发现待学习和理解的东西还有很多,必须要沉住气向前冲~

开坑初衷

众所周知,GitHub目前并无官方的APP,除了仓库管理外,大部分业务仍然依赖web端进行。第三方开发的应用程序不少,相对有知名度的有OpenHub等,功能较为欠缺。同为Flutter开发的GSYGitHubAppFlutter跨平台内容非常丰富,但业务上仍然未进行深入。

在众大佬的共识(需要一款对GitHub业务实现更完善的APP)下,促成了该项目的诞生。不光要业务、还要跨平台,也是使用Flutter的原因。

项目地址

fluttercandies/gitcandies (为什么叫GitCandies?预知后事下回分解😆)

使用的依赖

dependencies:
  flutter:
    sdk: flutter

  flutter_screenutil: 0.6.0  /// 屏幕适配
  flutter_svg: 0.14.3  /// Svg文件显示
  github:  /// GitHub API
    git: https://github.com/AlexVincent525/github.dart.git
  intl: any  /// 日期格式化
  provider: 3.1.0+1  /// 状态管理
  pull_to_refresh_notification: 0.3.2  /// 下拉刷新
  shared_preferences: 0.5.4+1  /// 固化存储
  oktoast: ^2.2.0  /// 全局toast/widget

dev_dependencies:
  flutter_test:
    sdk: flutter
  ff_annotation_route: ^1.1.0  /// 法法注解路由

这里解释下为什么GitHub库使用了自己的fork。github.dart是已开源的GitHub v3接口实现的dart库,支持browser/server/app端的github接口使用。但在使用该库的过程中发现了较多问题,包括接口地址及注释错误、数据解析类型出错、难以理解的数据获取和分页方式等,笔者花了较多时间在该库的研究上,并也对其错误进行了PR,主库整合需要一定时间,所以开发阶段使用了个人修改的库进行开发。

项目目标

该项目作为FlutterCandies组织的项目,虽主要由笔者开发,但过程中已经或会有很多大佬(圈内公认)参与开发,注入其特有的特点:标准化。笔者希望该项目是国内较为规范和丰富的纯Flutter应用,业务完善的同时能为大部分Flutter开发者提供开发思路。

What's next?

下一篇将开始进入开发路程,从基础封装到业务实现,欢迎你的持续关注~

Flutter Candies

最后欢迎加入Flutter Candies,一起生产可爱的Flutter小糖果 (QQ群:181398081)flutter-candies