У меня давно было желание написать какую-нибудь прилку для iOS, но я никак не мог начать, наверно просто мозг не хотел переключаться с чего-то привычного на что-то новое, да и бегать по тысячу раз на StackOverflow и чекать тонну новой информации не выглядело чем-то привлекательным.
Но пост вышёл, а это значит, что эту неделю можно наполовину назвать "яблочной" и на этой кисло-сладкой ноте я хочу подчеркнуть несколько моментов касательно iOS разработки:
1) Философия компании Apple. Что тут сказать, минимализм и простота дизайна MacOS и Xcode создаёт своеобразную атмосферу эстетики и мне как никому другому это по душе, так как я стараюсь придерживаться похожего подхода в жизни.
2) Язык Swift. Двоюродный брат Kotlin'а с другой экосистемой, которая повлияла на некоторые конструкции и фишки языка, например кроме классов в Swift есть структуры из Object-C, которые кстати изящно вписываются в качестве моделек данных.
Также интересная особенность Swift файлов - это небольшое количество импортов:
// импорты
import UIKit
// остальной код
// ...
Это связано с тем, что в Swift импортируются модули, а не отдельные классы, это немного напоминает namespace из C++.
3) Готовые решения. В iOS разработке полно штук, работающих прямо из коробки, такие как навигация, json сериализация/десериализация, простой клиент для выполнения серверных запросов, в общем чтобы написать среднестатистическую прилку в стиле запрос-список ничего дополнительно подключать не надо.
4) Удобные концепции. Больше всего мне зашел изящно реализованный паттерн MVC, где каждый контроллер UIViewController может быть экраном, это очень удобно, так как можно открывать не только свои контроллеры, но и системные, например галерею и нет никакой путаницы между Intent'ами, Fragment транзакциями или Composable / View переходами.
P.S. Для быстрого вката в iOS разработку рекомендую iOS CS 50 плейлист и встроенную доку в Xcode: Option + Click.
Пишите ваше мнение в комментах и всем хорошего кода
