Проект первой четверти обучения в GeekUniversity Vkontatke
Использованные сторонние библиотеки:
- Alamofire
- SwiftyJSON / AlamofireObjectMapper
- SwiftKeychainWrapper
- RealmSwift
В данном проекте были разработаны:
- Экран входа ВКонтакте *Логин и пароль проверяются *При вводе неверного пароля или несуществующего в базе логина выскакивает Alert с сообщением
- Экран друзей *Делает запрос на сервер, получает друзей *Отображает друзей в алфавитном порядке *Доступен поиск друзей в SearchBar *Созданы кастомные ImageView и ShadowView для отображения аватарок друзей как в исходном приложении *При нажатии на ячейку друга отправляет на экран фотографий данного друга
- Экран фотографий пользователя *Представлен в виде CollectionView *Создан пользовательский CustomCollectionViewLayout - отображений фотографий в CollectionView по принципу 2 - 1 - 2 *Под каждой фотографией рабочая кнопка лайка с анимацией при нажатии *При нажатии на ячейку переходин на контроллер Полноэкранного режима просмотра фотографий
- Полноэкранный режим просмотра фотографий *Отображает выбранную на предыдущем контроллере фотографию в кастомной CollectionView с кастомным layout *Листание фотографий происходит свайпами влево-вправо с анимированным переходом между фотографиями *Рассчитаны размеры фотографий для отображения в правильном соотношении
- Экран групп User-а *Делает запрос на сервер, получает список групп пользователя ВКонтакте *Отображает список групп *Добавлен TabBarItem поиска групп при нажатии переходит на экран поиска групп
- Экран поиска групп *Делает запрос на сервер, получает список предложенных групп пользователя ВКонтакте *При нажатии на ячейку добавляет выбранную группу в список на предыдущем контроллере
- Экран новостей типа Post *Делает запрос на сервер, получает список новостей пользователя ВКонтакте *Кастомные ячейки для отображения новости в привычном формате *Расчет соотношения фотографий для отображения в соответствующем размере *Функция показать текст полностью при тапе на ячейку текста *Возможность обновления списка новостей с помощью RefreshControl - добавляет к показу новости загруженные с момента последнего запроса. *Возможность бесконечного скроллинга новостей
-
Также в данном проекте были разработаны кастомные контроллы: LikeСontrol ViewsControl ShareControl CommentControl
-
Был разработан кастомный UINavigationController с анимированными переходами между экранами
-
Была выполнена полноценная настройка работы с сетью, запросами на сервер и парсинг ответов в модели для показа
-
Данные которые можно сохранить для переиспользования обрабатываются с помощью библиотеки Realm