В этой статье я расскажу об архитектуре iOS приложений — Clean Swift. Мы рассмотрим основные теоретические моменты и разберем пример на практике.

Пользователь
«Хорошо там, где нас нет» — думают многие и годами живут на одном и том же месте. Но мир слишком разнообразен, чтобы всю жизнь провести в одной стране.
На помощь приходит Telegram, где в последние годы появилось уникальное сообщество авторов жанра «я — эмигрант».
Каждый день очередной эмигрант решает вещать из своей страны и заводит канал в телеграме. Ребята (а 90% из них работают в IT или около IT индустрии) делятся полезными советами, общаются с читателями в чатах, пропагандируют свободу перемещения, рассказывают о плюсах и минусах эмигрантской жизни, честно и без прикрас выдают информацию, которую не найти в поисковиках.
Какие на самом деле жители выбранной ими страны? Как найти жилье? Как устроится на работу? В чем отличия менталитета? Или даже Как проходят свидания? Как строится личная жизнь в другой стране? Такого нет в Google! :)
Я собрал максимально большой список таких блогов, отсортировал по странам и делюсь с вами.
UI
отзывчивости вашего iOS
приложения, выполняя такие затратные по времени куски кода, как загрузка данных из сети или обработка изображений, то вам нужно использовать продвинутые паттерны, связанные с многопоточностью (сoncurrency
), иначе работа вашего пользовательского интерфейса (U
I) начнет сильно замедляться и даже может привести к полной его «заморозке». Вам нужно убрать ресурсо-затратные задачи с main thread
(главного потока), который отвечает за выполнение кода, отображающего ваш пользовательский интерфейс (UI
). Swift 3
и ближайшей Swift 4
(осень 2017) это можно сделать двумя способами, которые пока не связаны с встроенными языковыми конструкциями Swift
, начало реализации которых будет только в Swift 5
(конец 2018).GCD (Grand Central Dispatch)
и ему посвящена предыдущая статья. В этой статье мы покажем, как достичь отзывчивости UI
в iOS
приложениях с помощью таких абстрактных понятий, как операция Operation
и очередь операций OperationQueue
. Мы также покажем в чем различие этих двух подходов и какой из них в каких ситуациях лучше использовать.main thread
(главном потоке), который отвечает за выполнение кода, отображающего ваш пользовательский интерфейс (UI
). Как только вы начинаете добавлять к вашему приложению такие «затратные по времени» куски кода, как загрузка данных из сети или обработка изображений на main thread
(главном потоке), то работа вашего UI
начинает сильно замедляться и даже может привести к полному его «замораживанию». сoncurrency
), которая позволяет одновременно выполнять две или более независимые задачи (tasks
): вычисления, загрузку данных из сети или с диска, обработку изображений и т.д.Одна из полезных (по моему мнению) фич iOS 12, представленных на WWDC 2018 — Siri Shortcuts.
Шорткат (англ. shortcut) — быстрая команда, короткий способ совершить какое-либо действие в обход стандартному сценарию.
В своих приложениях вы можете привязывать шорткаты для некоторых действий. Обучаясь на том, как и когда пользователь их выполняет, Siri начинает по-умному, в нужное время и место, предлагать ему эти шорткаты и, что самое крутое, пользователь сможет их вызывать фразами, которые сам к ним привяжет! Под катом подробнее.