bootg.com »
United States »
iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT » Telegram Web
Как попробовать фичи Swift 6 уже сейчас
Swift 6 выйдет не раньше 2024 года, но часть языковых фичей можно попробовать уже сейчас с помощью флага
Список всех фичей, которые можно включить, есть в файле Features.dev. Кроме этого, для проверки того, что вы правильно работаете с многопоточным кодом, можно использовать флаги
В статье разбираются все детали миграции, в том числе как активировать все новые языковые фичи в многомодульном проекте, и с какими проблемами вы можете столкнуться.
Перевод на русский язык
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мин
Я думаю, что все вы слышали про 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, а затем сравнивают их с нативной реализацией.
Перевод на русский язык
Anchors – это фича в SwiftUI, которая помогает выравнивать элементы лэйаута относительно друг друга. Это работает за счет возможности напрямую зареференсить «якорь» ожной вьюхи в другой.
Чтобы лучше разобраться, как работают якоря, в статье их реализуют с нуля чисто средствами SwiftUI, а затем сравнивают их с нативной реализацией.
Перевод на русский язык
Воркшоп и обзор экосистемы Kotlin Multiplatform
Kotlin Multiplatform соединяет в себе лучшее от двух миров – кроссплатформы и нативной разработки. Вы получаете возможность переиспользовать всю бизнес-логику, не реализуя ее несколько раз, но сохраняете нативный интерфейс и перфоманс.
На воркшопе Анна Жаркова расскажет о том, как подойти к проектированию архитектуры приложения, использующего KMP, с какими особенностями интеграции с платформами предстоит столкнуться, разберет текущее состояние экосистемы и посоветует набор библиотек для решения стандартных задач.
Воркшоп является частью продвинутого онлайн-курса «iOS Developer. Professional» от OTUS
📆Дата: 4 мая, 20:00
👉Регистрация
Kotlin Multiplatform соединяет в себе лучшее от двух миров – кроссплатформы и нативной разработки. Вы получаете возможность переиспользовать всю бизнес-логику, не реализуя ее несколько раз, но сохраняете нативный интерфейс и перфоманс.
На воркшопе Анна Жаркова расскажет о том, как подойти к проектированию архитектуры приложения, использующего KMP, с какими особенностями интеграции с платформами предстоит столкнуться, разберет текущее состояние экосистемы и посоветует набор библиотек для решения стандартных задач.
Воркшоп является частью продвинутого онлайн-курса «iOS Developer. Professional» от OTUS
📆Дата: 4 мая, 20:00
👉Регистрация
Canopy – удобная обертка над CloudKit
Основная идея библиотеки – изолировать всю работу с CloudKit, дав возможность тестировать код без взаимодействия с реальным облаком. Для большинства задач вроде обработки серверных токенов и работы с батчами и курсорами в Canopy уже описана вся логика, но при желании ее можно переопределить.
📖Документация
💻Семпловое приложение
Основная идея библиотеки – изолировать всю работу с CloudKit, дав возможность тестировать код без взаимодействия с реальным облаком. Для большинства задач вроде обработки серверных токенов и работы с батчами и курсорами в Canopy уже описана вся логика, но при желании ее можно переопределить.
📖Документация
💻Семпловое приложение
Экспорт SwiftUI вьюх в формате изображений
ImageRenderer – это API, который позволяет экспортнуть иерархию SwiftUI вьюх как изображение. Например, это можно использовать для экспорта Swift Charts в PDF.
Часть параметров перед экспортом можно подкрутить, например масштаб или цвета.
Перевод на русский язык
ImageRenderer – это API, который позволяет экспортнуть иерархию SwiftUI вьюх как изображение. Например, это можно использовать для экспорта Swift Charts в PDF.
Часть параметров перед экспортом можно подкрутить, например масштаб или цвета.
Перевод на русский язык
Сообщество Garage Eight
Ребята из Garage Eight пилят разные инвестиционные продукты. А кроме этого, недушно рассказывают про свою внутреннюю кухню, травят карьерные байки и делятся полезными материалами.
Вот несколько клевых постов, с которых можно начать знакомство с каналом:
🤔Подборка материалов по развитию критического мышления
🤝Про опыт построения ML команды, в которой нет тимлида
💬Инструменты и практики дачи фидбэка
Реклама ООО «Гараж 8» erid: Pb3XmBtzsqba5zuiiqDfGmJRXGA6T5Yospdetvk
Ребята из Garage Eight пилят разные инвестиционные продукты. А кроме этого, недушно рассказывают про свою внутреннюю кухню, травят карьерные байки и делятся полезными материалами.
Вот несколько клевых постов, с которых можно начать знакомство с каналом:
🤔Подборка материалов по развитию критического мышления
🤝Про опыт построения ML команды, в которой нет тимлида
💬Инструменты и практики дачи фидбэка
Реклама ООО «Гараж 8» erid: Pb3XmBtzsqba5zuiiqDfGmJRXGA6T5Yospdetvk
Komondor – пакет для описания Git Hooks, использующихся в проекте
С помощью Komondor вы можете описать все git hooks, нужные вашему проекту, в одном блоке Package.swift файла. Он поддерживает аж 19 разных видов хуков, в том числе экзотику вроде pre-auto-gc или sendemail-validate.
Пакет вдохновлен Husky – аналогичным инструментом в Node.js экосистеме.
С помощью 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 команды при остановке на брейкпойнте. В статье разбирается как настроить брейкпойнты таким образом, чтобы автоматически заполнять логин и пароль при дебаге приложения.
Перевод на русский язык
Xcode позволяет автоматически выполнять различные lldb команды при остановке на брейкпойнте. В статье разбирается как настроить брейкпойнты таким образом, чтобы автоматически заполнять логин и пароль при дебаге приложения.
Перевод на русский язык
Результаты Swift Community Awards
Подборка самых высоко оцененных сообществом инструментов, сервисов, опенсорсных проектов и докладов. Загляните, может быть, пропустили интересные штуки! Вот несколько классных:
🍍TelemetryDeck – легковесная аналитика с упором на приватность собираемых данных
🍍IceCubes – очень красивый опенсорсный клиент для Мастодона
🍍Bakery – простой конструктор иконок приложений
Подборка самых высоко оцененных сообществом инструментов, сервисов, опенсорсных проектов и докладов. Загляните, может быть, пропустили интересные штуки! Вот несколько классных:
🍍TelemetryDeck – легковесная аналитика с упором на приватность собираемых данных
🍍IceCubes – очень красивый опенсорсный клиент для Мастодона
🍍Bakery – простой конструктор иконок приложений
Hacking with Swift
Swift Community Awards
The Swift Community Awards help us recognize the developers, conferences, companies, and more that help make our community so vibrant.
Foundation на Swift
В конце прошлого года Apple заанонсили, что переписывают Foundation на Swift, параллельно разбивая его на маленькие пакеты. Спустя всего четыре месяца первое превью уже выпущено на GitHub!
Пока в библиотеке доступна только часть типов, например AttributedString, Date и Calendar. Ключевая особенность – улучшенный перфоманс. Например, Calendar показывает 20% улучшение, а форматирование дат через FormatStyle – 150%. Самое крутое, конечно, JSONEncoder/JSONDecoder, которые показывают прирост в 2-5 раз.
Следующие планы – перенести
В конце прошлого года 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 для, как ни удивительно, бенчмарков кода.
Вторая новость про 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 в обход официального магазина
Перевод на русский язык
Bloomberg подбили все известные утечки в одном материале:
😎Reality Headset, премиальная AR/VR гарнитура
📱Новая операционка для гарнитуры, xrOS
⌚️Крупный апдейт в watchOS 10, в котором должны сильно переработать интерфейс
💻Новые макбуки, но вроде как все еще на М2
✋Никаких крупных апдейтов в iOS/macOS не ожидается, не считая возможности загружать приложения на iOS в обход официального магазина
Перевод на русский язык
Bloomberg.com
Apple Plans to Launch More Than Just Its New Headset at WWDC
Apple’s June Worldwide Developers Conference is shaping up to be one of its biggest product launch events ever — and not just because of the long-awaited mixed-reality headset. Also: The company announces the death of its longtime communications chief, new…
VK запускает Weekend Offer для мобильных разработчиков
Получите возможность присоединиться к командам VK Мессенджера, VK Видео, Почты Mail.ru и Облака Mail.ru всего за одни выходные — 20–21 мая. Разработчики требуются на направления iOS и Android.
Отправить отклик можно до 18 мая включительно.
Получите возможность присоединиться к командам VK Мессенджера, VK Видео, Почты Mail.ru и Облака Mail.ru всего за одни выходные — 20–21 мая. Разработчики требуются на направления iOS и Android.
Отправить отклик можно до 18 мая включительно.
Несколько советов про Reachability
👉Вместо проверок на наличие соединения перед каждым запросом используйте флаг
👉Если вам надо ограничить приложение работой только по WiFi, настройте
Перевод на русский язык
👉Вместо проверок на наличие соединения перед каждым запросом используйте флаг
waitsForConnectivity
, благодаря которому активный запрос будет дожидаться появления сети.👉Если вам надо ограничить приложение работой только по WiFi, настройте
URLSessionConfiguration
таким образом, чтобы разрешать только определенные типы соединений.Перевод на русский язык
Когда пользователь лучше всего конвертится во внутреннюю покупку
Феликс Краузе, бывший ментейнер Fastlane, сейчас запускает новый продукт – ContextSDK. Он предсказывает, когда лучше всего предложить пользователю совершить внутреннюю покупку, основываясь на анализе кучи факторов. Вот несколько примеров того, что может значимо влиять на конверсию:
🌟Хуже всего люди совершают покупки, когда пользуются приложением на ходу, когда телефон лежит на столе, у него остается мало заряда батареи, или когда он воспроизводит музыку.
🌟Лучше всего конвертятся те, кто лежит или сидит.
🌟Чем новее модель телефона и чем свежее версия операционной системы, тем выше конверсия в покупку.
🌟Время суток тоже влияет. В первой половине дня конверсии в целом лучше.
Феликс Краузе, бывший ментейнер Fastlane, сейчас запускает новый продукт – ContextSDK. Он предсказывает, когда лучше всего предложить пользователю совершить внутреннюю покупку, основываясь на анализе кучи факторов. Вот несколько примеров того, что может значимо влиять на конверсию:
🌟Хуже всего люди совершают покупки, когда пользуются приложением на ходу, когда телефон лежит на столе, у него остается мало заряда батареи, или когда он воспроизводит музыку.
🌟Лучше всего конвертятся те, кто лежит или сидит.
🌟Чем новее модель телефона и чем свежее версия операционной системы, тем выше конверсия в покупку.
🌟Время суток тоже влияет. В первой половине дня конверсии в целом лучше.
ETTrace – новый фреймворк для профилирования приложений
Основные отличия от Time Profiler:
- Более простой интерфейс для поиска проблем в перфомансе
- Более быстрый, менее флакующий профилировщик
- Корректная символизация
- Готов к работе в CI
Перевод на русский язык
Основные отличия от Time Profiler:
- Более простой интерфейс для поиска проблем в перфомансе
- Более быстрый, менее флакующий профилировщик
- Корректная символизация
- Готов к работе в CI
Перевод на русский язык