Полезная информация про фоновую сессию: download task вполне себе умеет докачивать файл, если прерывается соединение, тогда как upload task перезапустит выгрузку с самого начала. Может быть неудобно, если выгружаешь файл большого размера на сервер на плохом соединении.
Раньше можно было установить несколько пакетов в сидии, которые скрывали наличие JB на устройстве. При наличии JB есть возможность зареверсить приложение, изменить исходный код и обратно собрать его на устройство – 100% защиты нет. Но процент пользователей с JB сейчас ничтожно мал и его нет на последние версии ОС.
View Model для View Controller (как у Ash Furrow) – назвали её Presentation Model. Она выполняет запросы к серверу и отвечает за создание View Model для View и ячеек.
View Model для отдельной ячейки, View – «глупые» объекты, которые знают только о том, как поля модели преобразовать для отображения пользователю. Никакие запросы View Model у нас не выполняет.
Отвечая на вопрос про каноничный MVVM – здесь я считаю, что нужно ориентироваться на Ash Furrow, в конце его книге «Functional Reactive Programming on iOS» разобран пример с вызовом запросов к серверу из View Model. Пример слегка устарел – Objective-C и ReactiveCocoa, но для понимания этого достаточно.
Ох. Недавно сделал заказ из-за границы с бесплатной доставкой. Всегда таким образом приходило ПР без отслеживания. А тут через 10 дней звонит курьер и спрашивает, доставить через час или нет. Мне было неудобно, я сказал, что лучше на следующий день. Он ответил, чтобы я звонил в единую справочную EMS. То есть магазин мне выслал не ПР в этот раз, а EMS. После этого я вспомнил, что номера для отслеживания у меня нет, подумал по ФИО пробью и вызову курьера. Но не тут-то было. В справочной мне сказали, что ничего не могут сделать без номера и чтобы я сам узнал его. Как писали выше, с отделением никак не связаться, курьер спустя сутки уже тоже был не в курсе моего заказа. Повезло, что в поддержке магазина оперативно решили проблему, выслав мне номер, объяснив, что иногда могут EMS отправлять, если им удобнее.
Получается, при открытии приложения с уведомления (тапом или свайпом с заблокированного экрана) на iOS 10 обработка остается такой же (в методе didFinishLaunching)?
У меня недоступно
Совсем недавно начали делать так же для Codable.
Отвечая на вопрос про каноничный MVVM – здесь я считаю, что нужно ориентироваться на Ash Furrow, в конце его книге «Functional Reactive Programming on iOS» разобран пример с вызовом запросов к серверу из View Model. Пример слегка устарел – Objective-C и ReactiveCocoa, но для понимания этого достаточно.
Конечно, обязательно.