Apple совсем забил на Catalyst
🐞Огромное количество багов, для решения которых нужны нетривиальные костыли.
🙅♀️Многие API, работающие и на iOS, и на macOS, недоступны в Catalyst.
🕵️♂️Системные приложения Apple, собранные на Catalyst, все еще очень плохо работают и выглядят.
😞Все эти проблемы не исправляются со временем, и в целом у технологии сильно ощущение заброшенности.
🐞Огромное количество багов, для решения которых нужны нетривиальные костыли.
🙅♀️Многие API, работающие и на iOS, и на macOS, недоступны в Catalyst.
🕵️♂️Системные приложения Apple, собранные на Catalyst, все еще очень плохо работают и выглядят.
😞Все эти проблемы не исправляются со временем, и в целом у технологии сильно ощущение заброшенности.
Новый способ привязывать действия к кнопкам в UIKit
Начиная с iOS 14, в UIKit появился новый API для привязки к кнопке действия. Вместо добавления таргета с селектором можно создать UIAction с нужным замыканием и передать его в конструкторе кнопки.
Начиная с iOS 14, в UIKit появился новый API для привязки к кнопке действия. Вместо добавления таргета с селектором можно создать UIAction с нужным замыканием и передать его в конструкторе кнопки.
Определение способности Core Data к легковесной миграции
При изменении модели данных в Core Data есть несколько вариантов развития событий:
- легковесная миграция, когда фреймворк сам все похэндлит
- полноценная миграция, которую надо писать вручную
- просто дропнуть все данные из базы, новые сохранять уже в новом формате
Второй способ самый трудозатратный, да еще и увеличивает размер бинаря со временем. Третий способ хорош для проектов, где в базе хранятся некритичные данные вроде кеша, но есть проблема. Если сбрасывать кеш при каждом обновлении, пользователи будут это замечать.
В статье разбирается, как с помощью приватного API можно получить доступ к русной проверке на возможность легковесной миграции, в результате чего можно дропать не весь кеш, а только ту его часть, которая не может быть автоматически смигрирована.
При изменении модели данных в Core Data есть несколько вариантов развития событий:
- легковесная миграция, когда фреймворк сам все похэндлит
- полноценная миграция, которую надо писать вручную
- просто дропнуть все данные из базы, новые сохранять уже в новом формате
Второй способ самый трудозатратный, да еще и увеличивает размер бинаря со временем. Третий способ хорош для проектов, где в базе хранятся некритичные данные вроде кеша, но есть проблема. Если сбрасывать кеш при каждом обновлении, пользователи будут это замечать.
В статье разбирается, как с помощью приватного API можно получить доступ к русной проверке на возможность легковесной миграции, в результате чего можно дропать не весь кеш, а только ту его часть, которая не может быть автоматически смигрирована.
Хабр
Учимся определять способность Core Data к легковесной миграции до загрузки контейнера
При создании приложения на основе фреймворка Core Data мы проектируем модель данных, в которую потом снова и снова вносим изменения. Неужели при этом каждый раз нужно удалять все данные и загружать их...
История консоли предыдущих билдов
Фича, которая всегда перед глазами, но вообще не очевидна. В истории предыдущих билдов можно перечитать все содержимое консоли.
Фича, которая всегда перед глазами, но вообще не очевидна. В истории предыдущих билдов можно перечитать все содержимое консоли.
Как пробовать фичи новых версий Swift до их релиза
В Swift 5.8 появился новый компиляторный флаг
Кроме того, эти фичи можно начать использовать, при этом сохраняя поддержку сборки проекта старым компилятором. Для этого вызов новых фичей надо оборачивать в директиву
Перевод на русский язык
В Swift 5.8 появился новый компиляторный флаг
-enable-upcoming-feature
. С его помощью можно активировать еще не выпущенные языковые фичи и посмотреть, как себя будет вести ваша кодовая база. Кроме того, эти фичи можно начать использовать, при этом сохраняя поддержку сборки проекта старым компилятором. Для этого вызов новых фичей надо оборачивать в директиву
#if hasFeature()
.Перевод на русский язык
Все модификаторы, меняющие цвет текста в SwiftUI
В SwiftUI есть несколько модификаторов, которые изменяют цвет текста – foregroundColor, foregroundStyle, tint. В статье разбираются их отличия друг от друга и контекст применения.
В SwiftUI есть несколько модификаторов, которые изменяют цвет текста – foregroundColor, foregroundStyle, tint. В статье разбираются их отличия друг от друга и контекст применения.
Nil Coalescing
Using foregroundColor(), foregroundStyle() or tint() to set text color in SwiftUI
Learn about different use cases for foregroundColor(), foregroundStyle() and tint() modifiers in SwiftUI to be able to choose the right API for the right purpose.
This media is not supported in your browser
VIEW IN TELEGRAM
Реализация пикера эмодзи для iOS
Автор статьи рассказывает, как реализовывал аналог системного macOS пикера эмодзи для iOS.
- Получение списка доступных эмодзи
- Вопросы обратной совместимости
- Тон кожи и двусоставные эмодзи
- Локализация
Библиотека, получившаяся в результате
Автор статьи рассказывает, как реализовывал аналог системного macOS пикера эмодзи для iOS.
- Получение списка доступных эмодзи
- Вопросы обратной совместимости
- Тон кожи и двусоставные эмодзи
- Локализация
Библиотека, получившаяся в результате
Swift Package Index теперь спонсируется Apple
Автор рассылки iOS Dev Weekly помимо нее занимается проектом Swift Package Index – реестром Swift зависимостей с автогенерацией документации и проверкой их совместимости. Проект изначально разрабатывался силами комьюнити, но теперь приобрел более официальный статус и получил спонсорство от Apple. Ну круто же!
Автор рассылки iOS Dev Weekly помимо нее занимается проектом Swift Package Index – реестром Swift зависимостей с автогенерацией документации и проверкой их совместимости. Проект изначально разрабатывался силами комьюнити, но теперь приобрел более официальный статус и получил спонсорство от Apple. Ну круто же!
Дайджест Swift Evolution за январь-февраль
Новый выпуск дайджеста, в котором автор подробно разбирает все языковые пропозалы, принятые за последнее время.
✅SE-0382: Expression Macros
✅SE-0383: Deprecate @UIApplicationMain and @NSApplicationMain
✅SE-0384: Importing Forward Declared Objective-C Interfaces and Protocols
Новый выпуск дайджеста, в котором автор подробно разбирает все языковые пропозалы, принятые за последнее время.
✅SE-0382: Expression Macros
✅SE-0383: Deprecate @UIApplicationMain and @NSApplicationMain
✅SE-0384: Importing Forward Declared Objective-C Interfaces and Protocols
Substack
Swift Evolution Monthly Jan + Feb '23
Expression Macros, Deprecate @UIApplicationMain, Forward Declared ObjC Interfaces, Swift 5.8 & 6 schedule
Отображение только измененных файлов в Xcode
Еще один небольшой хинт про работу в Xcode. Если вы готовите большой PR к ревью, может быть удобно в Project View видеть не все файлы, а только те, в которых были изменения. Для этого в интерфейсе есть специальная галочка, которую легко пропустить.
Перевод на русский язык
Еще один небольшой хинт про работу в Xcode. Если вы готовите большой PR к ревью, может быть удобно в Project View видеть не все файлы, а только те, в которых были изменения. Для этого в интерфейсе есть специальная галочка, которую легко пропустить.
Перевод на русский язык
Разбор неочевидных вопросов, связанных с релизами в App Store
Примеры вопросов:
- Какая версия приложения загружается теми, кто скачивает его в первый раз, если прямо сейчас раскатывается phased релиз?
- Можно ли катить новый релиз, пока предыдущий еще в процессе phased release?
- Можно ли обновить билд после того, как ревью пройдено, но до того, как релиз перешел в состояние Rwady for Sale?
Примеры вопросов:
- Какая версия приложения загружается теми, кто скачивает его в первый раз, если прямо сейчас раскатывается phased релиз?
- Можно ли катить новый релиз, пока предыдущий еще в процессе phased release?
- Можно ли обновить билд после того, как ревью пройдено, но до того, как релиз перешел в состояние Rwady for Sale?
GitHub
GitHub - tramlinehq/store-quirks: FAQs and gotchas around releasing apps to the App Store and Play Store
FAQs and gotchas around releasing apps to the App Store and Play Store - tramlinehq/store-quirks
Как работает цвет: от HEX до восприятия глазом
Топовый лонгрид на выходные, который закроет все пробелы в вашем понимании того, как работает цвет: электромагнитное излучение, цветовые пространства, колбочки в глазах, устройство пикселей экрана и многое другое.
Топовый лонгрид на выходные, который закроет все пробелы в вашем понимании того, как работает цвет: электромагнитное излучение, цветовые пространства, колбочки в глазах, устройство пикселей экрана и многое другое.
XCTest: Activities и Attachments
Пост про две фичи XCTest, которые полезны для написания UI тестов:
- Activity – группировка нескольких действий с приложением для более читаемых логов
- Attachment - прикрепление к логам дополнительного контекста, например, скриншота состояния экрана
Пост про две фичи XCTest, которые полезны для написания UI тестов:
- Activity – группировка нескольких действий с приложением для более читаемых логов
- Attachment - прикрепление к логам дополнительного контекста, например, скриншота состояния экрана
Детали миникарты в Xcode
Миникарта в большиестве случаев не особо помогает в навигации по файлу. Держите хинт, как сделать ее более полезной. Наведите на нее курсор, удерживая зажатым Cmd, и на ней появится дополнительный слой информации.
Миникарта в большиестве случаев не особо помогает в навигации по файлу. Держите хинт, как сделать ее более полезной. Наведите на нее курсор, удерживая зажатым Cmd, и на ней появится дополнительный слой информации.
Построение пайплайна из Metal шейдеров и CIFilter
Чтобы получить эффект анимированного дыма, автор смешивает семь шейдеров и фильтров в один пайплайн. Поиграться с последовательностью нод можно в опенсорсном проекте с несколькими разными пайплайнами.
Чтобы получить эффект анимированного дыма, автор смешивает семь шейдеров и фильтров в один пайплайн. Поиграться с последовательностью нод можно в опенсорсном проекте с несколькими разными пайплайнами.
Medium
Mixing and Digital Compositing Metal Shaders and CIFilter
This article explores the fun of mixing, chaining, and digital compositing photo Images, graphic Shaders (Apple Metal Shaders), and image…
VK поддержит разработчиков мини-приложений облачными ресурсами
Разработчики мини-приложений на платформе VK Mini Apps получили доступ к программе поддержки VK Cloud. Каждому участнику программы будет ежемесячно начисляться бонус в 2500 рублей на счет в личном кабинете, которые можно потратить на облачные сервисы и вычислительные ресурсы. Всего же на платформе доступно около 30 инфраструктурных и платформенных сервисов, а также современные инструменты для разработки отказоустойчивых приложений.
Программа действует до конца 2023 года. Для участия необходимо создать учетную запись на платформе VK Cloud и заполнить специальную форму, указав ID проекта.
Разработчики мини-приложений на платформе VK Mini Apps получили доступ к программе поддержки VK Cloud. Каждому участнику программы будет ежемесячно начисляться бонус в 2500 рублей на счет в личном кабинете, которые можно потратить на облачные сервисы и вычислительные ресурсы. Всего же на платформе доступно около 30 инфраструктурных и платформенных сервисов, а также современные инструменты для разработки отказоустойчивых приложений.
Программа действует до конца 2023 года. Для участия необходимо создать учетную запись на платформе VK Cloud и заполнить специальную форму, указав ID проекта.
Анонс WWDC 2023
Главная неделя всех iOS разработчиков в этом году пройдет 5-9 июня. Большая часть конференции пройдет в онлайне, но на кейноут и State of the Union можно попасть вживую.
Короче, ждем Swift Data и кучи обновлений для будущей xrOS!
Главная неделя всех iOS разработчиков в этом году пройдет 5-9 июня. Большая часть конференции пройдет в онлайне, но на кейноут и State of the Union можно попасть вживую.
Короче, ждем Swift Data и кучи обновлений для будущей xrOS!
Релиз Swift 5.8
- Новые языковые фичи, которые можно потрогать в плейграунде.
- Полностью переработана реализация result builder’ов.
- Документацию, собранную DocC, теперь можно кастомизировать.
- Парсер в SwiftSyntax переписан на С++ и научился показывать более понятные ошибки.
- Новые языковые фичи, которые можно потрогать в плейграунде.
- Полностью переработана реализация result builder’ов.
- Документацию, собранную DocC, теперь можно кастомизировать.
- Парсер в SwiftSyntax переписан на С++ и научился показывать более понятные ошибки.
Swift.org
Swift 5.8 Released!
Swift 5.8 is now officially released! 🎉 This release includes major additions to the language and standard library, including hasFeature to support piecemeal adoption of upcoming features, an improved developer experience, improvements to tools in the Swift…
DocCGPT – автоматическая документация для ваших пакетов
- DocCGPT – инструмент, который автоматически генерирует документацию для вашего кода с использованием моделей OpenAI.
- Особой разницы между GPT-3.5 и GPT-4 не видно.
- Инструмент пока экспериментальный, результаты надо докручивать руками – но попробовать уже точно стоит!
Перевод на русский язык
- DocCGPT – инструмент, который автоматически генерирует документацию для вашего кода с использованием моделей OpenAI.
- Особой разницы между GPT-3.5 и GPT-4 не видно.
- Инструмент пока экспериментальный, результаты надо докручивать руками – но попробовать уже точно стоит!
Перевод на русский язык
The Swift Package Index
DoccGPT – Swift Package Index
DoccGPT by Gonzalo Nuñez on the Swift Package Index – 🧹 Self-documenting Swift code with GPT and DocC
CoreTransferrable и ShareLink
В последней версии SwiftUI появился новый подход для шаринга данных из приложения – ShareLink. Это вьюха, на вход которой можно отдать любую структуру, реализующую протокол Transferable. Этот протокол поддержан во многих системных типах данных, например, в изображениях. А при желании, реализовать его можно и в кастомных типах.
Перевод на русский язык
В последней версии SwiftUI появился новый подход для шаринга данных из приложения – ShareLink. Это вьюха, на вход которой можно отдать любую структуру, реализующую протокол Transferable. Этот протокол поддержан во многих системных типах данных, например, в изображениях. А при желании, реализовать его можно и в кастомных типах.
Перевод на русский язык
Swift with Majid
Sharing content in SwiftUI
Apple introduced a brand new CoreTransferable framework and ShareLink view in SwiftUI, allowing us to share and export content from our apps very declaratively. This week we will learn how to make data transferable and use the new ShareLink view in SwiftUI.