Мобільний додаток на iOS та Android для доставки дизеля
Навесні 2022 року ми взяли участь у реалізації стартапу київської мережі заправних станцій DiDiDo — створенні мобільного додатку для доставки дизеля оптом. Продукт унікальний і поки що не має аналогів в Україні. Все, що ми мали на початку — ідею замовника та логотип. Тому перед нами стало завдання з нуля розробити iOS- і Android-додаток для споживачів пального та підготувати продукт до релізу.
В рамках цього проєкту був також створений додаток для водіїв паливовозів, про який ми окремо розповідаємо в цьому кейсі:
Завдання
Мета стартапу — створити мобільні додатки, що дозволяють швидко та зручно замовити доставку дизеля в Києві та Київській області. Для її досягнення нам було потрібно:
- Спроєктувати дизайн інтерфейсу і зрозумілу логіку додатка.
- Реалізувати програму для користувачів iPhone та Android-пристроїв.
- Інтегрувати сервіси для ідентифікації клієнтів.
- Налаштувати функцію безготівкової оплати.
- Здійснити можливість автоматичного формування документів.
- Протестувати та завантажити додатки на маркетплейси.
UX / UI дизайн додатка
Вебдизайнер у зв’язці з UX-райтером і проджект-менеджером продумали механіку замовлення та спроєктували сторінки на різних етапах взаємодії з користувачем.
Реєстрація можлива за трьома сценаріями залежно від статусу клієнта:
- фізична особа,
- фізична особа-підприємець,
- юридична особа.
Це пов’язано з правилами здійснення безготівкових розрахунків, що впливає на вигляд форми, зміст і перелік накладних, які автоматично формуються додатком після кожного замовлення (товарно-транспортна, видаткова та акцизна). Зауважимо, що перед кожним виїздом на точку заправки водій повинен роздрукувати товарно-транспортну накладну, сформовану на основі заявки клієнта. Крім того, замовник укладає договори з фізичними особами-підприємцями та юридичними особами. Звісно, всі ці тонкощі ми передбачили в розробці додатків.
1) Реєстрація фізичної особи передбачає реєстрацію за допомогою індивідуального податкового номера. Ця інформація потрібна для ідентифікації клієнта та формування товарно-транспортної й видаткової накладної. Наразі ми очікуємо дозвіл на реалізацію технології BankID, яка надалі полегшить процес реєстрації й авторизації та звільнить користувачів від необхідності ручного введення податкового номера.
Для фізичних осіб оплата здійснюється за допомогою особистої банківської картки.
2) Реєстрація фізичної особи-підприємця, крім податкового номера РНОКПП, потребує додаткової інформації: назви банку та номера рахунку IBAN. Це потрібно для автоматичного формування договору, товарно-транспортної, видаткової й акцизної накладної. Ідентифікація клієнта відбувається через сервіс моніторингу реєстраційних даних українських компаній OpenData.
Оплата послуг здійснюється з поточного рахунку фізичної особи-підприємця.
3) Реєстрація юридичної особи також потребує інформації про податковий номер, назву банку та банківський рахунок IBAN. Знову ж таки верифікація відбувається через OpenData. Інтегрувавши цю технологію, ми полегшили клієнту заповнення й без того довгої реєстраційної форми, адже при введенні ЄДРПОУ автоматично підтягується назва, адреса компанії та ПІБ керівника. Надалі після заповнення форми додаток автоматично формує необхідний перелік документів (договір і накладні) на кожне замовлення.
Юридичні особи сплачують доставку пального з поточного бізнес-рахунка.
Оформлення заявки
Замовити пальне можна 2-ма способами: доставка чи самовивіз.
iOS-розробка додатка
iOS-додаток був створений для клієнтів автозаправних станцій DiDiDo за допомогою мови Swift.
Функціональність додатка спроєктована на основі архітектурного шаблону MVC, який складають 3 компоненти:
- Model — відповідає за зберігання, оновлення та видалення даних;
- View — відповідає за відображення цих даних на екрані користувача;
- Controller — відповідає за логіку програми та комунікацію між двома іншими компонентами.
Для передачі та отримання даних був використаний фреймворк Alamofire, який дозволяє виконувати запити у фоновому режимі, не перешкоджаючи роботі додатка.
Дизайн був відтворений за допомогою графічної програми Figma з точністю до пікселя, що забезпечило високу якість відображення макетів у реальному додатку.
Користувальницький інтерфейс розроблений за допомогою фреймворку UIKit, який містить в собі набір елементів (іконок, кнопок, таблиць, списків тощо), який відповідає стилістиці Apple.
Для відображення анімацій у режимі реального часу була використана бібліотека Lottie. У створенні динамічного і плавного інтерфейсу допоміг ще один фреймворк — Core Animation, який оптимізує процес відтворення візуальних ефектів і, відповідно, покращує досвід користувачів.
У розробці iOS-додатка також були використані такі фреймворки, як:
- CoreData — для збереження та управління даними на айфонах користувачів, що означає зручний доступ до них і вищу продуктивність додатка у фоновому режимі.
- CoreLocation — для отримання та обробки у додатку геоданих, а саме визначення точного місцеперебування та моніторинг руху пристрою користувача.
- SocketIO — для двостороннього зв’язку між браузером і сервером у режимі реального часу.
- PushNotification — для надсилання Push-повідомлень про нові замовлення, дозаправку тощо.
Під час розробки додатка стали в пригоді Google-сервіси:
- Maps — для геолокації пристроїв користувачів, які використовують додаток;
- Firebase — для реалізації пуш-повідомлень у режимі реального часу.
Розробка додатка на Android
У розробці додатків ми використали мову Kotlin, відому своєю кросплатформністю, тобто можливістю працювати на різних операційних системах: Android, iOS, macOS, Windows, Linux абощо.
Проєктуючи архітектуру додатка для Android, ми використали шаблон MVVM (Model-View-ViewModel), який, подібно до вищезгаданого MVC, ділить програму на 3 функціональні частини. Різниця в тому, що MVVM має гнучкішу логіку та ширші можливості структурування програми.
Інтерактивний користувальницький інтерфейс створений за допомогою фреймворку Jetpack Compose, який «дружить» із Kotlin і дозволяє легко змінювати стилі та теми оформлення застосунку.
Фреймворки Retrofit 2 і бібліотека Socket.IO забезпечують надійний зв’язок між клієнтом і сервером без великої затримки та навантаження на додаток.
Анімаційні ефекти відтворені завдяки бібліотеці Lottie. Крім неї були використані й інші бібліотеки:
- AndroidX — для підвищення функціональності додатка на Android-пристроях останніх версій;
- Coil — для завантаження та кешування зображень;
- Work Manager — для планування та виконання завдань у разі збою додатка чи пристрою;
- Room — для ефективної взаємодії застосунку з базою даних.
Оплата за доставку пального здійснюється через інтеграцію додатка із сервісом LiqPay.
Окрім уже згаданих Google-сервісів Maps і Firebase був також використаний інструмент Places API. Він значно розширює можливості взаємодії додатка з геопросторовими даними, а саме дозволяє знаходити локації за адресою, координатами чи іменем і отримувати про них додаткову інформацію.
Результат
Ми багато вже «наговорили», тому пропонуємо на власні очі побачити результат. Точніше, два результати. Завантажуйте додатки в Google Play та Apple Store та юзайте на здоров’я:
Комментарии