bootg.com »
United States »
iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT » Telegram Web
SwiftUI Tips & Tricks
Пополняющийся тред из 20+ не самых очевидных советов по работе со SwiftUI. Вот некоторые из них:
-
- В любую функцию можно передать
- Если вам нужно быстро создать
Пополняющийся тред из 20+ не самых очевидных советов по работе со SwiftUI. Вот некоторые из них:
-
lineLimit
у Text
можно задавать не одним числом, а интервалом. Тогда компонент высота компонента будет всегда не меньше нижней границы, и не больше верхней.- В любую функцию можно передать
#file
, #line
, #function
в качестве параметров – и использовать их в логах, чтобы понять, откуда была вызвана функция.- Если вам нужно быстро создать
TextField
, чтобы что-то проверить, можно не передавать ему Binding, а инициализировать его с .constant(“Text”)
.Что нового в Swift 5.9
👉
👉Можно писать макросы, которые исполняются во время компиляции
👉Структуры и enum’ы, которве нельзя копировать, а можно только передавать по ссылке
👉Новый оператор
В статье очень детально разбираются эти и другие новые фичи. Идеальный материал, чтобы подготовиться к WWDC!
👉
if
и switch
теперь можно использовать при присвоении значения переменной или для возврата значения из функции👉Можно писать макросы, которые исполняются во время компиляции
👉Структуры и enum’ы, которве нельзя копировать, а можно только передавать по ссылке
👉Новый оператор
consume
, который копирует значение переменной и уничтожает ееВ статье очень детально разбираются эти и другие новые фичи. Идеальный материал, чтобы подготовиться к WWDC!
Hacking with Swift
What’s new in Swift 5.9?
Macros, if and switch expressions, noncopyable types, and more!
This media is not supported in your browser
VIEW IN TELEGRAM
Реплика системного блюра на CAFilter
Разработчик зареверсинжинирил реализацию блюра и повторил его, используя приватные API. Есть возможность обойтись и без них, перейдя на SceneKit и Metal шейдеры, но качество будет чуть хуже.
Код на GitHub
Разработчик зареверсинжинирил реализацию блюра и повторил его, используя приватные API. Есть возможность обойтись и без них, перейдя на SceneKit и Metal шейдеры, но качество будет чуть хуже.
Код на GitHub
Опубликован вижн интеропа Swift -> C++
Интероп Swift и C++ состоит из двух частей:
- Вызов Swift из C++ кода (этот пропозал уже давно опубликован и принят)
- Вызов C++ из Swift (вот ему и посвящен этот документ)
В пропозале разбираются цели такого интеропа, сложности его реализации и то, как предполагается подружить основные концепции из двух языков друг с другом с учетом гораздо более сильных гарантий, которые дает Swift.
Интероп Swift и C++ состоит из двух частей:
- Вызов Swift из C++ кода (этот пропозал уже давно опубликован и принят)
- Вызов C++ из Swift (вот ему и посвящен этот документ)
В пропозале разбираются цели такого интеропа, сложности его реализации и то, как предполагается подружить основные концепции из двух языков друг с другом с учетом гораздо более сильных гарантий, которые дает Swift.
GitHub
swift-evolution/visions/using-c++-from-swift.md at main · swiftlang/swift-evolution
This maintains proposals for changes and user-visible enhancements to the Swift Programming Language. - swiftlang/swift-evolution
Подборка анонсов с WWDC
Пока я жду появления подробных статей с разбором всех анонсов, держите несколько отдельных штук, которые мне показались очень крутыми:
👉В SwiftUI можно применять Metal шейдеры к любым вьюхам
👉Благодаря макросам синтаксис для объявления Preview стал очень простым и читаемым
👉А еще Preview теперь работают для AppKit и UIKit
👉В SwiftUI есть новый компонент для готового экрана с пэйволлом
👉В SFSymbols появилась поддержка анимированных иконок, причем анимировать можно слои по отдельности
👉Xcode зашерлочил SwiftGen и генерирует символы для цветов и картинок автоматически
👉Ну и, конечно, Swift Data – замена Core Data, которую я предсказывал каждый год уже пять лет
Пока я жду появления подробных статей с разбором всех анонсов, держите несколько отдельных штук, которые мне показались очень крутыми:
👉В SwiftUI можно применять Metal шейдеры к любым вьюхам
👉Благодаря макросам синтаксис для объявления Preview стал очень простым и читаемым
👉А еще Preview теперь работают для AppKit и UIKit
👉В SwiftUI есть новый компонент для готового экрана с пэйволлом
👉В SFSymbols появилась поддержка анимированных иконок, причем анимировать можно слои по отдельности
👉Xcode зашерлочил SwiftGen и генерирует символы для цветов и картинок автоматически
👉Ну и, конечно, Swift Data – замена Core Data, которую я предсказывал каждый год уже пять лет
X (formerly Twitter)
Janum Trivedi on X
Woah, SwiftUI in iOS 17 adds support for applying Metal shaders onto arbitrary views.
This would make it possible to create really custom visual effects, new blurs/materials, mesh transforms, all sorts of crazy stuff!
https://t.co/L0m970BDiS
This would make it possible to create really custom visual effects, new blurs/materials, mesh transforms, all sorts of crazy stuff!
https://t.co/L0m970BDiS
Расшифровки сессий на WWDC Notes
Самое время напомнить вам про офигенный ресурс от коммьюнити – WWDC Notes. Ребята смотрят сессии и превращают их в статьи, выделяя все самое важное. В этом году они обещают расшифровать 80% сессий в течение первой недели!
Самое время напомнить вам про офигенный ресурс от коммьюнити – WWDC Notes. Ребята смотрят сессии и превращают их в статьи, выделяя все самое важное. В этом году они обещают расшифровать 80% сессий в течение первой недели!
Новый линкер в пять раз быстрее ld64
На WWDC показали новый линкер. Он написан в Apple с нуля и оптимизирован для работы на нескольких ядрах. Это первый продакшн-реди параллельный линкер, доступный для iOS разработки.
На WWDC показали новый линкер. Он написан в Apple с нуля и оптимизирован для работы на нескольких ядрах. Это первый продакшн-реди параллельный линкер, доступный для iOS разработки.
X (formerly Twitter)
Davide Italiano on X
Today at WWDC we introduced a new static linker. It is a ground-up rewrite that’s up to 5x faster than ld64. The new linker is written with multicore in mind, and it’s the first production ready parallel linker officially supported for iOS development. (1/n)
Что нового в UIKit
Каждый год на WWDC все меньше апдейтов для UIKit. В этом году вот так:
👉Новый класс
👉Поддержка Xcode Preview, у которых еще и новый синтаксис на макросах появился
👉Поддержка анимаций в SFSymbols, добавленных как элемент кнопки или как ImageView
👉Новые типы шрифтов: большой и очень большой
👉Новые типы автозаполнения для UITextField: для дня рождения и даты окончания действия карты
Каждый год на WWDC все меньше апдейтов для UIKit. В этом году вот так:
👉Новый класс
UIContentUnavailableView
для отображения пустого стейта👉Поддержка Xcode Preview, у которых еще и новый синтаксис на макросах появился
👉Поддержка анимаций в SFSymbols, добавленных как элемент кнопки или как ImageView
👉Новые типы шрифтов: большой и очень большой
👉Новые типы автозаполнения для UITextField: для дня рождения и даты окончания действия карты
Swiftjective-C
iOS 17: Notable UIKit Additions
iOS 17 is out in the wild! As always, let's check in with our mature interface framework, UIKit.
This media is not supported in your browser
VIEW IN TELEGRAM
Динамическое меню в трее на macOS
Отличный разбор API NSStatusItem, с помощью которого можно создать меню с динамическим размером и контентом, кастомным бэкграундом и поддержкой нескольких разных таргетов для нажатий.
Отличный разбор API NSStatusItem, с помощью которого можно создать меню с динамическим размером и контентом, кастомным бэкграундом и поддержкой нескольких разных таргетов для нажатий.
This media is not supported in your browser
VIEW IN TELEGRAM
Офер в Яндекс за два дня
Приходите на Weekend Offer Mobile 17–18 июня. Всего за 2 дня можно пройти все технические секции, пообщаться с нанимающими командами и получить офер.
Ребята ищут мобильных разработчиков на iOS, Android и Flutter с опытом от 3 лет. Приглашают в один из своих офисов в России и Беларуси, также нанимают в международные хабы в Армении, Казахстане и Сербии.
Регистрация заканчивается 12 июня.
Подробности ищите здесь
Приходите на Weekend Offer Mobile 17–18 июня. Всего за 2 дня можно пройти все технические секции, пообщаться с нанимающими командами и получить офер.
Ребята ищут мобильных разработчиков на iOS, Android и Flutter с опытом от 3 лет. Приглашают в один из своих офисов в России и Беларуси, также нанимают в международные хабы в Армении, Казахстане и Сербии.
Регистрация заканчивается 12 июня.
Подробности ищите здесь
Все анонсы WWDC
Apple собрали документацию по всем новым фреймворкам и API на одной странице. А отдельно можно скачать кучу семплов, которые показывали в сессиях.
Apple собрали документацию по всем новым фреймворкам и API на одной странице. А отдельно можно скачать кучу семплов, которые показывали в сессиях.
Apple Developer Documentation
WWDC23 | Apple Developer Documentation
Highlights of new technologies introduced at WWDC23.
Интеграция ChatGPT и Xcode
Экспериментальный экстеншн для Xcode, который использует ChatGPT для генерации кода по инструкциям, комментариев к нему, рефакторинга кода и других фичей. Можно добавлять и свои собственные команды.
Экспериментальный экстеншн для Xcode, который использует ChatGPT для генерации кода по инструкциям, комментариев к нему, рефакторинга кода и других фичей. Можно добавлять и свои собственные команды.
Reddit
From the iOSProgramming community on Reddit: I’ve created a ChatGPT integration for Xcode
Explore this post and more from the iOSProgramming community
Главные обновления SwiftUI
👉Больше никакого Combine, вместо него для полписки на изменения используется новый фреймворк Observation.
👉Анимациям теперь можно добавлять completion handler’ы и анимировать изменения по кейфреймам.
👉У ScrollView можно следить за изменением оффсета с помощью модификатора.
👉Можно программно ставить фокус в поле поиска, а также прятать и показывать его.
👉Новые жесты: rotate и magnify.
👉Больше никакого Combine, вместо него для полписки на изменения используется новый фреймворк Observation.
👉Анимациям теперь можно добавлять completion handler’ы и анимировать изменения по кейфреймам.
👉У ScrollView можно следить за изменением оффсета с помощью модификатора.
👉Можно программно ставить фокус в поле поиска, а также прятать и показывать его.
👉Новые жесты: rotate и magnify.
Swift with Majid
What is new in SwiftUI after WWDC 23
WWDC 23 is here, so many things have changed and been added to the SwiftUI framework. In this post, you can find the summary of the most significant SwiftUI features available in the 5th iteration of the framework.
This media is not supported in your browser
VIEW IN TELEGRAM
Отражение источников света
Интерфейс Vision Pro учитывает источники освещения и слегка отражает их от своей поверхности. Вот пример того, как можно реализовать похожий эффект на SwiftUI, считывая источники освещения с камеры.
Интерфейс Vision Pro учитывает источники освещения и слегка отражает их от своей поверхности. Вот пример того, как можно реализовать похожий эффект на SwiftUI, считывая источники освещения с камеры.
Автоматическая генерация символов для цветов и картинок в ассетах
Моя любимая фича нового Xcode – автоматическая генерация констант для цветов и картинок, которые находятся в ассетах. В качестве названия константы используется имя, которое вы задали в каталоге.
Если вы решите отключить их генерацию, используйте флаг
Моя любимая фича нового Xcode – автоматическая генерация констант для цветов и картинок, которые находятся в ассетах. В качестве названия константы используется имя, которое вы задали в каталоге.
Если вы решите отключить их генерацию, используйте флаг
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS
в build settings.Официальный дизайн-кит в Figma от Apple
Начиная с 2017 года, в дизайн-команде Apple крутилась идея опубликовать официальный дизайн-кит в Figma. Спустя пять лет, он наконец появился!
- Куча компонентов, от алертов и уведомлений до навигации
- Шаблоны виджетов
- Макеты поддерживают Dynamic Type
- Встроенные стандартные настройки цветов, стилей и материалов
Дизайн-кит будет постоянно дополняться. Скоро там появится поддержка iOS 17, и компоненты из macOS, tvOS, watchOS и visionOS.
Начиная с 2017 года, в дизайн-команде Apple крутилась идея опубликовать официальный дизайн-кит в Figma. Спустя пять лет, он наконец появился!
- Куча компонентов, от алертов и уведомлений до навигации
- Шаблоны виджетов
- Макеты поддерживают Dynamic Type
- Встроенные стандартные настройки цветов, стилей и материалов
Дизайн-кит будет постоянно дополняться. Скоро там появится поддержка iOS 17, и компоненты из macOS, tvOS, watchOS и visionOS.
Как реализованы расширения для Raycast
Raycast – это такой Spotlight на стероидах. Одна из основных отличающих его фичей – богатый каталог расширений от коммьюнити.
В статье рассказывается, как команда проектировала и реализовывала поддержку расширений для нативного приложения, какие варианты попробовала, и на какие компромиссы в итоге пошла.
Raycast – это такой Spotlight на стероидах. Одна из основных отличающих его фичей – богатый каталог расширений от коммьюнити.
В статье рассказывается, как команда проектировала и реализовывала поддержку расширений для нативного приложения, какие варианты попробовала, и на какие компромиссы в итоге пошла.
Raycast
How the Raycast API and extensions work - Raycast Blog
Learn more about how we built the Raycast API and how it works under the hood
Introspect – библиотека для доступа к внутренним вьюхам SwiftUI
Introspect позволяет обращаться к внутренним UIKit элементам, находящимся под капотом у большинства компонентов SwiftUI. Это нужно, чтобы изменять свойства, которые не видны из SwiftUI напрямую. Например, убрать сепараторы в таблице, или добавить RefreshControl к ScrollView.
Библиотеку безопасно использовать в проде, так как она не обращается к приватным API.
Introspect позволяет обращаться к внутренним UIKit элементам, находящимся под капотом у большинства компонентов SwiftUI. Это нужно, чтобы изменять свойства, которые не видны из SwiftUI напрямую. Например, убрать сепараторы в таблице, или добавить RefreshControl к ScrollView.
Библиотеку безопасно использовать в проде, так как она не обращается к приватным API.