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

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

Размещение рекламы: @tanyasanovna
Download Telegram
Mobile Party в Ozon Tech для iOS разработчиков

Ozon Tech ищет мобильных Middle- и Senior-разработчиков. Поэтому ребята 4 июня устраивают Mobile Need For Tech — событие, совмещающее финальные собеседования и офлайн-вечеринку, где вы сможете неформально пообщаться с разработчиками Ozon Tech.

Вас ждёт насыщенная программа: экскурсия по офису, NFT-выставка и фуршет с приглашённым диджеем.

Чтобы туда попасть, нужно пройти несколько этапов:
1. Подать заявку: https://bit.ly/39rVaZP
2. Успешно пройти предварительное интервью
3. Прийти на финальное собеседование 4 июня

Если живёте не в Москве, Ozon Tech оплатит потенциальным кандидатам поездку на мероприятие.

Иду на Mobile Party
Переход к async/await в Swift влечет за собой и пересмотр того, как мы подходим к обработке ошибок. Вместо передачи Result в коллбэке мы можем использовать throw-catch.

В статье разбирается несколько подходов к тому, как работать с ошибками в новой парадигме.
SwiftUI меняется очень быстро. Для реализации одной и той же логики в SwiftUI версий 1, 2 и 3 часто нужно писать разный код. В статье рассматривается классный подход, который позволит не забыть удалить устаревшие места в вашей кодовой базе, когда вы решите бросить поддержку старых версий SwiftUI или любых других фреймворков.

Комбинируйте #if с условиями, объявленными в Build Settings, например: #if TARGETING_SWIFTUI_2 || TARGETING_SWIFTUI_1, и компилятор напомнит вам удалить ставшие ненужными воркэраунды при обновлении версии фреймворка.
23-29 мая пройдет серия бесплатных конкурсов по SwiftUI.
📆Понедельник – на скорость реализуете дизайн по предоставленному скриншоту
📆Вторник – делитесь известными вам хаками и воркэраундами в SwiftUI
📆Среда – реализуете микроанимации
📆Четверг – делаете простое приложение для macOS
📆Пятница – добавляете в семпловое приложение так много accessibility фичей, как только сможете

Отличная возможность потренироваться в SwiftUI!
Apple представила новые Accessibility фичи, не дожидаясь WWDC:
🚪Door Detection, с помощью камеры и лидара определяющая местонахождение двери и способ ее открытия
⌚️Apple Watch Mirroring на айфон с возможностью управления часами с помощью Voice Control и других фичей
💬Live Captions – автоматические субтитры для любого аудиоконтента, включая звонки, на iOS/macOS
В последнее время процесс ревью в App Store стал занимать намного меньше времени, чем годы назад. Расскажите, сколько в среднем за последние месяцы у вас занимало ревью без учета дополнительных этапов и реджектов!
Anonymous Poll
2%
До 30 минут
4%
От 30 минут до 2 часов
13%
От 2 до 12 часов
12%
От 12 часов до дня
14%
1-2 дня
3%
2-4 дня
2%
5-7 дней
2%
Больше недели
48%
Посмотреть результаты
Разбор отличий в том, как организована работа со подсчетом ссылок в Swift 3 и Swift 4. А если захотите более глубокого погружения в тему, то вам – в классику от Mike Ash.
В работе со Swift Packages в Xcode есть масса неудобств и ограничений, которые пока не поправили. Если вы страдаете от них, попробуйте перейти на VSCode со Swift плагином – кажется, там все реализовано существенно лучше.
Если вы загружаете Xcode не из App Store, а напрямую с сайта Apple, то вы получаете его в виде *.xip архива. Распаковка его стандартными средствами работает медленно, и, если вы часто скачиваете предрелизные версии, это может начать раздражать. Попробуйте утилиту unxip, которая написана специально для работы с этим форматом и быстрой распаковки Xcode.
Пять видеоуроков PointFree про парсинг сырого инпута в структуры данных

💻Использование библиотеки swift-parsing для написания своих парсеров
🍏Сравнение со Swift Regex DSL
🚏Реализация URL роутинга в iOS приложении
🕸Реализация роутинга в серверном Vapor приложении
🔂Трансформация URL роутеров в API клиенты
Пару месяцев назад я выкладывал в канале опрос про то, планируют ли мобильные разработчики релоцироваться. Автор подвела результаты и выложила статью с аналитикой. Ответ на ваш главный вопрос – 40% планирует уехать, 48% не планирует, 12% уже уехали
Тип Color в SwiftUI не является Codable по умолчанию. В статье разбирается, как сериализовать оба типа цветов – константные и динамические, меняющиеся в зависимости от контекста. Если хочется сразу посмотреть код – то вот GitHub.
Выполнять базовые операции с Git умеет каждый iOS разработчик. Но вот более редкие фичи, которые иногда могут сэкнономить бесконечность времени, знают не все. Несколько примеров:
🕵🏻‍♂️`git bisect` – бинарный поиск коммита, внесшего баг в код, по всей истории за нужный интервал времени
🧊`git lfs` – расширение, позволяющее версионировать различные большие файлы
🍒`git cherry-pick` – перенос отдельных коммитов из одной ветки в другую

Если вы хотите улучшить свои знания Git, держите видеокурс от наших партнеров. Но, чтобы получить к нему доступ, сначала придется пройти тест на настоящего iOS разработчика!
Если вы подключаете через SPM к проекту зависимости с большим объемом исходного кода, то можете встретить кучу проблем с перфомансом. Чтобы это обойти, попробуйте подключать их сразу скомпилированными в XCFramework. В статье разбирается, как это сделать.
В январе проскакивала новость, что Apple добавили в App Store новый тип распространения приложений – Unlisted. При его использовании приложение недоступно в каталоге и через поиск, и открыть его можно только по ссылке. В статье детально разбирается процесс публикации приложения в таком статусе, формы, которые надо заполнять, и проблемы, к котором могут придраться на ревью.
В Swift 5.6 в SPM завезли поддержку плагинов:
📌Build Tools, которые запускаются до и во время сборки
📌Commands, которые запускаются с помощью CLI

В гайде разбирается, как созлавать простые Command-плагины, как со своей собственной логикой, так и обертки над другими инструментами вроде swift-format.