
Apple Pencil
превратил iPad
в мощный инструмент для создания заметок и творческого самовыражения. А как насчет превращения рукописных каракулей в пригодный для использования цифровой текст? Для разработчиков SwiftUI
фреймворк Vision
от Apple
предлагает надежное решение на устройстве для оптического распознавания символов (OCR), которое бесшовно интегрируется с PencilKit
, чтобы оживить распознавание рукописного ввода.
Итак, PencilKit
— для ввода рукописного текста, Vision
— для его распознавания, SwiftUI — для UI.
Код находится на GitHub.
Волшебство происходит благодаря сотрудничеству двух основных фреймворков Apple
:
- PencilKit (PKCanvasView): этот фреймворк предоставляет доску для рисования. Она позволяет пользователям писать и делать наброски естественным образом с помощью
Apple Pencil
или пальца, фиксируя эти данные какPKDrawing
данные — векторное представлениеStrokes
. - Vision (VNRecognizeTextRequest): как только рукописный текст захвачен,
Vision
берет управление на себя.VNRecognizeTextRequest
специально разработан для анализа изображений и идентификации текстового контента, включая сложный рукописный текст.
“Мост” между двумя Мирами: внедрение PKCanvasView в SwiftUI
Поскольку PKCanvasView
является компонентом UIKit
, для его интеграции в SwiftUI
приложение требуется UIViewRepresentable
. Эта структура действует как жизненно важный “мост”, позволяя SwiftUI
управлять и отображать UIKit Views
. Класс class
Coordinator
обычно сопровождает UIViewRepresentable
для взаимодействия с методами делегатов из PKCanvasView
, в частности, canvasViewDrawingDidChange(_:),
который сигнализирует о том, что пользователь обновил рисунок drawing
.