请选择 进入手机版 | 继续访问电脑版

DiscuzQ Flutter Application

程序发布 程序发布 1693 人阅读 | 9 人回复

Riood 发表于 2020-3-31 09:34 | 显示全部楼层 |阅读模式

DiscuzQ 客户端来啦,原生非打包,跟我一起get起来!该项目的诞生,离不开他们的贡献
效果预览:

实现目标
基本上和官方版本是保持一致的,只是会增加黑暗模式,主题颜色,字体大小等设置罢了。
  • 考虑接入腾讯云短视频SDK A new Flutter application for DiscuzQ. This Application is still under developing, this is an open source software.
If you have any question about this project, follow and post an issue. I will consit to write this application.
项目地址
游客,如果您要查看本帖隐藏内容请回复

版权说明
第三方APP,不代表Discuz团队,仅做个人学习使用。该Flutter APP将不考虑支持Web。
该APP现在处于开发阶段,暂时不推荐clone并编译,后续编排改动都很大,直到release前暂不要使用这些代码。

开发提示
现在,我们的仓库每日都有新的commit,这样一来代码变动都是很大的,并且很多功能都没有完成,你可能跑步起来或者跑起来了还有很多问题。我们将在基础功能完成后,进行很大的Code Review工作和测试工作,现在请不要将代码用于生产环境的构建。
详细关注Release Tags
后续我们会给出一个Release文档,在代码Review后,我们会做一些改变和文档,让你知道如何复用组件,以及继续开发自己想要的功能。

最近UI截屏
snapshot_android.png
snapshot_wallet.png
snapshot_skeleton.png
snapshot_notifications.png
snapshot_me.png
snapshot_detail.png
snapshot_dartmode_2.png
snapshot_dartmode_1.png
snapshot_create.png
snapshot_collection.png
snapshot.png

一起开发
了解开发进度,或者有疑问,可以加我微信奥
wechat.jpeg


一些隐藏的功能
有的时候因为不同需要,有的功能可能开发了,但是并没有直接启用,因为这些功能取决于你的后端情况或者偏好。
HTTP2的支持
默认情况下APP没有开启HTTP2请求,如果你的站点开启了HTTP2,那么你可以使用这个特性。在./utils/request/Request.dart中找到下面的代码进行注释解除。

  1. /// import 'package:dio_http2_adapter/dio_http2_adapter.dart';

  2.     /// http2支持,如果你开启了HTTP2,那么移除注释,默认情况下是不启用的
  3.     // _dio.httpClientAdapter = Http2Adapter(
  4.     //   ConnectionManager(
  5.     //     idleTimeout: 10000,

  6.     //     /// Ignore bad certificate
  7.     //     onClientCreate: (_, clientSetting) =>
  8.     //         clientSetting.onBadCertificate = (_) => true,
  9.     //   ),
  10.     // );
复制代码
注意
This application dose not have released any version. checkout dev branch to get latest version or contribute it. Thanks.
This is an third party software.
Find API document at: https://discuz.chat/api-docs/v1/

Please add this code into your stateful widget
  1. @override
  2. void setState(fn) {
  3.     if (!mounted) {
  4.         return;
  5.     }
  6.     super.setState(fn);
  7. }

  8. @override
  9. void initState() {
  10.     super.initState();
  11. }

  12. @override
  13. void dispose() {
  14.     super.dispose();
  15. }
复制代码
启动调试
调试前请了解
首先,要确认你的Flutter版本
  1. environment:
  2.   sdk: ">=2.6.0 <3.0.0"
复制代码
你可以使用命令行开启调试,如果你使用android studio,你可以直接运行。
不过在此之前值得说明的是,如果你的网络不能正常快速访问一些技术类网站,建议你使用pub国内源,你可以搜索找到配置的方式。
现阶段的调试,至少要beta以上版本,或者dev。因为我们采用了最新的Flutter特性,以便后续不用调整一些代码。即Flutter v1.15 +
  1. flutter channel beta
  2. cd ./discuz
  3. flutter run
复制代码
项目中的 ./packages 本地化了一些依赖,这些依赖有改动所以没有直接使用pub.dev中的进行安装。
Android Release or debug
我们推荐使用IOS模拟器开始你的调试,如果你Build Android版本,首先你需要生成一个keystore文件,存储到 ./discuz/android/目录下,并命名为android.keystore
接下来,将同目录下的 key.properties.example 文件修改为 key.properties 并更新里面的签名配置内容。切记不要将其提交到Git,这些签名文件是涉及安全的。其次你还可以根据需要修改gradle文件,我们默认下使用了国内的源。

IOS Release or debug
需要修改Xcode 中的Team, 这样来完成签名,之后,不用做太多你便可以Build。 如果你Pod无法执行install,请使用国内源或者代理(推荐)。 其次
  1. cd ./discuz
  2. flutter clean
  3. flutter pub get
  4. cd /ios
  5. sudo rm -rf Podfile.lock
  6. pod install #手动安装IOS相关依赖
