Telegram Web Link
Как попробовать фичи Swift 6 уже сейчас

Swift 6 выйдет не раньше 2024 года, но часть языковых фичей можно попробовать уже сейчас с помощью флага -enable-upcoming-feature. Это поможет подготовить кодовую базу к будузей миграции и сделать ее менее болезненной.

Список всех фичей, которые можно включить, есть в файле Features.dev. Кроме этого, для проверки того, что вы правильно работаете с многопоточным кодом, можно использовать флаги -warn-concurrency и -enable-actor-data-race-checks.

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


Перевод на русский язык
Compose Multiplatform теперь поддерживает iOS

Я думаю, что все вы слышали про Jetpack Compose – это примерно как SwiftUI, но от мира Android. Так вот, мы в JetBrains еще в прошлом году сделали его мультиплатформенным, и дали возможность шарить код с десктопными приложениями. А на прошлой неделе на KotlinConf был важный анонс – теперь Compose Multiplatform поддерживает еще и iOS таргет, правда пока только в Alpha!

Сразу разберем горячие вопросы:

🎨Фреймворк рисует компоненты на канвасе, примерно как Flutter.
🤖Пока что из коробки доступны только Material design компоненты. Ну и, конечно, можно верстать кастомный дизайн любой сложности.
📱Так как все рисуется на канвасе, многим компонентам пока не хватает привычного айосного поведения. Например, у скролла другая физика. Сразу предупрежу, что это просто ограничение альфы, а так все в работе.
💻Код, написанный для Android, полностью валиден для запуска на iOS, если не зависит от платформенных библиотек.
☁️Помимо iOS и Android есть поддержка всех десктопных операционных систем, а еще и экспериментальная поддержка Web.
🌡️Фреймворк еще в очень-очень сыром состоянии, и впереди много работы над тулингом, перфомансом, интеграцией с iOS платформой и компонентами.

Все это работает поверх Kotlin Multiplatform, поэтому наша изначальная идея остается актуальной. Мы не планируем заменять нативную разработку. Вы сами решаете, какую часть кода надо пошарить в вашем проекте, чтобы получить пользу – отдельный модуль, всю бизнес-логику, какие-то вспомогательные экраны вроде настроек, или вообще все.

Я буду очень рад, если вы попробуете Compose, и поделитесь впечатлениями и фидбэком. Так получилось, что я сейчас выполняю роль продакт менеджера в его команде, и как раз много думаю над тем, какая интеграция с iOS важна в первую очередь!

👉Основной сайт фреймворка
👉Шаблон старта нового проекта
👉Кейноут KotlinConf, где на 50 минуте рассказывают про Compose
👉Подробный доклад про Compose for iOS на отметке 5ч 13мин
Как работают anchors в SwiftUI

Anchors – это фича в SwiftUI, которая помогает выравнивать элементы лэйаута относительно друг друга. Это работает за счет возможности напрямую зареференсить «якорь» ожной вьюхи в другой.

Чтобы лучше разобраться, как работают якоря, в статье их реализуют с нуля чисто средствами SwiftUI, а затем сравнивают их с нативной реализацией.

Перевод на русский язык
Воркшоп и обзор экосистемы Kotlin Multiplatform

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

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

Воркшоп является частью продвинутого онлайн-курса «iOS Developer. Professional» от OTUS

📆Дата: 4 мая, 20:00
👉Регистрация
Canopy – удобная обертка над CloudKit

Основная идея библиотеки – изолировать всю работу с CloudKit, дав возможность тестировать код без взаимодействия с реальным облаком. Для большинства задач вроде обработки серверных токенов и работы с батчами и курсорами в Canopy уже описана вся логика, но при желании ее можно переопределить.

📖Документация
💻Семпловое приложение
Экспорт SwiftUI вьюх в формате изображений

ImageRenderer – это API, который позволяет экспортнуть иерархию SwiftUI вьюх как изображение. Например, это можно использовать для экспорта Swift Charts в PDF.

Часть параметров перед экспортом можно подкрутить, например масштаб или цвета.

Перевод на русский язык
Сообщество Garage Eight

Ребята из Garage Eight пилят разные инвестиционные продукты. А кроме этого, недушно рассказывают про свою внутреннюю кухню, травят карьерные байки и делятся полезными материалами.

Вот несколько клевых постов, с которых можно начать знакомство с каналом:

🤔Подборка материалов по развитию критического мышления
🤝Про опыт построения ML команды, в которой нет тимлида
💬Инструменты и практики дачи фидбэка

Реклама
ООО «Гараж 8» erid: Pb3XmBtzsqba5zuiiqDfGmJRXGA6T5Yospdetvk
Komondor – пакет для описания Git Hooks, использующихся в проекте

