iOS Broadcast
3.31K subscribers
1.69K photos
84 videos
971 links
Подборка новостей и статей для iOS разработчиков.

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @android_broadcast_bot
Download Telegram
Создаем виджеты для экрана блокировки на SwiftUI

Реализовать виджет для экрана блокировки несложно, поскольку его API использует тот же код, что и виджеты домашнего экрана. Нужно добавить обработку кейсов accessoryInline, accessoryCircular, accessoryCorner, accessoryRectangular для разных видов виджетов на iOS, WatchOS

#swiftUI #iOS16
🔥9👎1
Apple застолбила бренды для своих гарнитур смешанной реальности

Apple начала процесс регистрации брендов и товарных знаков: Reality One, Reality Pro, Reality Processor

 #apple
🔥7👍1👎1
Handling multiple caches in App (4 мин)

Вариант имплементации кэширования для разных типов данных:
👉 Слой utils состоит из сущностей, которые реализуют протоколы для получения данных
👉 Assets Manager - посредник между слоем utils и хранилищами. Главной целью является сопоставление типа кэширования и хранилища
👉 На уровне Caching Layer располагаются все хранилища. Работа происходит только с сырыми данными абстрактно от типа

#architecture
👍2👎1🔥1
SwiftUI, How to create BlurEffect. Introducing 2 ways

Два способа создания эффекта blur в помощью SwiftUI:
👉 С помощью модификатора .blur
👉 Через UIViewRepresentable, если нужно больше возможностей для кастомизации

#swiftUI
👍4👎1
Готов ли Kotlin Multiplatform к проду на iOS?

Kotlin Multiplatform уже несколько лет широко используется в продакшен приложениях. Насколько готов Kotlin Multiplatform к проду на iOS? Несмотря на сложности с отладкой, отсутствие поддержки аргументов по умолчанию, исчерпывающих перечислений (enum'ов), Codable и некоторые другие проблемы, KMP можно разворачивать со следующими условиями:

👉 Используйте его с осторожностью: нет необходимости идти ва-банк с KMP. Можно попробовать обкатать на небольшом модуле
👉 Общие компоненты: скорее всего, ваша цель использования KMP состоит в том, чтобы обмениваться компонентами между платформами, поэтому начните с них
👉 Помните о версиях: JetBrains поддерживает сайт со стабильностью Kotlin Components, некоторые компоненты Kotlin/Native являются бета-версиями. Определите, достаточно ли стабильности KMP для вашей организации

#crossplatform
👍7👎2
Документация Apple по Dynamic Island

Как добавить Live Activities в приложение:
👉 Создаем widget extension для приложения (WidgetKitCreating a Widget Extension)
👉 Добавляем Supports Live Activities: YES в Info.plist
👉 Добавляем структуру ActivityAttributes чтобы описать статический и динамический контент Live Activity
👉 Создаем ActivityConfiguration на основе ActivityAttributes
👉 Конфигурируем начало, обновление и конец Live Activity

Доступно с Xcode 14.1

#iOS16
🔥15👎1
AttributedString, a better way to handle attributed strings in iOS 15 (2 мин)

С iOS 15 на замену NSAttributedString приходит AttributedString. В скринах пример кода для цветной строки с подчеркиванием, выделение range и markdown

#swift
👏5👎1
Data flow in SwiftUI (4 мин)

На схеме случаи использования Binding, ObservableObject, StateObject, ObservedObject, EnvironmentObject

#swiftUI
👍5👎1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
SwiftUI Advanced Animation: Morphing Shapes (4 мин)

Если две стадии анимации представлены объектами, соответствующими протоколу VectorArithmetic, SwiftUI может высчитать промежуточные состояния и отрисовать переход.

Концептуально создание пузырька из лавовой лампы выглядит так:
👉 Создаем AnimatableVector: VectorArithmetic. Библиотека Accelerate используется для быстрых вычислений
👉 Делим круг на несколько дуг, радиус каждой из которых будет меняться независимо от других (пример в гифке)

#swiftUI
🔥6👎1
How to Show/hide whitespace characters in Xcode

Если вы работаете с CSV, YAML или ваш Linter ругается на пробелы, на скрине небольшой лайфхак, как их отобразить в Xcode

#xcode
🔥6👎1
What’s New in SwiftUI 4 for iOS 16 (12 мин)

Что нового в SwiftUI iOS 16?
🔥 SwiftUI Charts - компонент для графиков
🔥 Resizable Bottom Sheet - нижняя шторка
🔥 MultiDatePicker - выбор дат
🔥 NavigationStack и NavigationSplitView для улучшенной навигации
🔥 ShareLink - "поделиться"
🔥 Table for iPadOS - таблицы на iPad
🔥 Expandable Text Field - поле для ввода текста
🔥 Gauge - отображение прогресса
🔥 ViewThatFits - автоматическое вычисление размера для верстки
🔥 Gradient and Shadow - градиенты и тени
🔥 Grid API - верстка для сетки
🔥 AnyLayout and Layout Protocol - кастомные лейауты

#swiftUI
🔥4👎1