Создание текстового редактора

Создание текстового редактора

25.12.2020
# Для_разработчиков Разработка
Author avatar
Александр СавлукiOS разработчик

Часто разработчики сталкиваются с необходимостью создания тестовых проектов для демонстрации своей компетенции. Одним из наиболее распространённых вариантов тестирования является создание текстового редактора – приложения, подобного блокноту, так как при его разработке можно продемонстрировать как обработку ввода/вывода данных, так и работу с хранилищем.

Итак, рассмотрим в качестве примера разработку приложения, реализующего функционал стандартных “Заметок” для iOS платформы. Среди его основных особенностей можно выделить:

  • синхронизацию информации с помощью облачного хранилища;
  • функцию форматирования текста;
  • а также создание списков с различными маркерами и чек-листов.

Выбор облачного хранилища

Для реализации хранилища, пожалуй, наиболее оптимальным решением является использование базы данных Cloud Firestore. Эта NoSQL база, разработанная компанией Google, обеспечивает синхронизацию данных, кэширование и работу в условиях нестабильного интернет соединения или в оффлайн режиме. Такой подход позволяет сосредоточиться на разработке функционала редактора заметок.

Создание текстового редактора

Форматирование списков и чек-листов

Прежде всего, главную сложность при разработке редактора подобного “Заметкам” iOS представляет функция создания форматированных списков и чек-листов. В частности, в нашем случае было нужно реализовать механизм распознавания списков в тексте и элемент интерфейса, выполняющий функции чек-бокса.

Создание текстового редактора

Так, для обработки текстовых данных используется подкласс NSTextStorage. Он позволяет реализовать необходимый функционал для работы с форматированными строками – NSMutableAttributedString.

Для форматирования списков было принято решение использовать регулярные выражения. Например, реализованы функции вставки маркеров списка, обнаружения начала нового списка и продолжения существующего.

Создание текстового редактора

Для архитектуры приложения был выбран паттерн MVVM. Использовался подкласс UITextView для редактирования вводимого текста до его отображения.

Для редактирования вводимого текста используется NSTextStorage, а также делегат UITextViewDelegate. Он помогает избегать багов, появляющиеся из-за переопределения методов NSTextStorage вместе с использованием автоисправления и автоматической замены строчных букв на заглавные.

Полученный результат можно увидеть на фото ниже. Простой и ненавязчивый дизайн позволяет записывать информацию и создавать маркированные, нумерованные списки и чек-листы.

Создание текстового редактора

Как можно увидеть, разработка текстового редактора не представляет из себя сложную задачу. Однако она показывает уровень компетенции разработчика и степень владения основными необходимыми знаниями и навыками.

Author avatar
Александр СавлукiOS разработчик
Поделись статьей в соцмедиа:
Рекомендуемые статьи
Сколько стоит заказная разработка мобильного приложения

Сколько стоит заказная разработка мобильного приложения

Сколько стоит заказная разработка мобильного приложения

Сколько стоит заказная разработка мобильного приложения

Сколько стоит заказная разработка мобильного приложения

Сколько стоит заказная разработка мобильного приложения

Joy Dev в топе рейтинга Tagline 2023 среди лучших IT-компаний России

Joy Dev в топе рейтинга Tagline 2023 среди лучших IT-компаний России

Joy Dev в топе рейтинга Tagline 2023 среди лучших IT-компаний России

Joy Dev в топе рейтинга Tagline 2023 среди лучших IT-компаний России

Joy Dev в топе рейтинга Tagline 2023 среди лучших IT-компаний России

Joy Dev в топе рейтинга Tagline 2023 среди лучших IT-компаний России

Призовое место “Real Cosmetology” в конкурсе Золотое Приложение

Призовое место “Real Cosmetology” в конкурсе Золотое Приложение

Призовое место “Real Cosmetology” в конкурсе Золотое Приложение

Призовое место “Real Cosmetology” в конкурсе Золотое Приложение

Призовое место “Real Cosmetology” в конкурсе Золотое Приложение

Призовое место “Real Cosmetology” в конкурсе Золотое Приложение

Золото в конкурсе Workspace Digital Awards 2023

Золото в конкурсе Workspace Digital Awards 2023

Золото в конкурсе Workspace Digital Awards 2023

Золото в конкурсе Workspace Digital Awards 2023

Золото в конкурсе Workspace Digital Awards 2023

Золото в конкурсе Workspace Digital Awards 2023

Хронофаги и как их усмирить

Хронофаги и как их усмирить

Хронофаги и как их усмирить

Хронофаги и как их усмирить

Хронофаги и как их усмирить

Хронофаги и как их усмирить

Шаг за шагом: настройка окружения для Kotlin Multiplatform Mobile

Шаг за шагом: настройка окружения для Kotlin Multiplatform Mobile

Шаг за шагом: настройка окружения для Kotlin Multiplatform Mobile

Шаг за шагом: настройка окружения для Kotlin Multiplatform Mobile

Шаг за шагом: настройка окружения для Kotlin Multiplatform Mobile

Шаг за шагом: настройка окружения для Kotlin Multiplatform Mobile

Cофт скилы: как получать больше за красивые глаза

Cофт скилы: как получать больше за красивые глаза

Cофт скилы: как получать больше за красивые глаза

Cофт скилы: как получать больше за красивые глаза

Cофт скилы: как получать больше за красивые глаза

Cофт скилы: как получать больше за красивые глаза