С помощью Komondor вы можете описать все git hooks, нужные вашему проекту, в одном блоке Package.swift файла. Он поддерживает аж 19 разных видов хуков, в том числе экзотику вроде pre-auto-gc или sendemail-validate.

Пакет вдохновлен Husky – аналогичным инструментом в Node.js экосистеме.
for-case-let

Вместо того, чтобы писать if let внутри for цикла, вы можете использовать case let прямо при его объявлении. Уровень вложенности кода падает, да и выглядит чище.
This media is not supported in your browser
VIEW IN TELEGRAM
Как пропустить экран логина с помощью брейкпойнтов в Xcode

Xcode позволяет автоматически выполнять различные lldb команды при остановке на брейкпойнте. В статье разбирается как настроить брейкпойнты таким образом, чтобы автоматически заполнять логин и пароль при дебаге приложения.

Перевод на русский язык
Результаты Swift Community Awards

Подборка самых высоко оцененных сообществом инструментов, сервисов, опенсорсных проектов и докладов. Загляните, может быть, пропустили интересные штуки! Вот несколько классных:

🍍TelemetryDeck – легковесная аналитика с упором на приватность собираемых данных
🍍IceCubes – очень красивый опенсорсный клиент для Мастодона
🍍Bakery – простой конструктор иконок приложений
Foundation на Swift

В конце прошлого года Apple заанонсили, что переписывают Foundation на Swift, параллельно разбивая его на маленькие пакеты. Спустя всего четыре месяца первое превью уже выпущено на GitHub!

Пока в библиотеке доступна только часть типов, например AttributedString, Date и Calendar. Ключевая особенность – улучшенный перфоманс. Например, Calendar показывает 20% улучшение, а форматирование дат через FormatStyle – 150%. Самое крутое, конечно, JSONEncoder/JSONDecoder, которые показывают прирост в 2-5 раз.

Следующие планы – перенести URL, Bundle, FileManager, FileHandle, Process, SortDescriptor, SortComparator, а заодно – обрабатывать фичереквесты и баги от коммьюнити.
Swift для TensorFlow все

Вторая новость про Swift чуть менее радостная. Google тихо прикрыл все работы, связанные со Swift для TensorFlow, и заархивировал проект. Из заметных достижений за время их работы:

👉В компилятор добавили поддержку differentiable programming, причем ее саппорт продолжится.
👉Запустили несколько проектов, которые продолжат поддерживаться: PythonKit для интеропа с Python, swift-jupyter для возможности использовать ноутбуки, swift-benchmark для, как ни удивительно, бенчмарков кода.
Предсказания анонсов на WWDC’23

Bloomberg подбили все известные утечки в одном материале:

😎Reality Headset, премиальная AR/VR гарнитура
📱Новая операционка для гарнитуры, xrOS
⌚️Крупный апдейт в watchOS 10, в котором должны сильно переработать интерфейс
💻Новые макбуки, но вроде как все еще на М2
Никаких крупных апдейтов в iOS/macOS не ожидается, не считая возможности загружать приложения на iOS в обход официального магазина

Перевод на русский язык
VK запускает Weekend Offer для мобильных разработчиков

Получите возможность присоединиться к командам VK Мессенджера, VK Видео, Почты Mail.ru и Облака Mail.ru всего за одни выходные — 20–21 мая. Разработчики требуются на направления iOS и Android.

Отправить отклик можно до 18 мая включительно.
Несколько советов про Reachability

👉Вместо проверок на наличие соединения перед каждым запросом используйте флаг waitsForConnectivity, благодаря которому активный запрос будет дожидаться появления сети.
👉Если вам надо ограничить приложение работой только по WiFi, настройте URLSessionConfiguration таким образом, чтобы разрешать только определенные типы соединений.

Перевод на русский язык
Когда пользователь лучше всего конвертится во внутреннюю покупку

Феликс Краузе, бывший ментейнер Fastlane, сейчас запускает новый продукт – ContextSDK. Он предсказывает, когда лучше всего предложить пользователю совершить внутреннюю покупку, основываясь на анализе кучи факторов. Вот несколько примеров того, что может значимо влиять на конверсию:

🌟Хуже всего люди совершают покупки, когда пользуются приложением на ходу, когда телефон лежит на столе, у него остается мало заряда батареи, или когда он воспроизводит музыку.
🌟Лучше всего конвертятся те, кто лежит или сидит.
🌟Чем новее модель телефона и чем свежее версия операционной системы, тем выше конверсия в покупку.
🌟Время суток тоже влияет. В первой половине дня конверсии в целом лучше.
ETTrace – новый фреймворк для профилирования приложений

Основные отличия от Time Profiler:

- Более простой интерфейс для поиска проблем в перфомансе
- Более быстрый, менее флакующий профилировщик
- Корректная символизация
- Готов к работе в CI

Перевод на русский язык
2024/11/05 18:56:07
Back to Top
HTML Embed Code: