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 历史
标签:Android, DSL, Flutter, iOS, TDLib, Telegram客户端, 移动开发