UIBezierPath.
@iOS Dev
iOS разработчик, который делится фишками, своим опытом и опытом других. В этом канале вы сможете найти истории из жизни, подходы к реализации а также новости и тренды из мира iOS-разработки Авторский канал, iOS разработка
UIBezierPath.
@iOS DevRoomPlan распознает особенности помещения, мебель и технику, например, камин, кровать или холодильник, и передаёт данные в приложение.
Для захвата используется RoomCaptureView. Есть виртуальные подсказки по мере перемещения по комнате:
⚪ Графические наложения в реальном времени отображаются поверх объектов в комнате, чтобы передать ход сканирования.
⚪ Если фреймворк требует определенного вида движения или ракурса, UI покажет инструкции, как расположить устройство.
🛠 Пример кода (нужен Xcode 14).
@iOS DevDispatchWorkItem инкапсулирует работу, которая должна быть выполнена в очереди диспетчеризации или в группе диспетчеризации. Его также можно использовать в качестве обработчика события, регистрации или отмены DispatchSource.
@iOS DevFileManager, что выглядело довольно громоздко.
🙂 Теперь мы можем получать пути к системным папкам непосредственно из свойств URL.
Например, чтобы получить URL каталога документов, мы можем прочитать свойство URL.documentsDirectory
@iOS DevStoreKit, а точнее, с SKOverlay.
Ниже пример (можете написать свой):
func displayOverlay() {
guard let scene = view.window?.windowScene else { return }
let config = SKOverlay.AppConfiguration(appIdentifier: "APP_ID", position: .bottom)
let overlay = SKOverlay(configuration: config)
config.userDismissible = false
overlay.present(in: scene)
}
В этом коде APP_ID — числовой идентификатор в аппстор.
One more thing, если баннер не должен скрываться по свайпу:
config.userDismissible = false
Специально для @iOS Dev.UIViewControllerRepresentable для обертывания PHPickerViewController или его старой версии UIImagePickerController.
Также приложению не нужно запрашивать доступ к библиотеке, чтобы использовать его.
Кстати, из крутых фишек, пикер автоматически выберет оптимальный макет в зависимости от платформы, конфигурации и доступного пространства экрана. Не нужно беспокоиться о пользовательском интерфейсе, а время можно потратить на улучшение приложения.
Для внедрения нужны два шага:
1️⃣ Использовать PhotosPicker для получения одного или нескольких экземпляров PhotosPickerItem.
2️⃣ Загрузить данные об объекте с помощью PhotosPickerItem.loadTransferable.catch и на этом закончить, но не все ошибки одинаковы, и вы должны относиться к ним именно так.
👍 Изучив различные способы перехвата такого рода ошибок, вы сможете создавать грамотные выражения catch. Они будут легко читаться, пониматься и соответствовать потребностям вашего вашего приложения.
📖 В этой статье автор рассматривает различные способы перехвата из throw-функций. Кроме этого, описываются типы этих функций и разбирается, что в них используется для разделения каждого catch.find . -path ./Pods -prune -o -name '*.swift' -print0 ! -name '/Pods' | xargs -0 wc -l
Это не всё! Если вы хотите большего, то с помощью этой утилиты можно по фану определить стоимость кода в проекте💰.