Розробка мобільного застосунку для обліку фінансів (Personal Finance)

Керівникам фінансових і банківських продуктів важливо, щоб облік витрат не відлякував користувачів складністю. Ми розробляємо мобільні застосунки для обліку фінансів під ключ: від схеми даних до синхронізації з банком. Скорочуємо ручне введення та прискорюємо звірку бюджетів.

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Розробка мобільного застосунку для обліку фінансів (Personal Finance)
Середній
від 1 тижня до 3 місяців
Часті запитання

Чому мобільний застосунок для обліку фінансів втрачає користувачів

Користувачі йдуть з мобільного застосунку для обліку фінансів не через оформлення екранів, а через недовіру до цифр. Перша розбіжність залишків після синхронізації між телефоном і веб-версією — і людина вже не розуміє, який баланс справжній. Далі вона або повертається до таблиці, або видаляє застосунок.

Дублі операцій — друга за частотою поломка. Мережа зникла в момент запису, клієнт повторив запит, сервер обробив обидва — у журналі дві однакові витрати, підсумок за категорією розійшовся.

Якщо операція не позначена унікальним ключем і не перевіряється на стороні сервера, це повторюється при кожному нестабільному з'єднанні, а не один раз.

Ручне введення витрат залишається вузьким місцем навіть при чесній синхронізації: чек на десять полів, вибір категорії, рахунку та дати. Люди відкладають введення «на вечір», вечір не настає, база порожніє, а звіти показують не витрати, а ймовірність.

Відтік користувачів припадає на другий місяць — коли новизна закінчується і стає видно, що цифри не сходяться.

За нашою практикою причина майже завжди в одному й тому самому шарі: немає розв'язання конфліктів злиттям, немає захисту від повторного запису, нікуди подіти швидке введення. Розбираємо, як кожен із цих вузлів закривається і що змінюється в метриках утримання.

Ефект: швидкий старт, точна синхронізація, менше відмов

Здаємо не «працюючий застосунок», а вимірювання: скільки часу минає від встановлення до першої записаної операції, яка частка виписки розбирається без ручної правки і як швидко система приходить у узгоджений стан після збою. Ці цифри ми фіксуємо на своїх проєктах і показуємо на прийманні.

Перший запуск і введення першої операції

Екран першого запуску не змушує проходити реєстрацію: категорії та валюта підставляються з підказок, а перша операція записується за 40–60 секунд.

Введення не гальмує й далі — розбір короткого запису займає менше секунди, чернетка зберігається локально й не втрачається при закритті застосунку.

Збіжність даних і швидкість звірки

Імпорт банківської виписки — головне джерело розбіжностей: дублікати, різні формати дати, скасовані списання. Ми зводимо операції ідемпотентно за зовнішнім ідентифікатором, тому повторне завантаження того самого файлу не подвоює баланс.

На проєктах із банківським агрегатором Plaid частка автоматично зіставлених операцій тримається на рівні 97–99%, а звірка місяця, яка вручну займала години, закривається за хвилини.

Клас відмов і час відновлення фіксуємо окремо: якщо зв'язок зник посеред імпорту, черга дограється при наступному підключенні, напівзаписаних операцій не залишається, а застосунок повертається до узгодженого стану за секунди. Час відновлення та обсяг ручних правок ідуть у звіт про приймання разом з іншими вимірами.

Варіанти обліку фінансів: ручне введення, синхронізація з банком, імпорт

Користувач довіряє застосунку, лише якщо операції сходяться з реальністю. Звідси три способи наповнення — ручне введення операцій, синхронізація з банком та імпорт виписок — і їх поєднання, гібридний режим.

Вибір впливає не на інтерфейс, а на архітектуру: черга довантаження, правила зіставлення дублів, зберігання чернеток.

Варіант Коли підходить Обмеження
Ручне введення операцій Один рахунок, рідкісні витрати, офлайн Забуті записи та помилки в сумах
Синхронізація з банком Кілька карток і рахунків, важлива актуальність Залежить від банківського каналу, затримка до наступного сеансу обміну
Імпорт виписок Банк без програмного доступу, розбір минулих періодів Ручний запуск, різні формати (CSV, OFX), неповні вивантаження
Гібридний режим Готівка разом із картками, змішані джерела Потрібні правила зіставлення, інакше дублі

Коли доречний кожен варіант

Ручне введення залишається базовим шаром: воно не залежить від банків і потрібне для готівки. Синхронізація з банком підключається, коли рахунків кілька і важлива свіжість даних.

Імпорт виписок рятує там, де програмний доступ до рахунку недоступний або потрібно заповнити історію за минулі періоди. Гібридний режим — робоча норма: картки надходять самі, решту користувач додає вручну або файлом.

Обмеження: неповні вивантаження, затримки, ручні правки

Жоден канал не дає повної картини: вивантаження може не містити контрагента, а обмін із банком іде із затримкою — операція, оформлена ввечері, з'явиться після наступного сеансу.

Тому закладаємо мітку джерела та статус запису, правила зіставлення дублів за сумою і датою та відкат групових правок. Тоді ручні правки не руйнують дані, а облік фінансів залишається збіжним.

Етапи роботи: аудит даних, схема, налаштування, перевірка, передача

Якщо імпорт виписок задвоює операції або категорія злітає після правки, користувач перестає довіряти цифрам — і застосунком для обліку фінансів не користується. Тому йдемо етапами: від аудиту джерел до передачі рішення з регламентом підтримки.

Аудит джерел і розмітка категорій

Спочатку фіксуємо, які дані взагалі надходять у застосунок і що ми вважаємо однією операцією: вивантаження з банків, ручне введення, повторні списання за підписками.

  1. Аудит джерел даних: перебираємо канали надходження — файли вивантажень, синхронізацію з рахунком, ручне введення — і позначаємо дублі, пропуски, різні формати дат і сум.
  2. Схема зберігання: рахунки, операції, категорії, правила. Повторне завантаження не створює копій, а правка користувача не затирається оновленням виписки.
  3. Правила категоризації: користувацьке правило пріоритетніше за автоматичне, спірні операції потрапляють у «потребує уточнення», а не в випадкову категорію.

Перевірка на реальних даних перед передачею

Схему перевіряємо на обезлічених виписках за кілька місяців, а не на синтетичних наборах.

  • Приймальна перевірка: проганяємо імпорт, правку, видалення та повторне завантаження, звіряємо контрольні суми за рахунками.
  • Відкат і перерахунок: помилковий імпорт скасовується, баланси та історія повертаються до попередніх значень.
  • Передача рішення: схема зберігання, набір правил, регламент оновлення та доступи — з описом, як підтримувати розмітку далі.

Що залишається у замовника: код, схеми, доступи, документація

Фінансовий застосунок живе роками, і команда за цей час може змінитися не раз. Тому передача — це не архів із проєктом, а набір артефактів, за якими інша команда збере реліз і розбере збій без листування з нами. Ось що залишається у замовника на руках.

Конфігурації та правила доступу

  • Вихідний код мобільного клієнта та серверної частини у вашому репозиторії: історія змін, гілки збірки, зафіксовані залежності — не залишається копії, доступної лише нам.
  • Схема даних: таблиці операцій, рахунків і категорій, зв'язки між ними та порядок міграцій, щоб оновлення не ламало вже введені користувачем записи.
  • Правила доступу: ролі в панелі адміністратора, області видимості, ключі до зовнішніх сервісів — банківських вивантажень, повідомлень, аналітики.
  • Конфігурації середовищ: параметри збірки під тестовий і робочий контури, налаштування публікації в магазинах застосунків.

Документація та регламенти супроводу

  • Архітектурний опис: як розділені шари застосунку, де рахуються баланси та категорії, які рішення прийняті й чому — щоб новий інженер не відновлював логіку за кодом.
  • Регламент супроводу: порядок випуску оновлень, перевірка сумісності схеми даних, відкат на попередній реліз, якщо нова версія поводиться інакше.
  • Інструкції щодо інцидентів: що дивитися при розбіжності балансів, збої синхронізації, відкликанні доступу до банківського сервісу — з готовими кроками діагностики.
  • Набір приймальних сценаріїв: операції, які перевіряють перед кожною публікацією, щоб регрес ловився до того, як його побачить користувач.

Кейс: скоротили ручне введення та прискорили звірку бюджетів

Застосунок для обліку особистих фінансів у MoneyFlow вирішував головне завдання — зібрати витрати в одному місці, але виписки надходили з обезліченими призначеннями платежів, і більше половини операцій користувачі розносили за категоріями руками.

На третьому-четвертому місяці ведення бюджету частка тих, хто продовжував заповнювати дані, помітно падала: рутина з'їдала більше часу, ніж економила.

Ми переписали розбір операцій: зібрали довідник торгових точок і контрагентів, задали пріоритети правил категоризації та увімкнули донавчання на ручних правках — уточнив користувач категорію один раз, і правило застосовується до всіх наступних надходжень цього отримувача.

Окремо закрили вхідні перекази: вони зіставляються з довідником і або розносяться автоматично, або позначаються як такі, що потребують перевірки, а не падають мовчки в «інше».

Усю логіку прогнали на історичних виписках, тому спірні випадки виловлювалися до релізу, а не в підтримці.

Метрики до і після

  • Частка операцій без ручної правки: 58% → 93%.
  • Час звірки бюджету: близько 40 хвилин на тиждень → 6-8 хвилин, і то переважно на розбір спірних переказів.
  • Звернення до підтримки щодо неправильних категорій скоротилися втричі, скарги на «зниклі» витрати практично зникли.

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

Чим синхронізація з банком відрізняється від імпорту виписок?

Різниця не в інтерфейсі, а в тому, звідки застосунок бере істину про рух грошей. Синхронізація з банком — це підключення через агрегатора: згода користувача, токен, оновлення за розкладом або за подіями банку, свіжість даних від хвилин до кількох годин. Імпорт виписок — файл, який користувач вивантажує сам, зате період у ньому закритий повністю.

Основна робота в синхронізації — не розбір відповідей, а життєвий цикл згод: банк змінює схему, у користувача спливає доступ, частина операцій надходить із затримкою або повторно.

Тому вставка операцій ідемпотентна за зовнішнім ідентифікатором, а черга повторних запитів закриває пропущені вікна.

Імпорт виписок передбачуваніший: формати ISO 20022 (CAMT.053), MT940, OFX і CSV розбираються локально, не залежать від доступності банківського API і дають повний період. Ціна — ручна дія користувача та зведення дублів на стику періодів.

Критерій Синхронізація з банком Імпорт виписок
Свіжість даних хвилини–години, автоматично за фактом вивантаження
Стійкість до збоїв залежить від банку та згоди не залежить від банку
Розбір розбіжностей пропуски та дублі на стиках дублі на стику періодів
Підтримка інтеграцій зміни банківських API стабільний парсер

На практиці майже завжди виходить гібрид: синхронізація відповідає за свіжість даних і низьке тертя, імпорт закриває банки без відкритого API і відновлює пропущену ділянку історії.

Тоді розбір розбіжностей перестає бути ручною звіркою — розбіжність рахується за правилом, а не шукається очима.

Часті технічні сумніви: безпека, офлайн, інтеграції

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

Застосунок працює без інтернету?

Локальна база на пристрої — основне джерело істини, а не кеш поверх сервера. Кожна правка пишеться в журнал операцій з міткою часу, і при появі каналу журнал іде нагору: повторне надсилання не створює дублів, бо запис помічено ідентифікатором.

