Telegram Web Link
Изображения в Localizable.strings

Если добавить название изображения в Localizable.strings, SwiftUI автоматически подцепит локализованную строчку как accessibility label.
Тренды iOS разработки в 2022

Обзор изменений в нескольких областях экосистемы, которые по мнению автора являются ключевыми в этом и следующем году:

🎨SwiftUI
🔃Unidirectional flow
🧱Modularization
👀Testing
😎Accessibility
Дизайн макросов выражений в Swift

Помните опубликованный в прошлом году вижн макросов в Swift? Ждать придется не очень долго. На ревью уже находится подробный дизайн и прототипная реализация одной из составляющих – макросов выражений.

Expression macro – это специальный код, начинающийся со знака #, который при компиляции разворачивается в какое-то выражение. У таких макросов есть доступ к синтаксическому дереву программы, как на чтение, так и на изменение. По сути, они заменяют собой любые внешние кодогенераторы.

Репозиторий с примерами макросов
Знакомство с Flutter для iOS разработчиков

Команда Flutter добавила в документацию специальный раздел, который помогает iOS разработчикам познакомиться с фреймворком, сравнив его основные концепции и компоненты с аналогичными в SwiftUI или UIKit.

Похожий документ есть и для языка Dart, где его сравнивают со Swift.
This media is not supported in your browser
VIEW IN TELEGRAM
Как запустить iPhoneOS 1.0 на эмуляторе QEMU

На QEMU запустили полноценную эмуляцию первого iPod Touch с рендерингом девайса и мультитачем. В статье – много деталей про то, как устроены кишочки загрузки операционной системы и куча ссылок для тех, кто захочет закопаться поподробнее.
Расскажите, чего хотите от Подлодки в 2023

Команда Podlodka iOS Crew собирает идеи того, как можно улучшить конференции. Если вы приходили на прошлые сезоны или смотрели какие-то видео, проходите небольшой опрос. А заодно, если вам есть чем поделиться, или вы готовы ворваться в программный комитет, оставляйте свои контакты!
Первые подробные слухи про Apple Glasses

- Батарея для очков будет носиться на поясе, очки к ней будут подключаться по MagSafe. Заряда должно хватать на два часа.
- Справа будет находиться Digital Crown, использующаяся для переключения между VR и обычным зрением.
- Вроде как будут две версии ремешка для очков: для проствх пользователей и для разработчиков, но в чем будет отличие, пока не понятно.
- Если вам нужны линзы с плюсом/минусом, они будут крепиться на магнитах.
- Моторчики будут подгонять конструкцию под удобную для вас зрительную дистанцию.
- Существующие iOS приложения будут запускаться в 2D режиме, что бы это ни значило.
- Основными методами управления будут голосовое и hand-tracking. Отдельного игрового контроллера не будет.
- На внешней части устройства будет экран, который показывает окружающим эмоции того, кто носит очки.
- Цена, кажется, будет в районе 3000$.
Как работает модификатор aspectRatio

Aspect Ratio в SwiftUI часто работает не так, как от него ожидается. Чтобы разобраться в том, как именно его использование влияет на процесс лэйаута, автор проводит серию экспериментов.
Курсы для начинающих айосеров от Apple

Apple решили собрать свой набор видеоуроков для тех, кто только вкатывается в iOS.

🎨SwiftUI: интерфейсы, навигация, управление стейтом, хранение данных, многопоточность
🧱UIKit: работа с коллекциями, анимации, системные фреймворки
🛠️Работа с сетью и тесты

В процессе прохождения курса разрабатывается несколько учебных проектов. Курс расчитан на 15 часов.
Если ИТ – это ваш конек, то Тинькофф ждет вас 23 января на катке в московском Парке Горького!

Ледовый ИТ-квест, нетворкинг, дискуссии со спикерами в теплом шатре и многое другое. Вечер точно будет насыщенным и приятным. За коньки не беспокойтесь — их выдадут бесплатно.

Не медлите, регистрируйтесь сами и зовите коллег — будет весело!
Как предоставлять Export Compliance Information

Помните тот вопрос, который App Store Connect задает каждый раз при заливе новой версии: «Does your app use encryption?» Держите максимально подробный гайд про то, как следует себя вести.

*️⃣В большинстве случаев, если вы не заполните self-classification report, ничего страшного не случится. Но формально это требуется обязательно, даже если вы просто используете https или встроенные в SDK криптографические алгоритмы.
*️⃣Для бесплатных приложений отчет требуется заполнять только один раз, для платных – каждый год. Заполнить и отправить отчет надо в промежуток с 1 января до 1 февраля.
*️⃣Сгенерировать отчет можно здесь. После этого его надо будет отправить на почты [email protected] и [email protected].
*️⃣Если вы не успели отправить отчеты – не критично. Подождите до следующего 1 января.

Перевод на русский язык
This media is not supported in your browser
VIEW IN TELEGRAM
Коллекция SwiftUI анимаций

Большая подборка сниппетов с анимациями на SwiftUI. Некоторые из них повторяют поведение системных компонентов, а некоторые – уникальные.
Подходы к тестированию в больших компаниях

Огромное обсуждение на форуме Mobile Native Foundation про то, как разные крупные компании подходят к организации тестирования. Ветка довольно старая, но в ней периодически появляются новые истории. Вот несколько интересных хайлайтов:

Испанцы Karumi выложили в опенсорс свои гайды по тестированию (скриншотные тесты, property-based тесты, HTTP стабы)
В Spotify 32.000 тестов разных видов.
Target получают большую часть полезного фидбэка не от тестов, а от программы Beta тестирования в TestFlight.

Если вы занимаетесь организацией процессов релизов или тестирования, то в любом случае рекомендую прочитать всю ветку.
7 февраля протухает WWDR сертификат для валидации покупок

🤔Кого затронет проблема:

Тех, кто валидирует покупки, не используя AppTransaction/Transaction API или серверную ручку verifyReceipt, а вместо этого хардкодит сертификат в приложении и проверяет покупку в клиентском коде.

💻Что делать:

- В идеале – отказаться от хардкода сертификата и выбрать один из рекомендуемых методов валидации.
- В худшем случае – обновить захардкоженный сертификат и вспомнить о проблеме снова через несколько лет.

Перевод на русский язык
Breaking changes в Swift 6

Разработчики Swift стараются развивать язык, не ломая обратную совместимость на уровне исходников. Это значит, что код, компилируемый Swift 4, будет собираться и Swift 5. Для примера, появление Swift Concurrency ничего не сломало в старом коде.

В Swift 6 должно выкатиться много важных для языка изменений, ради которых готовы пожертвовать обратной совместимостью. Большая их часть касается одной из трех областей:

🏇Data-race safety by default
🏎️Performance predictability
🧱Package ecosystem scalability

В Swift 5.8 появится возможность включить часть из этих ломающих фичей, чтобы вы могли заранее подготовить свою кодовую базу к миграции. Но времени еще много, Swift 6 стоит ждать не раньше, чем через год.
Обзор линкеров для iOS/macOS

- Линкинг – один из этапов билда, на который может уходить довольно много времени, особенно в случае больших приложений. Если вы оптимизируете скорость сборки, это один из кандидатов на улучшение.
- Apple долгое время не вкладывались в ускорение своего основного линкера, ld64. В 2020 году автор выпустил свой форк этого линкера, zld, который работал на 40% быстрее.
- С тех пор появился третий проект, lld, который в основном поддерживается Google и Meta. Кроме того, Apple существенно улучшили ld64, и постепенно набирает обороты быстрый коммерческий линкер sold.
- Сейчас, если вы хотите получить более быстрый линкинг, разумнее всего использовать lld. Это может вам дать ускорение на 50-80%. Обратите внимание – это верно для дебажных билдов, релизные лучше собирать стандартным линкером.
- В статье автор рассказывает, почему решил прекратить поддержку своего линкера, и насыпает много ссылок про технические детали.

Перевод на русский язык
This media is not supported in your browser
VIEW IN TELEGRAM
Новые фичи автокомплита кода в Xcode 14

- Генерация предзаполненных инициализаторов для структур
- Генерация бойлерплейта для Codable
- Корректная обработка параметров структур, у которых есть дефолтное значение
- Автоподстановка аргументов в функцию map, основываясь на названии создаваемой переменной (как в гифке в заголовке)
- Автоматическое выравнивание кода в блоках

Это только часть изменений, все остальные – в статье. У Xcode куча проблем, но попробовать новые фичи все равно стоит – они могут упростить некоторые частве сценарии и сделать вашу жизнь чуть лучше.

Перевод на русский язык
Как поддержать несколько разных виджетов в одном приложении

- Apple предлагает два подхода к поддержке нескольких виджетов: использовать widget bundle или создавать несколько разных widget extensions.
- У бандла есть ограничение на 10 виджетов внутри. Его теоретически можно обойти.
- Apple рекомендует в большинстве случаев использовать бандлы, а ко второму способу обращаться только в специфичных случаях. Например, когда только одному из них для работы требуется какой-то пермишн от пользователя.

Перевод на русский язык
Способы выдать доступ к дебажному меню

*️⃣Показывать меню только пользователям TestFlight, проверяя App Store receipt URL.
*️⃣Показывать меню после серии специальных жестов. Минус в том, что такое меню могут легко обнаружить случайно.
*️⃣Показывать меню тем, кто откроет приложение с помощью специальной URL схемы.
*️⃣Если в приложении есть авторизация, то дебажное меню можно активировать только для определенных аккаунтов.
*️⃣Показывать меню тем, на чьих девайсах стоит специальный Configuration Profile.

Перевод на русский язык
2024/09/30 22:21:14
Back to Top
HTML Embed Code: