
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.



