{"id":13693979,"url":"https://github.com/Neko3000/Monotone","last_synced_at":"2025-05-03T01:31:08.492Z","repository":{"id":42131748,"uuid":"308191283","full_name":"Neko3000/Monotone","owner":"Neko3000","description":"An Unsplash Application for iOS.","archived":false,"fork":false,"pushed_at":"2022-09-25T08:34:38.000Z","size":69497,"stargazers_count":206,"open_issues_count":0,"forks_count":13,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-08-03T17:18:05.087Z","etag":null,"topics":["animation","mvvm","open-source","photo","photography","rxswift","swift","unsplash","unsplash-api","ux-design","wallpaper"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Neko3000.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-29T02:03:33.000Z","updated_at":"2024-06-16T08:55:34.000Z","dependencies_parsed_at":"2023-01-18T12:00:50.467Z","dependency_job_id":null,"html_url":"https://github.com/Neko3000/Monotone","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neko3000%2FMonotone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neko3000%2FMonotone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neko3000%2FMonotone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neko3000%2FMonotone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Neko3000","download_url":"https://codeload.github.com/Neko3000/Monotone/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224346191,"owners_count":17296169,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["animation","mvvm","open-source","photo","photography","rxswift","swift","unsplash","unsplash-api","ux-design","wallpaper"],"created_at":"2024-08-02T17:01:21.627Z","updated_at":"2024-11-12T20:31:08.873Z","avatar_url":"https://github.com/Neko3000.png","language":"Swift","readme":"\n![License: MIT](https://img.shields.io/github/license/Neko3000/Monotone)\n![Platforms: iOS](https://img.shields.io/badge/Platform-iOS-lightgrey)\n![Language: Swift](https://img.shields.io/badge/language-swift-orange.svg)\n![Version: v1.0](https://img.shields.io/badge/version-v1.0-lightgrey)\n\n\u003ch1 align=\"left\"\u003eMonotone\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n    \u003cimg width=\"600\" src=\"https://github.com/Neko3000/Monotone/blob/master/doc/screens_en/poster.png\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003cp align=\"center\"\u003e\n        \u003cspan href=\"#\"\u003eEnglish\u003c/span\u003e\n        ·\n        \u003ca href=\"https://github.com/Neko3000/Monotone/blob/master/README_CN.md\"\u003e中文\u003c/a\u003e\n    \u003c/p\u003e\n    \u003cp align=\"center\"\u003e\n        \u003ca href=\"https://github.com/Neko3000/Monotone/issues\"\u003eReport Bug\u003c/a\u003e\n        ·\n        \u003ca href=\"https://github.com/Neko3000/Monotone/issues\"\u003eRequest Feature\u003c/a\u003e\n    \u003c/p\u003e\n\u003c/p\u003e\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n**Monotone** is a Modern Mobile Application, integrated with powerful [Unsplash API](https://unsplash.com/developers) provided by [Unsplash](https://unsplash.com). It implemented almost all features including viewing, searching, collecting photos. And other features, such as profile, license, FAQ are supported as well.\n\nThis is an **un-official** application, exploring the feasibility of some conceptions is the goal of this project.\nWritten in Swift, triggered by RxSwift, draw responsive constraints using SnapKit.\n\nIf you like this project or inspired by any ideas of this project, please star it without any hesitation. (ヽ(✿ﾟ▽ﾟ)ノ)\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n## Table of Contents\n\u003col\u003e\n    \u003cli\u003e\u003ca href=\"#overview\"\u003eOverview\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#development-progress\"\u003eDevelopment Progress\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#tasks\"\u003eTasks\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#dependencies\"\u003eDependencies\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#sturcture\"\u003eSturcture\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#design\"\u003eDesign\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#about-unsplash\"\u003eAbout Unsplash\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#how-to-participate-in\"\u003eHow to Participate in\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contact-on-me\"\u003eContact on Me\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n## Overview\n\n\u003cp align=\"center\"\u003e \n\u003cimg width=\"200\" src=\"https://github.com/Neko3000/Monotone/blob/master/doc/screens_en/screen-record-1.gif\"\u003e\n\u003cimg width=\"200\" src=\"https://github.com/Neko3000/Monotone/blob/master/doc/screens_en/screen-record-2.gif\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e \n\u003cimg width=\"200\" src=\"https://github.com/Neko3000/Monotone/blob/master/doc/screens_en/screen-shot-1.png\"\u003e\n\u003cimg width=\"200\" src=\"https://github.com/Neko3000/Monotone/blob/master/doc/screens_en/screen-shot-2.png\"\u003e\n\u003cimg width=\"200\" src=\"https://github.com/Neko3000/Monotone/blob/master/doc/screens_en/screen-shot-3.png\"\u003e\n\u003cimg width=\"200\" src=\"https://github.com/Neko3000/Monotone/blob/master/doc/screens_en/screen-shot-4.png\"\u003e\n\u003cimg width=\"200\" src=\"https://github.com/Neko3000/Monotone/blob/master/doc/screens_en/screen-shot-5.png\"\u003e\n\u003cimg width=\"200\" src=\"https://github.com/Neko3000/Monotone/blob/master/doc/screens_en/screen-shot-6.png\"\u003e\n\u003cimg width=\"200\" src=\"https://github.com/Neko3000/Monotone/blob/master/doc/screens_en/screen-shot-7.png\"\u003e\n\u003cimg width=\"200\" src=\"https://github.com/Neko3000/Monotone/blob/master/doc/screens_en/screen-shot-8.png\"\u003e\n\u003c/p\u003e\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n## Development Progress\n\n### Features\n- [x] Write Interfaces Programmatically\n- [x] Dark Mode Support\n- [x] Animation Effects\n- [x] Localization\n- [x] Powered by [Unsplash API](https://unsplash.com/developers)\n- [X] More...\n\n### Tasks\nCurrently supported tasks:\n\n\u003ctable align=\"center\"\u003e\n    \u003ctr\u003e\n        \u003cth style=\"text-align:center\"\u003ePosition\u003c/th\u003e\n        \u003cth style=\"text-align:center\"\u003eModule\u003c/th\u003e\n        \u003cth style=\"text-align:center\"\u003ePage\u003c/th\u003e\n        \u003cth style=\"text-align:center\"\u003eStyle \u0026 Layout\u003c/th\u003e\n        \u003cth style=\"text-align:center\"\u003ePowered by Data\u003c/th\u003e\n        \u003cth style=\"text-align:center\"\u003eAnimation Effects\u003c/th\u003e\n        \u003cth style=\"text-align:center\"\u003eLocalization\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr \u003e\n        \u003ctd align=\"center\" rowspan=\"7\"\u003eMain\u003c/td\u003e\n        \u003ctd align=\"center\" rowspan=\"1\"\u003eLogin\u003c/td\u003e\n        \u003ctd align=\"center\"\u003eSign Up \u0026 Sign In\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd align=\"center\" rowspan=\"6\"\u003ePhoto\u003c/td\u003e\n        \u003ctd align=\"center\"\u003eList (Search \u0026 Topic)\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd align=\"center\"\u003eView\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd align=\"center\"\u003eCamera Settings\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd align=\"center\"\u003eCollect (Add \u0026 Remove) \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd align=\"center\"\u003eShare to SNS\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e⬜️ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd align=\"center\"\u003eSave to Album\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr \u003e\n        \u003ctd align=\"center\" rowspan=\"6\"\u003eSide Menu\u003c/td\u003e\n        \u003ctd align=\"center\" rowspan=\"1\"\u003eProfile\u003c/td\u003e\n        \u003ctd align=\"center\"\u003eDetails\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd align=\"center\" rowspan=\"5\"\u003eMenu\u003c/td\u003e\n        \u003ctd align=\"center\"\u003eMy Photos\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd align=\"center\"\u003eHiring\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e⬜️ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd align=\"center\"\u003eLicenses\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd align=\"center\"\u003eHelp\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e⬜️ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd align=\"center\"\u003eMade with Unsplash\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e⬜️ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr \u003e\n        \u003ctd align=\"center\" rowspan=\"5\"\u003eTab Bar\u003c/td\u003e\n        \u003ctd align=\"center\" rowspan=\"2\"\u003eStore\u003c/td\u003e\n        \u003ctd align=\"center\"\u003eHome\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e⬜️ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n    \u003c/tr\u003e\n        \u003ctr\u003e\n        \u003ctd align=\"center\"\u003eDetails\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e⬜️ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd align=\"center\" rowspan=\"1\"\u003eWallpaper\u003c/td\u003e\n        \u003ctd align=\"center\"\u003eList (Adapt Screen Size)\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e⬜️ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd align=\"center\" rowspan=\"1\"\u003eCollection\u003c/td\u003e\n        \u003ctd align=\"center\"\u003eList\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd align=\"center\" rowspan=\"1\"\u003eExplore\u003c/td\u003e\n        \u003ctd align=\"center\"\u003eList (Photo \u0026 Collection)\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e⬜️ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e✅ \u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n## Getting Started\nThis application uses `Cocoapods` to manage dependencies.\nPlease refer to [Cocoapods Offical Website](https://cocoapods.org/) to install \u0026 configure(If you already installed `Cocoapods`, skip this).\n\n### Prerequisites\n**Monotone** is trigged by [Unsplash API](https://unsplash.com/developers) . The very first thing must be done is applying a pair of OAuth key to run it.\n1. Visit [Unsplash](https://unsplash.com), sign up then sign in.(If you already have an account, skip this).\n2. Visit [Unsplash Application Registration Platform](https://unsplash.com/oauth/applications/new) agree with terms and create a new application, the application name and description can be anything.\n3. After the application was created，it will redirect to the application details page automatically (Also can be found from \u003chttps://unsplash.com/oauth/applications\u003e). At `Redirect URI \u0026 Permissions - Redirect URI` section, input `monotone://unsplash`, make sure all authentication options are checked, just like the image shown below.\n\n\u003cp align=\"center\"\u003e\n\u003cimg width=\"500\" src=\"https://github.com/Neko3000/Monotone/blob/master/doc/app-redirect.png\"\u003e\n\u003c/p\u003e\n\n4. After the work is finished, check ”Access Key“ and ”Secret Key“ on this page, they will be used soon.\n\n\u003cbr/\u003e\n\n### Installation\n\n1. Execute the following commands in the terminal:\n``` bash\n# Clone to a local folder\ngit clone https://github.com/Neko3000/Monotone.git\n\n# Direct to Project folder\ncd Monotone\n\n# Install Pods\npod install\n```\n\n2. Under **Monotone** folder, duplicate `config_debug.json` file，and rename it to `config.json`(This file is ignored by .gitignore)；\n3. Open `config.json` ，input your ”Access Key“ and ”Secret Key“，they will be copyed to APP folder when running.(For more information, please refer to the content in *Project-\u003eBuild Phases-\u003eRun Script* and *APPCredential.swift* )；\n4. Done，\u003ckbd\u003ecommand\u003c/kbd\u003e + \u003ckbd\u003eR\u003c/kbd\u003e。\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n## Dependencies\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003cth\u003eProject\u003c/th\u003e\n        \u003cth\u003eDescription\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr \u003e\n        \u003ctd\u003eRxSwift\u003c/td\u003e\n        \u003ctd\u003eFramework for Reactive Async Programming.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eAction\u003c/td\u003e\n        \u003ctd\u003eBased on RxSwift，encapsulate actions for calling。\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eDataSources\u003c/td\u003e\n        \u003ctd\u003eBased on RxSwift，extend logic interaction of tableview and collectionview。\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eAlamofire\u003c/td\u003e\n        \u003ctd\u003eHTTP network library.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eSwiftyJSON\u003c/td\u003e\n        \u003ctd\u003eHandle JSON format data effectively.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eObjectMapper\u003c/td\u003e\n        \u003ctd\u003eMap data between models and JSON.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eKingfisher\u003c/td\u003e\n        \u003ctd\u003eNetwork image cache libray with many functions.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eSnapKit\u003c/td\u003e\n        \u003ctd\u003eMake constraints effectively.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e...\u003c/td\u003e\n        \u003ctd\u003e...\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\nFor more information，please check [Podfile](https://github.com/Neko3000/Monotone/blob/master/Podfile)。\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n## Project Structure\nThe basic structure of this project.\n\n```\nMonotone \n├── Monotone\n│   ├── /Vars  #Global Variables\n│   ├── /Enums  #Enums (Includes some dummy data)\n│   ├── /Application\n│   │   ├── AppCredential  #Authentication Credential\n│   │   ...\n│   │   └── UserManager  #User Managment\n│   ├── /Utils  #Utils\n│   │   ├── /BlurHash  #Photo Hash\n│   │   ├── ColorPalette  #Global Colors\n│   │   ├── AnimatorTrigger  #Animation Effects\n│   │   └── MessageCenter  #Message Notification\n│   │── /Extension  #Extensions\n│   │── /Services  #Services\n│   │   ├── /Authentication  #Requests of Authentication\n│   │   └── /Network  #Requesets of Data\n│   │── /Components  #View Classes\n│   │── /ViewModels  #View Models\n│   │── /ViewControllers  #View Controllers\n│   │── /Models  #Data Models\n│   │── /Coordinators  #Segues\n│   └── /Resource  #Resource\n└── Pods\n\n```\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n## Designing\nThe interface you are seeing are all designed by [Addie Design Co](https://dribbble.com/addiedesign). They shared this [document](https://dribbble.com/shots/7232794-Unsplash-iOS-UI-Kit-Sketch-Invision-Studio), everyone can free download it and use it. Those design elements and their level of completion are astonishing. \nThis application would not be here without this design document.\n\nThanks again to [Addie Design Co](https://dribbble.com/addiedesign) and this beautiful design document.\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n## About Unsplash\n[Unsplash](https://unsplash.com) is a website dedicated to sharing high-quality stock photography under the Unsplash license. All photos uploaded by photographers will be organized and archived by editors.\n\nAnd this website is one of my favorites, admired for its artistic, the spirit of sharing.  \nYou will find my home page here. (~~Not updated frequently since 2020~~)\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n## Contributing\nLimited by data [Unsplash API](https://unsplash.com/developers) provides, some parts of this application only finished their styles and layouts(Almost in store, explore, etc). If the API provides more detailed data on these parts in the future, we will add new features as soon as possible.\n\nMeanwhile, focusing on the current application, we will improve it continuously.\n\n### How to Participate in\nIf you are an experienced mobile application developer and want to improve this application. You are welcomed to participate in this open-source project. Practice your ideas, improve even refactor this application.\n\nFollow standard steps:\n\n1. `Fork` this repo;\n2. Create your new `Branch` (`git checkout -b feature/AmazingFeature`);\n3. Add `Commit` (`git commit -m 'Add some AmazingFeature'`);\n4. `Push` to remote `Branch` (`git push origin feature/AmazingFeature`);\n5. Open a `Pull Request`.\n\n*For anyone, open an issue if you find any problems. PRs are welcome.*\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n## Contact on Me\nE-mail: sheran_chen@outlook.com  \nBlog: [chienerrant.com](https://chienerrant.com)  \nWeibo: [@一只妖艳的绀色布](https://weibo.com/u/7386133210)\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n## License\nDistributed under the MIT License.  \nSee [LICENSE](https://github.com/Neko3000/Monotone/blob/master/LICENSE) for more information.\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n\n","funding_links":[],"categories":["iOS Apps","Swift","Misc","Media"],"sub_categories":["iOS Media","RxSwift","Content"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNeko3000%2FMonotone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNeko3000%2FMonotone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNeko3000%2FMonotone/lists"}