iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT
12.4K subscribers
654 photos
64 videos
3.95K links
Самые интересные статьи, видео и новости, связанные с iOS разработкой. Не больше трёх материалов в день.

Лучшее iOS сообщество в Телеге: @iosgt

Размещение рекламы: @tanyasanovna
Download Telegram
Давайте вместе узнаем, из чего состоит toolchain уважающего себя iOS разработчика в 2022 году. Каждый день – голосование за лучший инструмент, библиотеку или практику в одной определенной категории. Например, “лучший архитектурный подход”, или “лучший менеджер зависимостей”.

Но сначала – помогите мне собрать список категорий и номинантов в них. Накидайте в форму ваших идей, я их обработаю и потом поделюсь итоговым списком номинаций.
Разбираться в том, как работают балансировщики нагрузки, может быть полезно не только бэкендерам. Ребята из BuildBuddy, распределенного кэша для Bazel, рассказали, с помощью каких алгоритмов балансировки они решали задачу распределения билдов между агентами.

А если вы захотите погрузиться в тему сильнее, вот отличный выпуск Подлодки про устройство балансировщиков нагрузки и алгоритмы под капотом.
NSPersistentCloudKitContainer – доступный с iOS 13 фреймворк для бесшовной синхронизации базы Core Data между устройствами. В статье разбираются не очень хорошо документированные особенности:
📌Отслеживание событий изменения данных
📌Типы и коды ошибок
📌Синхронизация с приложением и компликейшнами на Apple Watch
📌Обновление в бэкграунде
📌Подгрузка новых транзакций
📌Работа с различными экстеншнами
Lookin – альтернативный Reveal и Xcode View Debugger инструмент для просмотра и дебага иерархии вьюшек. Главные отличия от альтернатив в том, что он бесплатный и опенсорсный, и в том, что его можно запускать прямо на телефоне. Исходники тут.
Язык программирования iOS приложений (на котором вы пишете большую часть кода своих iOS проектов)
Anonymous Poll
91%
Swift
10%
Objective-C
1%
C++
2%
Kotlin
1%
JavaScript/TypeScript
2%
Dart
2%
Objective-C++
1%
Другое
6%
Посмотреть результаты
Начинаем исследование State of iOS Toolchain 2022! Ближайший месяц каждый день я буду выкладывать опрос про то, какими инструментами в определенной категории вы чаще всего пользуетесь. В итоге мы получим цельную картинку того, какой стек чаще всего выбирают в современной iOS разработке. После окончания исследования я обязательно ее оформлю в отдельную статью!

Если вам интересно поконтрибьютить в вопросы – оставляйте комментарии к этому доку.
Работа со строками – это весело! В статье рассказывается про особенности Unicode и работу в Swift с characters и scalars. Если после прочтения вам захочется сильнее погрузиться в тему кодировок, то начинайте копать отсюда:
1️⃣Серия статей про боли работы с разными кодировками текста
2️⃣Нетленочка Joel Spolsky про то, что каждый программист должен знать про работу с текстом
Если вы в основном дебажите свой код принтами, то выделите немного времени на изучение возможностей lldb. Это сэкономит вам тонны часов в будущем. Начать можно с того, как работает команда po (print object), которая помимо прочего позволяет исполнять Swift код прямо в дебаггере.
Вопрос #2 из State of iOS Toolchain 2022. Какие IDE вы используете чаще всего при разработке iOS приложений?
Anonymous Poll
94%
Xcode
4%
AppCode
16%
VSCode
8%
Sublime
3%
Vim
14%
Swift Playgrounds
2%
Другое
4%
Посмотреть результаты
Текст про историю создания и развития протокола JSON. Пара фактов для затравочки:
📌Ключи в JSON помещаются в кавычки по историческим причинам – чтобы при скармливании его интерпретатору JavaScript не возникало коллизий по зарезервированным словам.
📌Великолепная цитата автора JSON в ответ на набросы про то, что он переизобрел XML: «The good thing about reinventing the wheel is that you can get a round one».
Apple обеспечивает безопасность App Store во многом за счет вертикальной интеграции всех своих сервисов. Им принадлежит вся цепочка – начиная от контроля железа в телефоне, на котором запускается приложение, заканчивая каналом загрузки этих приложений в стор и механизмами их верификации. Сейчас идет много разговоров о том, что Apple вынудят разрешить установку альтернативных сторов на свои устройства. В статье детально разбирается, почему такое решение существенно ухудшит безопасность для конечных пользователей.
Хотите получить оффер в крутую команду и бонусом к нему доп. зарплату на старте уже в эти выходные?

Тогда поспешите подать заявку до 22 апреля на Weekend Offer для мобильных разработчиков в команду мессенджера VK Teams.

Узнайте подробнее в видеоприглашении о продукте и задачах, которые вас ждут, и не упускайте свой шанс!
В Swift 5.6 появилась новая фича, расширяющая возможности автоматического вывода типов компилятором: type placeholders. Благодаря ей, в дженериках иногда можно использовать _ вместо указания конкретного типа. За примерами кода – в статью.
Неочевидный совет – если в вашем приложении есть какой-то контент в WebView, то вы можете его дебажить с помощью специальных инструмента Safari – Web Inspector. С его помощью можно изучать иерархию DOM, менять CSS-свойства нод, выполнять произвольный JS и дебажить код.
На SwiftUI уже написано достаточно много кода и приложений, чтобы можно было выделять часто встречающиеся антипаттерны. В статье разбирается несколько групп ошибок, ведущих к ухудшению фактического и воспринимаемого перфоманса приложений.
На прошлой неделе я выкладывал статью про weak self в Swift. Держите еще один материал по теме, предлагающий три правила по работе с self в замыканиях:
1️⃣A strongly-retained self isn’t always a retain cycle
2️⃣A weakly retained self will never be a retain cycle
3️⃣Upgrade self to strong at the top of closures to avoid weird behavior