Была использована архитектура на базе паттерна MVP
- Авторизация через WKWebView
- Сохранение приватных данных в Keychain, проверка expire_in token в AppDelegate
- Реализация восьми различных API запросов с парсингом данных и сохранением данных в Realm
- Вывод новостной ленты, посты с текстом и изображениями на кастомном layout, анимированное открытие вложенных фотографий, активная кнопка "Мне нравится". Реализована подгрузка данных при скроле, обновление данных, поиск по вхождению текста, частичное удаление данных из БД при деинициализации
- Вывод списка друзей с разбитием на секции. Реализована навигация по титулам секций и поиск, возможность просмотра профиля
- Вывод списка групп с возможностью поиска. Реализовано обновление контента при помощи обсервера. Реализован поиск по глобальным группам, возможность просмотра профиля, частичное удаление данных из БД при деинициализации
- Вывод страницы профиля. Реализована загрузка данных о пользователе, группе, с загрузкой данных постов на стене профиля, анимированное открытие вложенных фотографий. Реализована подгрузка данных при скроле, обновление данных
- Реализован плавный инфинити скрол, частичное кеширование контента
- Реализовано уведомление пользователя при проблемах с запросом к API
- Не поддерживаются все виды вложений новостей
- Не обработано много сценариев ошибок API
- Alamofire, Kingfisher, RealmSwift, ImageViewer.swift, KeychainAccess, Firebase/Analytics, Firebase/Crashlytics