Skip to content

vfumin/gm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

AGIMA test

Вопросы:

  1. как организовать возможность смены стиля отображения карт?
  2. как открывать детализацию определенной карты по получению PUSH-уведомления?
  3. как минимальными изменениями в коде загружать данные с другого сервера (формат тот же)
  4. как при этом организовать кеширование для загружаемых данных?

Ответы:

  1. Смотря что понимается под стилем? смена стиля в запущенном приложении? Верстка интерфейса в коде позволяет гибко настраивать отображение карточек. Стиль отображения - таблица/коллекция, можно изменять использую различные представления вывода данных - uitableview, uicollectionview. UICollectionView позволяет задавать направления скролла данных коллекции - горизонтальный/вертикальный

  2. На пуш уведомления в AppDelegate есть специальный метод (didReceiveRemoteNotification) который позволяет вести обработу пушей. Пуш уведомление должен содержать идентификатор карты для детализации и возможно др доп информацию, как вариант можно сделать, что бы данные пуш уведомления имели схожую структуру с deeplink'ами, поддерживаемыми ссылками приложения. Т.о. если приложение еще не запущенно то при запуске приложения делаем проверку наличия данных пуш и выводим сразу детализацию по карте после запуска приложения и загрузки данных, если приложение уже запущено - то можно вывести пуш сообщение с предложением перейти в детализацию по карте.

  3. Обычно логику загрузки данных выносят в отдельный класс-контроллер который отвечает за взаимодействие с сервером и облегчает класс интерфейса/вьюконтроллера. Все названия серверных методов выносят в константы, например постоянную часть пути метода - http://mobile-hr.de02.agima.ru/exam/, конечное название (providers.json) можно задать и в самом методе класса, т.о. если поменялся хост, то мы меняем константу отвечающую за корневой адрес, если же поменялось все - то меняем и адрес хоста и часть андреса в методе загрузки данных. Конечно возможны и другие варианты, но смысл основной такой - использовать надо константы, что бы поменяв в одном месте, др места автоматом подхватились.

Еще как вариант если адрес загрузки у нас один, то хранить данные в info.plist, и читать значения из него.

  1. Кэширование данных можно сделать несколькими способами - например через Core Data (если данных много с разными сущностями и атрибутами). Или как вариант через NSURLCache.

About

agima test

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published