复制代码
如何自定义主体颜色,字体大小
App自设计开始就设计了支持主题模式,所以你可以在lib/ui/ui.dart修改对应的参数,在lib/utils/global.dart中修改对应的参数完整定制。
使用命令行一键生成APP的图标和启动图(todo)。

如何自动生成Android 和 IOS 的应用图标
我们使用了flutter_launcher_icons, 这使得你可以快速生成一个自己的App图标,但是这样一来你就不可以改变默认的工程配置。
详细的办法参考:https://pub.dev/packages/flutter_launcher_icons
我们已经在pubspec.yaml添加了相关配置,你需要做的就是替换 assets/images/app.png 注意,图片不能包含alpha通道否则会导致Appstore上架失败等,生成图标时,在项目目录运行命令即可自动生成,无需其他操作。
  1. flutter pub run flutter_launcher_icons:main
  2. # or
  3. # cd ./discuz
  4. # bash icon
复制代码
如何自动生成Android 和 IOS的启动图
和生成图标一样,超级简单。我们已经在pubspec.yaml添加了相关配置,你需要做的就是替换 assets/images/splash.png。然后在运行下面的命令行就可以啦!
  1. flutter pub pub run flutter_native_splash:create
  2. # or
  3. # cd ./discuz
  4. # bash splas
复制代码
自定义隐私政策和条款
默认情况下,会考虑自动加载DZ中设置的隐私政策和条款。现在DZ API还没有这个功能,后续会加入。但是除了使用默认的DZ后台设置的协议,你还可以指定。
如果你指定了隐私政策协议,那么你可以再 ./utils/global.dart中设置下面的代码。
  1. ///
  2.   /// 隐私政策和用户协议常规不需要设置
  3.   /// 若设置后将指定打开链接内的用户协议
  4.   /// 默认情况下,程序设计自动加载dz中设置的协议
  5.   /// 该配置项根据需要来开启
  6.   ///
  7.   /// 隐私协议
  8.   static const String privacyUri = '';

  9.   ///用户协议
  10.   static const String policiesUri = '';
复制代码



回复

使用道具 举报

回答|共 9 个

jpg119

jpg119 发表于 2020-3-31 12:31 移动端 安卓客户端 | 显示全部楼层

【腾讯云】热卖云产品3折起,云服务器、云数据库特惠,服务更稳,速度更快,价格更优
看看沙发怎样的,期待中
回复 支持 反对

使用道具 举报

aisru

aisru 发表于 2020-3-31 17:09 | 显示全部楼层

【腾讯云】热卖云产品3折起,云服务器、云数据库特惠,服务更稳,速度更快,价格更优
这个真心不错
回复 支持 反对

使用道具 举报

purefish

purefish 发表于 2020-3-31 17:43 | 显示全部楼层

【腾讯云】热卖云产品3折起,云服务器、云数据库特惠,服务更稳,速度更快,价格更优
真棒!
回复

使用道具 举报

17790590911

17790590911 发表于 2020-3-31 21:04 | 显示全部楼层

【腾讯云】热卖云产品3折起,云服务器、云数据库特惠,服务更稳,速度更快,价格更优
看看,看看看看,看看
回复 支持 反对

使用道具 举报

明明就

明明就 发表于 2020-4-4 21:55 | 显示全部楼层

【腾讯云】热卖云产品3折起,云服务器、云数据库特惠,服务更稳,速度更快,价格更优
强烈支持强烈支持强烈支持
回复 支持 反对

使用道具 举报

tangtaorong86

tangtaorong86 发表于 2020-4-14 10:26 | 显示全部楼层

【腾讯云】热卖云产品3折起,云服务器、云数据库特惠,服务更稳,速度更快,价格更优
先支持!Flutter性能不知道怎么样
回复 支持 反对

使用道具 举报

嘉嘉和夹子

嘉嘉和夹子 发表于 2020-8-3 13:25 | 显示全部楼层

【腾讯云】热卖云产品3折起,云服务器、云数据库特惠,服务更稳,速度更快,价格更优
支持呀                                                                        
看一看
回复 支持 反对

使用道具 举报

老奶狗

老奶狗 发表于 2020-8-3 19:42 | 显示全部楼层

【腾讯云】热卖云产品3折起,云服务器、云数据库特惠,服务更稳,速度更快,价格更优
看看。支持楼主
回复 支持 反对

使用道具 举报

jin9000

jin9000 发表于 2020-8-18 12:23 | 显示全部楼层

【腾讯云】热卖云产品3折起,云服务器、云数据库特惠,服务更稳,速度更快,价格更优
UPUPUPUPUPUPUP
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则