VEKA

Одно приложение вместо целой папки чертежей! Как мы упростили работу замерщикам окон

«Замерщик окон 2.0» — мобильное приложение для создания макетов дверей и окон. Разработано для компании VEKA Rus. Работает на смартфонах iOS и Android.

344 компании

зарегистрированные в системе

9 месяцев

работы над проектом

10 000 скачиваний

в App Sore и Play Market
Задача

Задача

Сотрудники компании записывали размеры окон и дверей на бумаге. Их делали в спешке, нередко что-то зачеркивали, исправляли. Могли забыть указать какие-то данные или потерять листок. Работникам производства приходилось расшифровывать заметки. Они могли неправильно понять цифры — и сделать конструкции по неверным размерам. А если чего-то не хватало, приходилось снова выезжать на объект и делать замеры заново.

Дилерам было сложно контролировать замерщиков: приходилось вести отчеты в отдельных файлах. Сотрудники могли забыть внести данные или записать неправильные. Администраторам постоянно звонить рабочим и приходилось выяснять, какие работы идут на объекте — сняли ли замеры, привезли ли конструкции, выгрузили их и пр.

Решение

Решение

В 2019 году мы выпустили «Замерщик окон 2.0». В нем есть авторизация пользователей и несколько ролей: замерщик, менеджер-руководитель, дилер. Делать замеры стало проще: подогнать модель под определенные размеры и создать макет можно буквально за несколько секунд. В приложении есть библиотека типовых решений с чертежами и популярными конструкциями, которые часто выбирают клиенты.

В конце работы замерщик заполняет чек-лист. Специалист проверяет, все ли параметры он измерил и записал. Данные не нужно отправлять по почте или через мессенджер. Они автоматически попадают к администратору. Он может проверить, на какой стадии работа: привезли конструкции, выгрузили, начали монтаж и пр. Для дилеров есть расширенные возможности: настройка и экспорт шаблона с индивидуальными параметрами на основе типовых решений. Администраторы могут проконтролировать ход работ — в приложении замерщик указывает, что сейчас происходит на объекте.

Процесс разработки

Клиент пришел к нам с первой версией приложения на iOS. Он просил сделать версию под Android. Но вскоре разработку прервали на полгода. Когда работу стал курировать маркетинговый отдел, дело пошло быстрее. Версию для Android выпустили на рынок. В 2019 году мы начали работу над «Замерщиком окон 2.0». Разработка шла 3 месяца. В сроки мы уложились.

На этом этапе мы начали внедрять мультиплатформенную технологию. Использовали Kotlin 1.3. и Kotlin/Native Beta. Выбрали именно эту технологию потому, что приложения на Android и iOS могут использовать общую серверную логику интерактивности и элементы API. Серверное API было объемным, пришлось бы потратить много времени на реализацию под iOS и Android отдельно. В итоге всю сетевую часть мы выделили в общую библиотеку. Обе платформы успешно работают с ней.

Что было самым сложным

Трудностей при разработке хватало. Это основные, о мелочах даже не вспоминаем:

- iOS и Android-версии приложения были написаны с разным подходом, у них были разные структуры данных. А нам нужно было сделать обобщенный вариант серверного взаимодействия

- Были проблемы с формами и загрузкой файлов Ktor на iOS — потому что API не из простейших.

- Общая библиотека проекта зависит от SCL (standart components library) — нашей внутренней библиотеки общих компонентов. При компиляции iOS-фреймворка обнаружили пропажу некоторых классов из SCL-фреймворка.

Как мы решили эту задачу

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

- Проблему с загрузкой файлов на iOS решили радикально — сделали загрузку на платформенной стороне через Alamofire.

- Чтобы исправить ситуацию с компиляцией, внесли классы в публичный интерфейс библиотеки, которая компилируется в фреймворк. Делали простым объявлением глобальной опциональной переменной с этим классом, которую сразу выставляли в null. Компилятор видел в публичном интерфейсе нужный тип и генерировал его в хидере. Сейчас можно просто использовать export для нужных зависимостей.

iМы советуем внедрять технологию Kotlin Multiplatform в текущий крупный проект постепенно, фича за фичей. Технология позволяет это делать без проблем. Например, сначала можно добавить в мультиплатформу сетевой слой и работу с сетью, в следующем апдейте – сетевые сущности, в следующем – правила валидации и т.д.
card-0
card-1
card-2

Технологический стек

Language: Java, Kotlin
Dagger 2
Multithreading: RxJava2, Coroutines
Network: Ktor
Database: Room
AAC (Android Architecture Components)
Firebase Crashlytics and Timber
Дополнительные библиотеки для UI
iМобильным разработчикам пригодятся наши библиотеки MOKO. В них уже исправлено большинство проблем, с которыми разработчики сталкиваются при реализации общей библиотеки под iOS и Android. Также можно использовать наши решения в Codelabs.

Результат

Заказчик остался доволен. Только в PlayMarket «Замерщика окон 2.0» скачали более 5 000 раз. Мы заключили договор поддержки — и теперь периодически проводим «техобслуживание» приложения.

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

VEKA Rus демонстрирует «Замерщик окон» партнерам и коллегам из других стран. Особенно им интересуются в головном офисе в Германии. Другие отделения не запускают подобные проекты. Поэтому решение российской компании считается инновационным.

Android
Android
iOS
Главный экран

Давайте обсудим ваш проект!

Это бесплатно. Мы расскажем, как приложение решит конкретные бизнес-задачи