Skip to content

Latest commit

 

History

History
420 lines (365 loc) · 14.6 KB

README_CN.md

File metadata and controls

420 lines (365 loc) · 14.6 KB

License: MIT Platforms: iOS Language: Swift Version: v1.0

Monotone

English · 中文

报告问题 · 新功能建议



Monotone 是一个现代化的移动端应用程序,与 Unsplash 所提供的强大的 Unsplash API 所集成。实现了其大部分功能,使用它可以轻松地进行照片的浏览,搜索,收藏,以及个人中心,许可证,FAQ等查阅等功能。

这是一个 非官方 的应用程序,主要目的是发挥一些构想的可行性。
它主要由Swift进行编写,使用RxSwift进行数据驱动,基于SnapKit绘制可响应式的约束布局。

如果您喜欢这个项目,或者被这个项目所启发创意,请毫不犹豫地点上一颗小星星。(笔者狂喜)



目录

  1. 预览
  2. 已完成的开发项
  3. 上手指南
  4. 依赖项
  5. 工程结构
  6. 设计
  7. 关于Unsplash
  8. 持续贡献
  9. 联系我
  10. 许可证


预览



已完成的开发项

特性

  • 纯代码编写的界面
  • 深色模式支持
  • 动画效果
  • 本地化
  • Unsplash API 进行数据驱动
  • 更多...

功能

目前所支持的功能列表:

位置 模块 页面 样式布局 数据驱动 动画效果 本地化
主要 登录 登录 & 注册
照片 列表(搜索 & 主题)
阅览
相机参数
收藏(添加 & 移除)
分享至社交媒体 ⬜️
保存至相册
侧边栏 个人中心 详情
菜单 我的照片
应募 ⬜️
许可条例
帮助 ⬜️
周边制作 ⬜️
底边栏 商店 首页 ⬜️
详情 ⬜️
壁纸 列表(按屏幕大小) ⬜️
收藏 列表
探索 列表(照片 & 收藏) ⬜️


上手指南

本应用程序使用 Cocoapods 进行依赖项的管理。
请首先参照 Cocoapods官方网站 的指引进行安装配置(如果您已经安装 Cocoapods,可以跳过这一步)。

前置要求

MonotoneUnsplash API 进行数据驱动,为了使它正常运作,首先您需要申请一对OAuth密钥。

  1. 访问 Unsplash,注册并登录(如果您有已登录的账号,可以跳过这一步);
  2. 访问 Unsplash应用程序注册平台 同意条款并新建一个APP项目,表单中的名字(Application Name)与描述(Description)可以随意填写;
  3. 在APP建立完成后,会自动跳转到APP详情页(您也可以在 https://unsplash.com/oauth/applications 中找到它)。在页面下方的 Redirect URI & Permissions - Redirect URI 中填写 monotone://unsplash ,并勾选相应许可,如下图所示,并保存;

  1. 完成以上工作后,记录页面中的”Access Key“与”Secret Key“,稍后会用到这对密钥。

安装工程

请通过以下步骤进行安装。

  1. 在终端执行如下命令:
# 克隆到本地
git clone https://github.com/Neko3000/Monotone.git

# 定位到工程目录内
cd Monotone

# 安装组件
pod install
  1. Monotone 根目录下拷贝一份名为 config_debug.json 的文件,并把它重命名为 config.json(这个文件被.gitignore所忽略);
  2. 打开 config.json ,填写您的”Access Key“与”Secret Key“,在运行时它们将会自动被拷贝至APP目录(具体请参考 Project->Build Phases->Run Script 以及 APPCredential.swift 内的内容);
  3. 完成,command + R


依赖项

项目 简述
RxSwift 响应式异步编程的框架。
Action 基于RxSwift,进一步封装Action来进行调用。
DataSources 基于RxSwift,扩展TableView和CollectionView的业务逻辑交互。
Alamofire HTTP网络库。
SwiftyJSON 高效的处理JSON数据格式。
ObjectMapper 完成Model与JSON之间的映射。
Kingfisher 网络图片缓存与多种附加功能。
SnapKit 高效的约束布局。
... ...

更多依赖项,请查看 Podfile



工程结构

基本的工程结构文件树如下。

Monotone 
├── Monotone
│   ├── /Vars  #全局变量
│   ├── /Enums  #枚举声明(包括了一些非真实数据)
│   ├── /Application
│   │   ├── AppCredential  #授权凭证
│   │   ...
│   │   └── UserManager  #用户管理
│   ├── /Utils  #工具
│   │   ├── /BlurHash  #照片加载模糊效果
│   │   ├── ColorPalette  #全局颜色
│   │   ├── AnimatorTrigger  #动画效果
│   │   └── MessageCenter  #通知栏
│   │── /Extension  #扩展
│   │── /Services  #服务
│   │   ├── /Authentication  #授权相关请求
│   │   └── /Network  #数据相关请求
│   │── /Components  #视图类
│   │── /ViewModels  #视图模型类
│   │── /ViewControllers  #视图控制器类
│   │── /Models  #数据模型类
│   │── /Coordinators  #页面跳转
│   └── /Resource  #资源文件
└── Pods



设计

您所看到界面布局均由 Addie Design Co 进行设计,并在互联网上免费共享了 这一份文稿。不管是设计元素,还是完成度都是值得令人惊叹的。
可以说没有这份免费共享的设计文稿,就没有这个应用程序的编写过程。

感谢 Addie Design Co 所提供的这份漂亮的设计文稿。



关于Unsplash

Unsplash 是一个拥有较为自由的著作权许可条款的免费照片共享网站,具有非常高的质量。摄影师可以将照片上传,照片编辑者们会对用户上传的照片进行整理并归纳。

也是笔者本人非常钟爱的一个高质量照片网站,非常推崇这种富有艺术感的共享精神。
笔者的主页在 这里但是自从2020年初以后就懒得外出摄影)。



持续贡献

受限于 Unsplash API 所提供的数据,该应用程序中的一部分页面仅完成了样式布局,并没有使用真实数据(集中于商店,探索等模块),后续如果API提供了这些内容的数据源,也会第一时间添加新的功能。

同时,针对已经完成的该应用程序,也会持续性的改进一些内容。

如何参与开源项目

如果您对移动端应用程序的编写具有一定经验,并且想要改进这个应用程序,非常欢迎您参与这个开源项目。发挥您的构想,改进甚至重构这个应用程序。

您可以遵循标准步骤:

  1. Fork 这个仓库;
  2. 创建您的 Branch (git checkout -b feature/AmazingFeature);
  3. 创建 Commit (git commit -m 'Add some AmazingFeature');
  4. Push 到远程 Branch (git push origin feature/AmazingFeature);
  5. 打开一个 Pull Request

欢迎任何开发者对本项目提出Issue或者PRs。



联系我

电子邮件: [email protected]
Blog: chienerrant.com
微博: @一只妖艳的绀色布



许可证

本应用程序项目基于 MIT许可证 进行分发。 查看 MIT许可证 来获取更多细节。