Клиент обратился с задачей создать простое мобильное приложение для Android, которое заменит офисный сканер в повседневных ситуациях. Основная проблема: пользователям регулярно нужно оцифровывать бумажные документы — чеки, договоры, справки, заявления, учебные материалы — но у многих нет под рукой сканера, а существующие решения либо перегружены рекламой и подписками, либо требуют регистрации и загрузки файлов в облако.
Задача клиента
Разработать офлайн-сканер документов, который позволит:
снимать документы камерой телефона с автоматическим определением границ и обрезкой;
импортировать готовые фото из галереи;
улучшать качество изображений (контраст, яркость, фильтры);
собирать несколько страниц в один документ;
экспортировать результат в PDF и отправлять через стандартное меню «Поделиться»;
хранить все сканы локально на устройстве без передачи данных на сервер.
Цели клиента:
Удобство — пользователь должен открыть приложение, нажать «Сканировать» и за несколько секунд получить читаемый документ без сложных настроек.
Качество — результат должен быть пригоден для отправки по почте, в мессенджер или для печати: ровные края, исправленная перспектива, читаемый текст.
Конфиденциальность — документы часто содержат личные данные, поэтому клиент настаивал на полностью локальном хранении без облака, аккаунтов и аналитики.
Доступность — приложение должно быть бесплатным, без рекламы и встроенных покупок, чтобы им могли пользоваться студенты, сотрудники малого бизнеса и частные лица.
Публикация в магазинах — готовый продукт для размещения в RuStore и Google Play с понятным описанием, политикой конфиденциальности и материалами для модерации.
Ограничения и требования
Платформа: Android (телефоны и планшеты).
Минимальный набор разрешений: только камера и доступ к фото для импорта.
Без записи аудио, без лишних системных разрешений.
Интерфейс на русском языке, понятный с первого запуска.
Работа без интернета после установки.
Готовое приложение DocScan: пользователь фотографирует или импортирует документ, при необходимости улучшает изображение, сохраняет его в библиотеку приложения и при необходимости экспортирует в PDF. Все данные остаются на телефоне. Приложение готово к публикации и использованию в повседневных задачах — от сканирования чека до подготовки многостраничного PDF-документа.
Для решения задачи я прошёл путь от проектирования до готового продукта, опубликованного в магазинах приложений.
1. Анализ и проектирование
Изучил требования клиента и разделил продукт на ключевые сценарии: сканирование камерой, импорт из галереи, улучшение изображения, сохранение документа, экспорт в PDF. Спроектировал навигацию из четырёх экранов — главный список, сканер, предпросмотр и просмотр документа — чтобы пользователь проходил путь «снял → улучшил → сохранил → отправил» за несколько шагов.
2. Выбор технологий
Выбрал React Native с Expo — это позволило быстро собрать Android-приложение и использовать готовые модули для камеры, файловой системы и шаринга. Для автосканирования подключил react-native-document-scanner-plugin с определением границ документа и коррекцией перспективы. Локальное хранение реализовал через AsyncStorage (метаданные) и файловую систему устройства (изображения).
3. Реализация сканирования
Добавил три режима сканирования — «Документ», «Удостоверение» и «Чек» — с разными настройками качества и лимитом страниц. Нативный сканер автоматически обрезает края и выравнивает перспективу. Параллельно реализовал импорт из галереи с запросом разрешения перед доступом к фото и поддержкой выбора нескольких изображений сразу.
4. Обработка изображений
Разработал модуль улучшения качества: авто-контраст, ручная настройка яркости и контраста, фильтры «Документ», «Ч/Б» и «Цветной». Добавил конвертацию PNG, WEBP и content:// URI в JPEG, чтобы импорт из галереи работал стабильно на разных устройствах Android.
5. Хранение и экспорт
Все документы сохраняются только на телефоне — без облака, аккаунтов и серверов. Реализовал многостраничные документы, миниатюры для списка и удаление вместе с файлами. Экспорт в PDF собирается через HTML-шаблон с постраничной вёрсткой формата A4; готовый файл отправляется через стандартное меню «Поделиться».
6. Интерфейс и UX
Сделал русскоязычный интерфейс с понятными подсказками на первом запуске. Главный экран показывает библиотеку сканов; пустое состояние объясняет возможности приложения. На экране предпросмотра — поворот, фильтры и слайдеры настройки. Учёл безопасные отступы под вырезы экрана и системные панели.
7. Конфиденциальность и разрешения
Ограничил разрешения минимумом: только камера и доступ к фото. Отключил микрофон, запись видео и лишние системные права в конфигурации Android. Подготовил политику конфиденциальности и описание обработки данных для модерации магазинов.
8. Сборка и публикация
Настроил release-сборку с подписью keystore: APK для RuStore и AAB для Google Play. Подготовил тексты карточки приложения, иконки, скриншоты, комментарий для модераторов и чеклисты публикации. Выпустил версии 1.0.0–1.0.2 с исправлениями импорта из галереи и обработки форматов PNG/WEBP.
Клиент получил готовое бесплатное приложение DocScan для Android: офлайн-сканер документов с автообрезкой, улучшением качества, многостраничным PDF и локальным хранением — без рекламы, подписок и передачи данных на сервер.