iebb/mithka

GitHub: iebb/mithka

Mithka 是基于 Flutter 与 TDLib 的跨平台第三方 Telegram 客户端,以紧凑的原生移动端界面呈现完整的 Telegram 通讯体验。

Stars: 423 | Forks: 14

# Mithka 一款跨平台(iOS + Android)的 Telegram 客户端,基于 **Flutter** 构建,通过 FFI 运行在 **[TDLib](https://core.telegram.org/tdlib)** 之上,具有紧凑的、 原生移动端消息界面。 ## 可用性 Mithka 可在 App Store 下载: iOS 的 beta 版本也可通过 TestFlight 获取: ## 名称由来 借由企鹅的形象对微小质量单位进行的一种双关: - 企鹅吉祥物是一个 **pengram** —— 🐧 + *gram*,读作 **penta-gram** ≈ **5 g**。 - 一个 **mithqāl** (مثقال),一种传统的伊斯兰质量单位,为 **≈ 4.6875 g**。 因此 **Mithka**(源自 *mithqāl*)是在秤上刚好轻于 (Tele)gram 企鹅的“轻量级”选手。 ## 这是什么 Mithka 通过 TDLib 连接到**真实的 Telegram**(你的账号、你的聊天记录),并通过自定义界面进行呈现:聊天列表、带有实时状态的对话、回应与贴纸(包括动画 `.tgs`/`.webm`)、语音留言、投票与清单、位置共享、联系人、个人资料、Moments 风格的快拍、设置以及一对一通话 UI。 ## 架构 - **Flutter** UI (`lib/`),通过 `provider` + `ChangeNotifier` 进行状态管理。 - **TDLib** 通过 Dart FFI 进行链接 (`lib/tdlib/`);原生的 `libtdjson` 二进制文件按平台下载/构建(见下文),并且**未**被提交到仓库。 - 所有主题都是自适应的(浅色 / 深色);UI 组件为 Cupertino/自定义 —— 没有 Material 的对话框、snackbar 或开关。 ## 构建 你需要从 获取自己的 **Telegram API 凭证**(`api_id` / `api_hash`)。它们将从被 git 忽略的 `lib/config/secrets.dart` 中读取: ``` class Secrets { static const int apiId = 123456; static const String apiHash = 'your_api_hash'; static bool get isConfigured => apiId != 0 && apiHash.isNotEmpty; } ``` TDLib 原生库通过辅助脚本进行准备(输出已被 git 忽略)。 CI 会从 [`iebb/mithka-tdjson`](https://github.com/iebb/mithka-tdjson) 下载最新的预构建 Android 和 iOS artifacts。保留了 Android 源码构建脚本以用于本地回退/调试构建。 ``` # Android local fallback(按 ABI)— 生成 android/app/src/main/jniLibs//libtdjson.so scripts/build-tdjson-android.sh arm64-v8a # iOS — 下载 ios/tdjson/tdjson.xcframework,供 Runner 使用 scripts/build-tdjson-ios.sh ``` 然后运行: ``` flutter pub get flutter run # on a connected device / simulator ``` ### 发布签名 (Android) 当存在 `android/key.properties`(及其引用的 keystore)时,发布版本将使用项目的上传密钥进行签名;否则将使用调试签名。keystore 和 `key.properties` 均未提交到仓库。 ## CI GitHub Actions 会在 `release` 分支上运行格式化、分析和测试(参见 `.github/workflows/`)。`secrets.dart` 在 runner 上根据 `TELEGRAM_API_ID` / `TELEGRAM_API_HASH` 仓库 secrets 生成。 ## 许可证与致谢 TDLib 版权归 Telegram 所有,在其自身的许可证下使用。本仓库仅包含原创的、独立编写的代码;不包含任何第三方应用程序的专有资产或商标。 ## Star 历史 Star History Chart
标签:Android, DSL, Flutter, iOS, TDLib, Telegram客户端, 移动开发