Конфлікти розв'язуються за часом події та номером ревізії, тому правки з двох пристроїв не затирають одна одну.

Як захищені дані про фінанси?

Локальна база шифрується ключем із захищеного сховища платформи, доступ відкривається біометрією або кодом пристрою. Суми, призначення платежів і назви контрагентів не потрапляють у журнали помилок і звіти про збої.

На серверній стороні — короткоживучі токени сесії та журнал доступу, щоб доступ можна було відкликати в будь-який момент.

Що робити при втраті пристрою або доступу?

Історія відновлюється з резервної копії, прив'язаної до акаунта, а не до конкретного телефону. Після входу на новому пристрої активні сесії відкликаються, а повне вивантаження операцій доступне одразу, без поступового «довантаження» даних. Вхід за резервним каналом не блокує доступ до архіву.

Чи можна перенести вже наявний застосунок?

Так. Спочатку інвентаризуємо схему даних і довідники, потім робимо разовий імпорт операцій і зіставлення категорій, далі — паралельний період, коли стара й нова версії працюють на одних даних. Перемикання йде поетапно, відкат на попередню версію можливий до фінального кроку.

Як працює категоризація операцій?

Правила зіставляють контрагента й призначення з категорією та підставляють її при введенні; ручна правка зберігається як правило для схожих операцій.

Категорія зберігається окремою сутністю від самої операції — перерахунок правил не переписує історію та не псує звіти за минулі періоди.

Обговоримо задачу та повернемося з оцінкою й планом робіт

Щоб повернутися з оцінкою строків і планом робіт, а не з діапазоном «від і до», нам потрібен мінімальний ввід від вас. Нижче — те, що розбираємо на першій розмові: без цих даних будь-яка оцінка буде приблизною, а склад команди доведеться підбирати заново після уточнень.

З отриманого збираємо план за етапами, склад команди під кожен етап і контрольні точки приймання. Далі — погодження та старт.

  • Сценарії обліку: ручне введення, розбір банківських виписок, регулярні платежі, мультивалютні рахунки — що входить у перший реліз, а що переносимо.
  • Джерела даних: формати експорту з банків, відкриті програмні інтерфейси, ручні коригування — від цього залежить обсяг робіт із синхронізації та розбору операцій.
  • Приватність і зберігання: дані залишаються на пристрої або йдуть на сервер, чи потрібна біометрія для входу, що шифруємо та як робимо резервні копії.
  • Платформи та мінімальні підтримувані версії ОС, планшети, офлайн-режим і правила розв'язання конфліктів при синхронізації із сервером.
  • Інтерфейс: є готові макети та гайдлайн або потрібне опрацювання екранів, прототип і перевірка на реальних користувачах.
  • Критерії приймання: частка операцій, розібраних автоматично без правок, час відгуку списку, стабільність синхронізації.
  • Обмеження: строки, вимоги магазинів застосунків, регуляторні норми щодо фінансових даних, доступність вашої команди для приймання.

Опишіть задачу у зручному вигляді — повернемося з оцінкою строків, складом команди та планом робіт за етапами.

Наші компетенції:

Останні роботи

  • Розробка мобільного додатка для компанії FEEDME
    Розробка мобільного додатка для компанії FEEDME
    1010
  • Розробка мобільного додатку для компанії XOOMER
    Розробка мобільного додатку для компанії XOOMER
    903
  • Розробка мобільного додатку для компанії RHL
    Розробка мобільного додатку для компанії RHL
    1332
  • Розробка мобільного додатку для компанії ZIPPY
    Розробка мобільного додатку для компанії ZIPPY
    1180
  • Розробка мобільного додатку для компанії Affhome
    Розробка мобільного додатку для компанії Affhome
    1107
  • Розробка мобільного додатку для компанії FLAVORS
    Розробка мобільного додатку для компанії FLAVORS
    714