Telegram Web Link
Как написать свой браузерный движок на Swift

Ходят слухи, что Apple скоро разрешат публиковать в сторе браузеры, основанные не на стандартном WebView. В честь этого автор статьи решил разработать полностью свой браузер, начиная от парсинга HTML, заканчивая рендерингом в SwiftUI.

Конечно, все максимально просто, никакой поддержки CSS и, тем более, JavaScript, но все равно интересно!
Review Rocket – инструмент для автоматического анализа отзывов в App Store

Инструмент работает так:

1️⃣Вводите ссылку на ваше приложение
2️⃣Все отзывы пользователей выгружаются и прогоняются через LLM
3️⃣На выходе получаете список основных фиче-реквестов и жалоб
Canvas в SwiftUI

Canvas – особый тип View, который позволяет процедурно рисовать различные фигуры, определяя их геометрию и стили. Помимо фигур, на канвас можно добавлять текст. изображения. Поддерживаются и анимации с помощью TimelineView.
Как работают механизмы синхронизации в CloudKit

Автор библиотеки CloudKitSession, которая позволяет сохранять в CloudKit произвольные данные без зависимости на Core Data, делится особенностями работы CloudKit, которых нет в документации:

Как избегать ошибок, и обрабатывать их, если они все же случатся
🤝Как работают алгоритмы разрешения конфликтов
📝Как работать со схемой данных
Советы по работе с Codable в реальной жизни

При первом знакомстве Codable выглядит магией – структура автоматически наполняется нужными значениями из ответа сервера, все супер. Но в реальности все сложнее – бэкендеры могут возвращать пустые строки там, где ожидался url, случайно добавлять или удалять параметры, меняя схему ответа сервера.

В статье разбирается несколько советов по тому, как сделать парсинг ответов сервера более устойчивым к неожиданным изменениям, и как получать больше информации о его ошибках.
Как попробовать фичи 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 мая включительно.
2024/10/01 13:36:15
Back to Top
HTML Embed Code: