Skip to content

Paltr/UFS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UFS

Небольшое ios приложение для оценки.

Описание проекта

Текст задачи можно посмотреть внизу.

Задача простая - отобразить друзей пользователя и группы, на которые они подписаны. Интересных места два - работа с соцсетью ВК, которая инкапсулирована в классе VKInfoProvider и UTRemoteDataTableVC, который представляет из себя базовый ViewController для асинхронной загрузки данных из абстрактного источника и который поддерживает оптимизацию отображения при быстром скроллированни данных(необходимо по условиям задачи).

Обоснование для обертки над VKSDK, VKInfoProvider:

  • Приложение может единообразно работать со многими соцсетями - через этот интерфейс с его типами, помимо VK, могут работать и FB, OK и прочие
  • Нет зависимостей кода от сторонних библиотек - большая устойчивость архитектуры
  • Вся работа с VK инкапсулирована в одном месте, а не размазана по всему проекту
  • Единый метод обработки ошибок(в зачатке - смысла нет для такого мелкого приложения)
  • В интерфейсе обертки используются лишь те данные и методы, которые нужны приложению, что способствует лучшей читабельности
  • Возможно подсовывать вместо VK свои data provider'ы, таким образом либо тестируя приложение с синтетической БД, эмулируя различные test cases, либо предоставляя, например, демо-режим приложения, когда пользователь без Интернета и не залогиневшись, может попробовать функциональность приложения, чтобы оценить, нужно ли оно ему

Структура проекта

  • Libraries: сторонние библиотеки
  • VKInfoProvider: все что касается класса VKInfoProvider, инкапсулирующего всю работу с VK API.
    • VKTypes: типы данных, предоставляющие пользователя и группу VK
    • VKInfoProvider: класс-синглтон, инкапсулирующий всю работу с VK API. Имеет очень простой внешний интерфейс. Все результаты возвращаются в типах данных из VKTypes. Разработан таким образом, чтобы полностью скрыть особенности работы VK API, этот же интерфейс с соответствующими реализациями может работать с разными источниками данных: VK, Facebook, Ok и прочие
  • ViewControllers: различные ViewController'ы проекта
    • RemoteDataTableVC: базовый ViewController для представления в виде списка объектов, которые запрашиваются асинхронно с удаленного источника. До окончания запроса показывает единствунную ячейку с Activity Indicator View
    • FriendTableVC: представляет ViewController для отображения друзей, наследник RemoteDataTableVC
    • UserGroupsTableVC: представляет ViewController для групп, в которых зарегистрирован пользователь, наследник RemoteDataTableVC
  • Views: различные View проекта
    • WaitingView: ячейка с Activity Indicator View
    • FriendView: ячейка, которая отображает данные о пользователе
  • Main.storyboard: storyboard проекта

Текст задания

Разработать небольшое приложение, которое будет получать список друзей пользователя в социальной сети vk.com после авторизации.

Требования к приложению:

  • При входе в приложение предлагать пользователю авторизоваться через vk
  • После авторизации отобразить список друзей
  • Содержимое ячейки с другом: фамилия, имя, город, университет
  • Аватарки загружать асинхронно
  • в списке необходимо реализовать возможность обновления данных (Pull-to-refresh)
  • в списке необходимо реализовать возможность поиска друга (любое из вхождение по параметрам имя, фамилия, город или университету)
  • при клике на ячейку открывать Detail Controller, на котором необходимо отобразить список групп выбранного пользователя
  • особое внимание уделить быстродействию
  • приложение должно поддерживать iOS 7
  • приложение должно одинаково “хорошо” отображаться на всех устройствах, интерфейс нужно проектировать с использованием Autolayout и/или Size Classes

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published