Telegram Web Link
This media is not supported in your browser
VIEW IN TELEGRAM
Как следить за позицией указателя в macOS и iPadOS

В последнюю версию SwiftUI завезли новый модификатор onContinuousHover. С его помощью можно следить за относительной позицией указателя мыши, когда он находится внутри границ вьюшки.
Цвета и цветовые пространства

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

Вдогонку – хорошая статья за авторством гостя про историю развития цвета в CSS и новый формат OLKCH.
Репозиторий с подборками кастомных SF Symbols

На прошлой неделе я выкладывал пост с инструкцией по импорту кастомных SF Symbols. Вы можете не только рисовать их сами, но и импортировать уже подготовленные для вас.
Ограничения работы с ML на девайсе

Если вы планируете запускать нейронку прямо на пользовательском девайсе, то стоит быть готовым к разным проблемам и ограничениям. Список основных – в статье.
Формулы, описывающие относительное восприятие размеров

Я думаю, вы часто встречались с тем, что фигуры разной формы, вписанные в квадрат одного размера, воспринимаются человеческим глазом как неравные. Обычно в таких ситуациях дизайнеры начинают подгонять размеры на глаз. На самом деле, многие из таких преобразований можно делать не наугад, а используя понятные формулы. В статье разбирается несколько таких частых случаев.
Превью ТСА 1.0

Если вы используете ТСА, то пора бетатестить первую стабильную версию и оставлять команде фидбэк. Обратная совместимость в основном не сломана, но удалено много старого кода, поэтому что-то может отвалиться.
Книга The Swift Programming Language теперь публикуется с помощью DocC

DocC – инструмент для генерации спеки, документации и туториалов. Где-то полгода назад рабочая группа по документации Swift решила докрутить его, чтобы с его помощью можно было собирать и публиковать официальную книгу по синтаксису языка. Начиная со Swift 5.8 это стало возможным.

Почему это важная новость:
- Это отличный проект для догфудинга длинного контента. Например, в DocC ради книги добавили новую навигацию и ручной контроль над «See also».
- Контрибьютить в книгу может кто угодно. Если хотите что-то написать, разбирайте issues. Или, как вариант, подхватите перевод на русский язык.
This media is not supported in your browser
VIEW IN TELEGRAM
Алгоритм реалистичной анимации радара

Для реализации используется алгоритм «Шум Перлина». Интересный факт – за применение этого алгоритма при съемках «Трона» его автор получил Оскар.

Код на SwiftUI
Как генерировать консистеные палитры со случайными цветами

На прошлой неделе я делился записью подкаста про цветовые пространства. Если вам стало интересно, то можете продолжить знакомство с темой этой статьей. Автор рассказывает о недостатках RGB, и делится алгоритмом генерации палитр из подходящих друг другу цветов с помощью пространств HSL и LCh.

Перевод на русский язык
Судьба Fastlane

Начнем с предыстории. Когда-то у Twitter был замечательный сервис Fabric, в который входило распространение тестовых билдов, аналитика по крешам и перфомансу. В какой-то момент в команду Fabric наняли Felix Krause, основного ментейнера Fastlane. Не очень понятно, что в этот момент произошло с правами на IP, но основной идеей было дать Феликсу возможность фуллтайм работать над проектом, важным для всех разработчиков.

Спустя два года, Fabric был продан гуглу, которые интегрировали его в Firebase. В нагрузку к Fabric к ним перешел и Fastlane, причем уже, кажется, без Феликса.

Последствия этого решения начали отстреливать сейчас. Внутри Google Fastlane никому не нужен, его развитием занимается только несколько сторонних контрибьюторов на бесплатной основе. Получать донаты от других компаний за свою работу они не могут, ведь все права на проект принадлежат Google.

У сообщества появилась идея передать Fastlane в Mobile Native Foundation. К этому готовы и основной ментейнер проекта, и сам фонд. Основная проблема – найти в Google хоть кого-то, кто готов задрайвить принятие решения о переносе проекта. Пока, кажется, безуспешно.

upd: Процесс пошел
IceCube – опенсорсный клиент для Mastodon на SwiftUI

