Выбрал тему приложения с созданием мемчиков.
В приложении реализовано 5 экранов:
Библиотека мемов - тут хранятся созданные мемы (в файловой системе).
Предпросмотр - тут можно посмотреть мем, удалить мем из библиотеки или сохранить его в фото галерею.
Настройки - тут можно сменить тему на черную.
Выбор шаблона - Шаблоны приходят с сервера написаного на VAPOR и расположенного на Heroku.
Экран редактирования - На данном экране можно добавить текст или фото к шаблону мема.
Для получения данных из сети интернет был написан свой backend на VAPOR'е на языке Swift.
Если нет сети интернет, то из Core Data достаются последние загруженные данные, а для хранения темы приложения используется UserDefaults.
Для контроля качества стиля кода был использован SwiftLint
- Использовать Core Data для хранения моделей данных
- Использовать KeyChain/UserDefaults для пользовательских настроек
- Использование Swift styleguides (Google styleguides)
- Не использовать сторонние библиотеки (кроме snapshot-тестов)
- Использовать сеть
- Отображение медиа (аудио, видео, изображения) из сети
- Минимальное количество экранов: 3
- Обязательно использовать UINavigationController/TabBarController
- Deployment Target: iOS 13
- Покрытие модульными тестами 10% и более
- Хотя бы один UI-тест через page object
- Хотя бы один snapshot тест (разрешается использовать внешнюю библиотеку)
- Использование Архитектурных подходов и шаблонов проектирования
- Верстка UI в коде
- Обязательно использовать UITableView/UICollectionView
- Кастомные анимации
- Swiftlint
- Системы аналитики и анализа крэшей ( с использованием сторонних зависимостей )

