GSYGithubApp:Flutter 跨平台 GitHub 客户端
基于 Flutter 的开源 GitHub 客户端 App,功能丰富,适合日常管理 GitHub 与学习 Flutter。
- 浏览
- 4
- 访问
- 0
- 下载
- 0
- 版本
- v8.1.1
- 平台
- Android、iOS
详细介绍
项目简介
GSYGithubApp(仓库 gsy_github_app_flutter)是一款基于 Flutter 的跨平台开源 GitHub 客户端 App,提供更丰富的功能和更好的使用体验,用于日常管理和维护个人 GitHub。项目框架内技术涉及面广,涵盖常用控件、网络请求、数据库、设计模式、主题切换、多语言、状态管理(Redux、Riverpod、Provider、Signals)等,完成度高、持续维护,适合作为完整的 Flutter 学习与对比参考项目。
同系列还有 Weex、React Native、Android Kotlin View、Android Compose、Compose Multiplatform、HarmonyOS ArkUI 等版本,可与本项目的 Flutter 实现对比参考。
主要功能
- 围绕 GitHub 的日常使用场景组织页面,代码中按
page/目录拆分出首页、动态、Issue、登录、Push、Release、仓库、搜索、趋势、用户等模块。 - 多种全局状态管理并存演示:Provider、Redux、Riverpod,页面内状态另有 Signals 示例(如 NotifyPage、RepositoryDetailFileListPage)。
- TrendPage 采用纯 riverpod 状态管理;RepositoryDetailPage 使用 Provider;Redux 用于全局登录和用户信息。
- Repos 等请求使用 GraphQL。
- 多套下拉刷新列表组件:
gsy_pull_load_widget.dart:common_list_page.dart等使用,搭配gsy_list_state.dart;gsy_pull_new_load_widget.dart:dynamic_page.dart等使用,搭配gsy_bloc_list_state.dart,支持 iOS 与 Android 两种下拉风格;gsy_nested_pull_load_widget.dart:trend_page.dart等使用,配合 sliver 效果。
- 内置主题切换、多语言支持、本地数据库存储,以及 Markdown 渲染、动画、菜单、粒子效果等自定义组件。
整体数据流向:
用户交互 → UI层(Widget/Page) → 状态层(Redux/Provider/Riverpod) → 服务层(Repositories)
→ 网络层(Net) → GitHub API → 数据模型(Model) → 本地存储(DB) → UI更新
安装与使用
- 配置好 Flutter 开发环境,当前 Flutter SDK 版本为 3.47.2,仓库已在
.fvmrc中锁定该版本,推荐使用 FVM 切换:
fvm install 3.47.2 && fvm use 3.47.2
-
clone 代码后执行
Packages get安装第三方包(国内网络可能需要设置代理)。 -
重要:需要在
lib/common/config/目录下创建ignoreConfig.dart文件,填入自己申请的 GitHubclient_id和client_secret:
class NetConfig {
static const CLIENT_ID = "xxxx";
static const CLIENT_SECRET = "xxxxxxxxxxx";
}
其中 GitHub App 需在 https://github.com/settings/applications/new 注册。
- 如果使用安全登录(授权登录),注册 GitHub App 时的 Authorization callback URL 一栏必须填入
gsygithubapp://authed。
<img src="http://img.cdn.guoshuyu.cn/register0.png" width="426px"/>
<img src="http://img.cdn.guoshuyu.cn/register1.jpg" width="426px"/>
- 运行前请确认:本地 Flutter SDK 版本为 3.47.2(可用
fvm use切换)、已执行flutter pub get。
Android 安装包可从 Releases 下载:https://github.com/CarGuo/gsy_github_app_flutter/releases (备用地址 https://www.openapk.net/gsygithubappflutter/com.shuyu.gsygithub.gsygithubappflutter/ );iOS 暂未提供下载。

效果示例


<img src="http://img.cdn.guoshuyu.cn/showapp2.jpg" width="426px"/>
<img src="http://img.cdn.guoshuyu.cn/showapp3.jpg" width="426px"/>
注意事项
- 这是偏学习展示的项目,因此工程里同时存在各式各样的模式、库与 UI 实现,属于有意为之的对照演示。
- 包同步失败通常是未设置包代理;克隆太慢或图片无法显示时,可改用码云地址下载:https://gitee.com/CarGuo/gsy_github_app_flutter 。
- 登录失败或请求失败等常见运行问题,可参考仓库 issue 说明:https://github.com/CarGuo/gsy_github_app_flutter/issues/13 、https://github.com/CarGuo/gsy_github_app_flutter/issues/643 。
- 项目使用 Apache-2.0 许可证。
本作品整理自 GitHub 开源项目 CarGuo/gsy_github_app_flutter,原作者 @CarGuo,许可证 Apache-2.0。中文介绍由 AI 根据项目 README 整理,以原仓库为准。
更新记录
- v8.1.1当前版本
同步自 GitHub Release 8.1.1
评论