IceCube – один из лучших айосных клиентов для Мастодона по наполненности фичами, интерфейсу и удобству пользования им. Но что еще круче – он полностью бесплатный, а код приложения лежит в опенсорсе и активно допиливается айосным коммьюнити. Например, автор Pulse, про который я регулярно тут рассказываю, периодически закидывает PR по оптимизации перфоманса.

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

💻Проект на GitHub
VK Mini Apps в 3 раза увеличила выплаты за показ в приложениях баннерной рекламы.

Платформа стремится сделать всё, чтобы разработчики могли монетизировать свои проекты и зарабатывать на них. Новая технология ротации баннерной рекламы в опубликованных сервисах позволит легче интегрировать рекламу в мини-приложения и увеличит доход владельцев сервисов.

Объявления подбираются под аудиторию конкретного сервиса, рендерятся и отображаются с помощью инструментов VK Mini Apps. Также не нужно адаптировать элементы объявления вручную, как было раньше. Все очень удобно.
Heroku без предупреждения удаляет продакшн базы данных

А помните, был такой Heroku? Благодаря хорошо проработанному UX и бесплатным тарифам многие мобильщики использовали его для хостинга бэкенда своих проектов.

Полгода назад они решили изменить прайсинг и убить бесплатные тарифы. Причем сделали они это довольно не красиво, дав довольно мало времени на миграцию с сервиса.

А сейчас выяснилась еще одна проблема. Даже для платных инстансов могут удалить подключенную базу, причем без уведомлений об этом и без возможности восстановить ее. Поэтому, если у вас остаются проекты на Хероку, задумайтесь о переезде или хотя бы о бэкапе.
EditKit Pro – расширение для Xcode с поддержкой разных рефакторингов

Примеры фичей:
💅Beautify JSON
📐Разбитие длинной строки кода на мультилайн
👀Сортировка импортов или любого выделения по алфавиту
🤷Оборачивание в ifdef
📘Автооборачивание строк в NSLocalizedString
KMM глазами iOS разработчика

Команда автора статьи использует КММ для шаринга всей независимой от платформы бизнес-логики: запросов в сеть, парсинга и хранения данных, авторизации, валидации, работы со стейтом экранов.

Основные проблемы, с которыми сталкиваются у них iOS разработчики:

- Интероп Kotlin с Objective-C/Swift не всегда простой и очевидный.
- Для разработки требуется держать открытыми сразу несколько IDE, что повышает требования к железу.

Помимо проблем, в статье разбирается, как использование КММ влияет на архитектуру проекта, как проще всего прокидывать зависимости, реализовывать навигацию и дебажить проект.
Поддержка merge queues на GitHub

Больше не придется по несколько раз подливать main ветку и заново дожидаться прохождения всех проверок. Когда вы нажимаете кнопку «Merge», ваша ветка сравнивается не против main, а против main+всех остальных веток, которые висят в очереди перед вами.
Релиз VoiceOver Designer

Михаил Рубанов зарелизил инструмент для дизайна, прототипирования и тестирования accessibility.

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

🛒App Store
🎥Видео с историей создания
💻Код проекта

Если хотите получить промокод для стора, расскажите в комментариях, как вы организуете accessibility в ваших проектах. Миша отберет лучшие комменты и пришлет им промокоды!
В Xcode 14.3 пропадет совместимость с Rosetta

Если вы запускали Xcode в режиме совместимости с Rosetta, чтобы собирать старые Cocoapods зависимости на Apple Silicon, скоро у вас будут проблемы.
Как собрать XCFramework из Rust кода

В статье дается подробная инструкция по тому, как собрать Rust библиотеку для разных платформ и архитектур, собрать хэдеры и modulemap, завернуть это в XCFramework, подебажить его и подключить к своему проекту. Статья будет полезна и тем, кто хочет разобраться в структуре и принципах работы XCFramework в отрыве от Rust.
Почему Rust плохо подходит для работы с UI

Про Rust регулярно заходят разговоры в нашем чате, поэтому держите еще одну статью.

Несмотря на то, что Rust проникает практически везде – ядра операционных систем, браузеры и облака, UI проектов на Rust практически нет. При этом фреймворк для создания GUI – одна из самых часто запрашиваемых пользователями фичей. В статье разбирается, какие особенности языка делают работу с UI тяжелой, и как их можно обойти с помощью Elm или ECS like архитектур.
2024/09/30 10:26:35
Back to Top
HTML Embed Code: