ByteNoteByteNote

字节笔记本

2026年2月18日

mastodon-ios:Mastodon 官方 iOS 客户端

API中转
¥120

本文介绍 mastodon-ios,Mastodon 官方 iOS 客户端应用。Mastodon 是一个去中心化的开源社交网络,而这款官方应用为用户提供了在 iPhone 和 iPad 上访问 Mastodon 网络的便捷方式。

项目简介

mastodon-ios 是 Mastodon 官方开发的 iOS 客户端,采用 Swift 编写,遵循现代 iOS 开发最佳实践。该项目完全开源,在 GitHub 上已获得 2.2k+ stars,是了解大型开源 iOS 应用架构的优秀参考项目。

Mastodon 作为去中心化社交网络的先驱,其官方客户端展示了如何构建一个支持多实例、实时时间线、丰富媒体内容的社交应用。

核心特性

  • 多实例支持: 无缝切换和管理多个 Mastodon 账号
  • 实时时间线: 支持主页、本地、 federated 三种时间线
  • 完整社交功能: 发布、回复、转发、点赞、收藏
  • 媒体支持: 图片、视频、GIF 的上传和查看
  • 通知中心: 实时推送通知,支持自定义通知偏好
  • 搜索发现: 支持标签、账号、内容的搜索
  • 无障碍支持: 完善的 VoiceOver 和辅助功能支持
  • 深色模式: 原生支持 iOS 深色模式

技术栈

  • 编程语言: Swift 5
  • UI 框架: UIKit + SwiftUI(混合使用)
  • 架构模式: MVVM + 依赖注入
  • 网络层: 基于 URLSession 的自定义网络层
  • 数据持久化: Core Data + UserDefaults
  • 图片加载: SDWebImage
  • 自动布局: SnapKit
  • 响应式编程: Combine 框架

安装指南

从 App Store 安装

直接在 App Store 搜索 "Mastodon" 下载官方应用。

从源码构建

bash
# 克隆仓库
git clone https://github.com/mastodon/mastodon-ios.git
cd mastodon-ios

# 安装依赖(使用 CocoaPods)
pod install

# 打开工作空间
open Mastodon.xcworkspace

# 在 Xcode 中选择目标设备,点击运行

前置要求

  • Xcode 14.0+
  • iOS 15.0+ / iPadOS 15.0+
  • CocoaPods
  • 有效的 Apple Developer 账号(用于真机调试)

快速开始

基本使用

  1. 启动应用: 打开 Mastodon 应用
  2. 登录实例: 输入 Mastodon 实例地址(如 mastodon.social)
  3. 授权登录: 通过网页授权完成 OAuth 登录
  4. 浏览时间线: 查看主页、本地、跨站时间线
  5. 发布内容: 点击撰写按钮发布新嘟文

支持的 Mastodon 实例

任何支持 Mastodon API 的实例都可以使用,包括:

  • mastodon.social(官方实例)
  • pawoo.net
  • botsin.space
  • 自建实例

项目架构

text
Mastodon/
├── App/                    # 应用入口和配置
├── Scene/                  # 场景管理
├── Service/                # 业务服务层
├── Provider/               # 数据提供者
├── View/                   # UI 视图层
│   ├── Content/           # 内容相关视图
│   ├── Account/           # 账号相关视图
│   └── Setting/           # 设置视图
├── ViewModel/              # 视图模型层
├── Model/                  # 数据模型
├── Extension/              # 扩展
└── Resource/               # 资源文件

开发亮点

1. 多实例账号管理

swift
// 示例:切换活跃账号
let authContext = AuthContext(
    authenticationBox: selectedAccount
)
// 使用新的 authContext 发起请求

2. 实时时间线更新

使用 WebSocket 实现实时推送,保持时间线最新状态。

3. 富文本渲染

自定义 NSAttributedString 解析器,支持 Mastodon 特有的内容格式。

4. 媒体处理

集成 SDWebImage 实现高效的图片加载和缓存,支持 GIF 和视频的流畅播放。

贡献指南

Mastodon iOS 欢迎社区贡献:

  1. Fork 仓库
  2. 创建功能分支
  3. 提交代码变更
  4. 创建 Pull Request

详细贡献指南请查看 CONTRIBUTING.md

相关资源

许可证

本项目采用 GPL-3.0 许可证开源。

分享: