Количество новых приложений на React Native упало на 40 процентов
По данным AppFigures, которые анализируют используемые приложениями SDK, в 2022 году количество приложений, содержащих в себе зависимости React Native, упало на 43%. Важно понимать, что количество новых релизов в целом стало меньше на 8%, но это объясняет лишь маленькую часть падения.
При этом, до прошлого года React Native рос довольно бодренько.
По данным AppFigures, которые анализируют используемые приложениями SDK, в 2022 году количество приложений, содержащих в себе зависимости React Native, упало на 43%. Важно понимать, что количество новых релизов в целом стало меньше на 8%, но это объясняет лишь маленькую часть падения.
При этом, до прошлого года React Native рос довольно бодренько.
Как использовать один и тот же код для Xcode Previews и снепшотного тестирования
В статье разбирается, как с помощью библиотеки PreviewSnapshots можно использовать один и тот же код для того, чтобы отображать его в Xcode Preview, и для того, чтобы генерировать вьюшку, которая может использоваться в XCTest ассертах. Идея в целом довольно разумная, и снепшотные тесты вы можете получить почти бесплатно.
В статье разбирается, как с помощью библиотеки PreviewSnapshots можно использовать один и тот же код для того, чтобы отображать его в Xcode Preview, и для того, чтобы генерировать вьюшку, которая может использоваться в XCTest ассертах. Идея в целом довольно разумная, и снепшотные тесты вы можете получить почти бесплатно.
Поиск спикеров в Podlodka iOS Crew
Программный комитет любимой конференции айосеров готовит новый сезон с фокусом на разную инфраструктуру – сборку, CI/CD, обеспечение качества, организацию аналитики и локализации.
Если вы решали какие-то интересные задачи по теме, то откликайтесь в форме. Вам подберут подходящий формат, помогут подготовить выступление и отсыпят кучу плюшек! Форма открыта до 3 февраля.
Если вы не готовы выступить сами, но готовы привести нам крутого спикера – мы дадим бесплатную проходку на сезон. Так что перекидывайте приглашение и зовите своих коллег!
Программный комитет любимой конференции айосеров готовит новый сезон с фокусом на разную инфраструктуру – сборку, CI/CD, обеспечение качества, организацию аналитики и локализации.
Если вы решали какие-то интересные задачи по теме, то откликайтесь в форме. Вам подберут подходящий формат, помогут подготовить выступление и отсыпят кучу плюшек! Форма открыта до 3 февраля.
Если вы не готовы выступить сами, но готовы привести нам крутого спикера – мы дадим бесплатную проходку на сезон. Так что перекидывайте приглашение и зовите своих коллег!
Google Docs
Хочу быть спикером iOS Crew#11
Тема недели "Инфраструктура"
Даты: 27 февраля – 3 марта
Ожидаемые темы докладов сезона
Хостинг CI: Облачные решения (Xcode Cloud, MacStadium, виртуализация?) / Своё железо (организация фермы с mac mini)
Управление CI пайплайнами: Gitlab CI, CircleCI, Travis…
Даты: 27 февраля – 3 марта
Ожидаемые темы докладов сезона
Хостинг CI: Облачные решения (Xcode Cloud, MacStadium, виртуализация?) / Своё железо (организация фермы с mac mini)
Управление CI пайплайнами: Gitlab CI, CircleCI, Travis…
Как работает Advanced Data Protection в iCloud
Обычно все ваши данные в iCloud шифруются ключом, который хранится на серверах Apple. В декабре Apple анонсировали несколько новых фичей, связанных с безопасностью. Одна из них – Advanced Data Protection, которая хранит ключи шифрования только на устройствах. По сути, это end-to-end шифрование из коробки для всех приложений, которые используют CloudKit. Но у этого есть несколько нюансов:
*️⃣Зашифрованные поля в данных не поддеррживают индексы, поэтому из нельзя включать в предикаты.
*️⃣Если вы выставляете publicPermission для какого-то из файлов, и он становится доступен по ссылке, ключи шифрования загрузятся на сервер Apple.
*️⃣Вы не можете знать, включен ли ADP у конкретного пользователя. Правильным будет расчитывать на то, что включен, и работать с приватной информацией черещ новый API.
Документация по encryptedValues API
Перевод на русский язык
Обычно все ваши данные в iCloud шифруются ключом, который хранится на серверах Apple. В декабре Apple анонсировали несколько новых фичей, связанных с безопасностью. Одна из них – Advanced Data Protection, которая хранит ключи шифрования только на устройствах. По сути, это end-to-end шифрование из коробки для всех приложений, которые используют CloudKit. Но у этого есть несколько нюансов:
*️⃣Зашифрованные поля в данных не поддеррживают индексы, поэтому из нельзя включать в предикаты.
*️⃣Если вы выставляете publicPermission для какого-то из файлов, и он становится доступен по ссылке, ключи шифрования загрузятся на сервер Apple.
*️⃣Вы не можете знать, включен ли ADP у конкретного пользователя. Правильным будет расчитывать на то, что включен, и работать с приватной информацией черещ новый API.
Документация по encryptedValues API
Перевод на русский язык
Tact technology blog
What Advanced Data Protection for iCloud means for Tact and other apps that use CloudKit
In December 2022, Apple announced Advanced Data Protection for iCloud that covers user data in iCloud with end-to-end encryption under certain conditions. This post examines the topic in more detail.
Swift и Objective-C в одном XCFramework
С интеропом Swift и Objective-C нет проблем, но есть нюанс. Если вам нужен интероп внутри фреймворка, придется сделать интерфейс взаимодействия Swift<>Objective-C публичным, и он будет доступен всем пользователям фреймворка. Это подойдет не во всех случаях.
В статье разбирается два воркэраунда – для импорта Swift в Objective-C и наоборот.
Перевод на русский язык
С интеропом Swift и Objective-C нет проблем, но есть нюанс. Если вам нужен интероп внутри фреймворка, придется сделать интерфейс взаимодействия Swift<>Objective-C публичным, и он будет доступен всем пользователям фреймворка. Это подойдет не во всех случаях.
В статье разбирается два воркэраунда – для импорта Swift в Objective-C и наоборот.
Перевод на русский язык
Надо ли подаваться в App Store Small Business program каждый год
У App Store есть специальная программа для тех, кто зарабатывает меньше миллиона долларов в год на своих проектах – Small Business Program. Основная плюшка – вы платите 15% комиссии вместо 30%.
Недавно на почты многим разработчикам, участвующим в программе, пришло письмо с заголовком «You’re eligible for the Small Business Program». Если вы увидели такое же, не переживайте – саппорт пишет, что каждый год продлять программу не надо.
У App Store есть специальная программа для тех, кто зарабатывает меньше миллиона долларов в год на своих проектах – Small Business Program. Основная плюшка – вы платите 15% комиссии вместо 30%.
Недавно на почты многим разработчикам, участвующим в программе, пришло письмо с заголовком «You’re eligible for the Small Business Program». Если вы увидели такое же, не переживайте – саппорт пишет, что каждый год продлять программу не надо.
Обмен данными между iPhone и Apple Watch с помощью WatchConnectivity
WatchConnectivity – системный фреймворк, который дает простой API для передачи данных между телефоном и часами. Важно – он предназначен для передачи небольших объемов данных. Для того, чтобы передать что-то более значимое, Apple рекомендует запрашивать данные напрямую с сервера через URLSession.
WatchConnectivity дает три способа передачи данных:
1️⃣
2️⃣
3️⃣
Перевод на русский язык
WatchConnectivity – системный фреймворк, который дает простой API для передачи данных между телефоном и часами. Важно – он предназначен для передачи небольших объемов данных. Для того, чтобы передать что-то более значимое, Apple рекомендует запрашивать данные напрямую с сервера через URLSession.
WatchConnectivity дает три способа передачи данных:
1️⃣
ApplicationContext
, для синхронизации очень часто изменяющихся данных.2️⃣
transferUserInfo
, для гарантированной передачи данных даже в том случае, если часы сейчас недоступны. Работает только с реальным девайсом.3️⃣
sendMessage
, для двустороннего обмена данными тогда, когда оба девайса видят друг друга.Перевод на русский язык
Результаты большого опроса Developer Ecosystem по iOS разработчикам
🍹У 85% опрошенных в проектах есть и Swift, и Objective-C. У подавляющего большинства большинство кода на Swift.
🐞2/3 разработчиков не пишут юнит тесты. UI тесты пишет кще меньше, всего 20%.
🧱70% опрошенных используют CocoaPods, 47% – SwiftPM, 12% – Carthage. При этом половина использующих поды планирует переезд на SwiftPM.
☁️13% опрошенных делают что-то на Swift для сервера.
🍹У 85% опрошенных в проектах есть и Swift, и Objective-C. У подавляющего большинства большинство кода на Swift.
🐞2/3 разработчиков не пишут юнит тесты. UI тесты пишет кще меньше, всего 20%.
🧱70% опрошенных используют CocoaPods, 47% – SwiftPM, 12% – Carthage. При этом половина использующих поды планирует переезд на SwiftPM.
☁️13% опрошенных делают что-то на Swift для сервера.
30 постов про работу с Metal
Серия постов для тех, кто раньше не занимался разработкой для GPU. Каждая статья – разбор одной из ключевых концепций Metal с простыми примерами, которые можно повторить самому.
Вот несколько постов для затравки:
🎨Рисование в 2D
💧Работа с глубиной
☀️Источники и направление света
⬇️Рендеринг, основанный на физике
Серия постов для тех, кто раньше не занимался разработкой для GPU. Каждая статья – разбор одной из ключевых концепций Metal с простыми примерами, которые можно повторить самому.
Вот несколько постов для затравки:
🎨Рисование в 2D
💧Работа с глубиной
☀️Источники и направление света
⬇️Рендеринг, основанный на физике
3D шахматы на SwiftUI и RealityKit
С очками все не очень понятно – по слухам их опять отложили на неопределенное время. В любом случае, в этом году будет полезно подтянуть свои знания по AR/VR и поиграть с разными идеями.
Автор статьи рассказывает, как довольно просто запилить трехмерные шахматы в AR. Хороший проект, чтобы потренироваться в разных базовых штуках вроде работы со светом.
Перевод на русский язык
С очками все не очень понятно – по слухам их опять отложили на неопределенное время. В любом случае, в этом году будет полезно подтянуть свои знания по AR/VR и поиграть с разными идеями.
Автор статьи рассказывает, как довольно просто запилить трехмерные шахматы в AR. Хороший проект, чтобы потренироваться в разных базовых штуках вроде работы со светом.
Перевод на русский язык
Как ускорить protocol conformance check
- Protocol conformance check каждый раз при выполнении в рантайме проходится по всем
- В iOS 16 завезли улучшение за счет использования специального кэша, который хранит в себе посчитанные заранее результаты соответствия протоколов. Но есть ряд кейсов, в которых эта фича не работает, в частности при первом запуске приложения, когда кеши еще не заполнены, при отсутствии результатов проверки соответствия или на старых версиях iOS.
- В статье рассказывается, как с помощью специально настроенных order файлов, которые объясняют линкеру, как правильно группировать код, можно улучшить скорость во всех описанных сценариях.
- Авторы статьи в своих тестах получили прирост на 20% на iPhone 7 с iOS 15.
Перевод на русский язык
- Protocol conformance check каждый раз при выполнении в рантайме проходится по всем
ProtocolConformanceDescriptor
, содержащимся в бинарнике. Чем больше у вас протоколов, тем медленнее выполняется эта операция.- В iOS 16 завезли улучшение за счет использования специального кэша, который хранит в себе посчитанные заранее результаты соответствия протоколов. Но есть ряд кейсов, в которых эта фича не работает, в частности при первом запуске приложения, когда кеши еще не заполнены, при отсутствии результатов проверки соответствия или на старых версиях iOS.
- В статье рассказывается, как с помощью специально настроенных order файлов, которые объясняют линкеру, как правильно группировать код, можно улучшить скорость во всех описанных сценариях.
- Авторы статьи в своих тестах получили прирост на 20% на iPhone 7 с iOS 15.
Перевод на русский язык
Релиз MarkdownUI 2.0
MarkdownUI – библиотека для работы с маркдауном в SwiftUI. Умеет рендерить изображения, заголовки, списки, цитаты, таблицы, код и многое другое.
На этой неделе вышла новая версия либы, куда завезли нативный SwiftUI рендеринг, кастомизацию через стили и темы, и полную поддержку GitHub Flavored Markdown.
Перевод на русский язык
MarkdownUI – библиотека для работы с маркдауном в SwiftUI. Умеет рендерить изображения, заголовки, списки, цитаты, таблицы, код и многое другое.
На этой неделе вышла новая версия либы, куда завезли нативный SwiftUI рендеринг, кастомизацию через стили и темы, и полную поддержку GitHub Flavored Markdown.
Перевод на русский язык
Лучшие практики в SwiftUI от Pointfree
Держите пять топовых статей про то, как писать поддерживаемый, надежный и масштабируемый код на SwiftUI.
*️⃣Parent-child view communication
*️⃣Identified arrays
*️⃣State-driven navigation
*️⃣Dependencies
*️⃣Testing
Перевод на русский язык
Держите пять топовых статей про то, как писать поддерживаемый, надежный и масштабируемый код на SwiftUI.
*️⃣Parent-child view communication
*️⃣Identified arrays
*️⃣State-driven navigation
*️⃣Dependencies
*️⃣Testing
Перевод на русский язык
www.pointfree.co
Modern SwiftUI: Parent-child communication
We are celebrating the conclusion of our 7-part series on Modern SwiftUI by releasing a blog post every day this week, detailing an area of SwiftUI development that can be modernized. We begin by exploring ways to facilitate parent-child communication in…
За Swift concurrency – будущее многопоточки в iOS. Если вы еще не вкатились, то начало года – самое время, чтобы начать подтягивать свои знания и экспериментировать с новыми API. Первые шаги вы можете сделать уже послезавтра, на воркшопе от Ексея Пантелеева.
— Устройство многопоточности на уровне iOS
— Новую структурированную многопоточность переход от GCD и основную проблему GCD
— Реальные примеры на async/await
— Использование Actors в продакшене
— Перспективы развития новой многопоточности
Вебинар является частью большого онлайн-курса «iOS Developer. Professional» от OTUS.
Дата: 2 февраля, 20:00
👉Для регистрации пройдите вступительный тест: https://otus.pw/9Syy/
— Устройство многопоточности на уровне iOS
— Новую структурированную многопоточность переход от GCD и основную проблему GCD
— Реальные примеры на async/await
— Использование Actors в продакшене
— Перспективы развития новой многопоточности
Вебинар является частью большого онлайн-курса «iOS Developer. Professional» от OTUS.
Дата: 2 февраля, 20:00
👉Для регистрации пройдите вступительный тест: https://otus.pw/9Syy/
Sketch теперь импортирует файлы из Figma
Очень-очень радостная новость. Если вы любите использовать Sketch, и сидите в Figma только из-за предпочтений дизайнеров или кого-то еще в команде, теперь вы сможете легко импортнуть
Очень-очень радостная новость. Если вы любите использовать Sketch, и сидите в Figma только из-за предпочтений дизайнеров или кого-то еще в команде, теперь вы сможете легко импортнуть
.fig
в Sketch.Как экономить на GitHub Actions
Раннеры на macOS стоят в 10 раз дороже, чем на Linux, поэтому думать об оптимизации расходов точно имеет смысл. В статье предлагается несколько техник:
🛠️Пересмотрите все задачи, которые гоняются на macOS, и вынесите независимые от операционки на Linux. Например, можно вынести прогон SwiftLint или SwiftFormat.
🫰Настройте фильтры, чтобы не гонять билды при изменениях в README или других ресурсах.
🏎️Запускать только одну джобу в моменте, и дать возможность свежим джобам убивать уже запущенные.
Перевод на русский язык
Раннеры на macOS стоят в 10 раз дороже, чем на Linux, поэтому думать об оптимизации расходов точно имеет смысл. В статье предлагается несколько техник:
🛠️Пересмотрите все задачи, которые гоняются на macOS, и вынесите независимые от операционки на Linux. Например, можно вынести прогон SwiftLint или SwiftFormat.
🫰Настройте фильтры, чтобы не гонять билды при изменениях в README или других ресурсах.
🏎️Запускать только одну джобу в моменте, и дать возможность свежим джобам убивать уже запущенные.
Перевод на русский язык