Ответы пользователя по тегу iOS
  • Как правильно оганизовать взаимодействие с server API применительно к архитектуре VIPER?

    @Statusgman
    iOS developer
    Сервис лучше закрывать протоколом - это позволит подменить его реализацию, если потребуется (мок-сервис сделать, например). Синглтонами лучше не увлекаться: если использовать менеджер зависимостей это не понадобится.
    Сервис может содержать следующие зависимости:
    - Transport (RequestManager) - сущность, которая выполняет запросы к API. Может работать с Alamofire, например.
    - Parser - сущность, которая парсит JSON в PONSO/NSManagedObject
    - Cache - кэширование данных в БД, напимер в CoreData.

    Получается, что сервис - это логика работы совокупности транспорта, парсера и кэша. Если объекты получаемые с API однообразны, можно сделать generic сервис для получения различных сущностей.
    Ответ написан
    2 комментария
  • Как спрятать данные, находящиеся в CoreData?

    @Statusgman
    iOS developer
    Посмотрите на Encrypted Core Data SQLite Store.
    Это кастомная реализация persistent store, файл БД при его использование содержит зашифрованные данные.

    У этой библиотеки есть проблемы с производительностью определенных запросов, стоит это учитывать, например, при использовании NSFetchedResultsController с большим объемом данных, разбитых по секциям.
    Ответ написан
    Комментировать
  • Поможете составить план по изучению objective-c/swift?

    @Statusgman
    iOS developer
    Я бы выделил следующие пункты:

    0. Нужно знать английский на уровне, чтобы можно было свободно читать документацию, книги, статьи
    1. Можно глянуть курс CS50, если знаний в программировании нет вообще
    2. Курс лекций Стэндфорда по iOS разработке CS193P
    4. Определить что изучать дальше, посмотрев в iOS learning roadmap

    Лучше сразу начать использовать Swift
    Ответ написан
    Комментировать
  • Как упростить серверную часть iOS приложения?

    @Statusgman
    iOS developer
    Keychain, Realm, Firebase
    Ответ написан
    Комментировать
  • Можно ли отправлять запрос на сервер когда приложение не запущено на телефоне?

    @Statusgman
    iOS developer
    Если приложение было выгружено из памяти, то я не знаю способов провернуть то, что вы хотите.
    Если приложение было запущено и свернуто, то да, такая возможность имеется: см ответ Антон Горб
    Ответ написан
    Комментировать
  • Какой современный стэк iOS разработчика?

    @Statusgman
    iOS developer
    Вы говорите об архитектурных подходах. Принципы DI применимы везде и в разработке под iOS тоже. Однако, необходимо понимать, какие проблемы Вы хотите решить, используя тот или иной архитектурный паттерн.
    Если вы только начинаете изучать разработку iOS, обратите внимание на MVC в представлении apple (DI там особо не пригодится). Столкнувшись с определенными проблемами MVC (толстый контроллер), можно посмотреть на MVP или MVVM.
    Вообще не стоит обращать внимание на то что "модно" - следует по возможности следовать основным концепциям хорошего кода (SOLID, KISS ...).
    Для начала я бы не уделял особого внимания архитектурам, а сосредоточился на основных вещах: использование storyboard и autolayout, UIKit, CoreData

    Что касается библиотек - популярные либы для работы с сетью AFNetworking (Alamofire для swift). Остальное по вкусу, можно посмотреть лучшие либы например здесь.
    Ответ написан
    Комментировать