Spent Money нічого не збирає, і ваші витрати ніколи не залишають ваш пристрій.
Без нашого сервера. Без системи облікових записів. Без хмарної синхронізації.
Без реклами
У застосунку ніде немає реклами і всередині немає рекламної мережі. Дозвіл на відстеження ніколи не запитується, а рекламний ідентифікатор вашого пристрою не читається.
Без акаунта
Реєструватися нема на що - відкрийте застосунок і починайте вводити дані.
Без нашої аналітики
Жоден SDK аналітики чи телеметрії не стежить за тим, що ви робите в застосунку, і рекламного SDK теж немає - у застосунку немає жодної реклами. Покупки йдуть через RevenueCat, який бачить стан вашої підписки та анонімний ідентифікатор встановлення, але ніколи ваші витрати.
Коли застосунок виходить у мережу
Лише щоб перевірити вашу покупку через RevenueCat, який підтверджує її в магазині застосунків, отримати сьогоднішній курс, коли витрата в іншій валюті, і запитати App Store під час запуску, чи вийшла новіша версія. Запит курсу несе код валюти й більше нічого; перевірка версії - лише власний ідентифікатор застосунку.
Без дозволів під час роботи
Ніколи не запитує доступ до камери, контактів, геолокації чи мікрофона - навіть до вібрації, яку Android надає автоматично, без запиту.
Ви контролюєте, що виходить назовні
Дані залишають телефон єдиним способом: якщо ви самі експортуєте резервну копію й оберете, куди її надіслати. З Pro цей файл зашифровано паролем, який знаєте лише ви.
Де насправді зберігаються ваші дані
Кожне число, яке ви вводите, записується в базу даних SQLite на вашому власному пристрої - і більше нічого.
Ваш телефон
База даних SQLite
Файл резервної копії — лише якщо ви його створите
Якщо ви видалите застосунок, ці дані зникнуть - саме тому й існують резервне копіювання та відновлення, не як додаткова функція, а як пряме наслідок того, що все зберігається лише локально.
Блокування застосунку
Необов’язковий 6-значний PIN-код, обов’язковий під час запуску та щоразу, коли застосунок згортається у фон - блокується автоматично знову.
PIN-код ніколи не зберігається як звичайний текст. Зберігається лише scrypt-хеш із власною випадковою сіллю - навмисно повільний і вимогливий до пам’яті, тож підбір лишається дорогим навіть для того, хто має базу даних.
Тільки PIN, тож розблокування вашого бюджету ніколи не вимагає й дозволу Face ID / Touch ID.
Резервне копіювання та відновлення на ваших умовах
Експортуйте все в один файл JSON, яким розпоряджаєтеся ви: збережіть його, надішліть собі, покладіть куди завгодно. Pro додає «Захистити паролем», і з ним це ввімкнено за замовчуванням.
Відновіть цей файл на будь-якому пристрої - застосунок помічає зашифровану копію й запитує пароль. Це ручний процес, а не автоматична хмарна синхронізація: те саме рішення «без сервера», застосоване послідовно.
AES-256-GCM, а не просто поле для пароля
Файл запечатується алгоритмом AES-256-GCM ключем, який scrypt розтягує з вашого пароля, щоразу зі свіжими випадковими сіллю та nonce. GCM - автентифіковане шифрування: за неправильного пароля, зміненого байта чи обрізаного файла він просто не відкриється, замість того щоб тихо повернути пошкоджені записи у ваші справжні дані.
Пароль належить лише вам
Ключ походить від вас, а не від застосунку: ключ, вшитий у застосунок, можна витягнути один раз і потім відкривати файли всіх. Тому немає ні головного пароля, ні відновлення: забули свій - і цей файл уже ніколи не відкрити. Саме тому поле має кнопку показу пароля: його вводять один раз і ніколи не підтверджують, тож можливість його побачити і є захистом.
Примітка щодо коду
Це особистий проєкт, і застосунок має закритий вихідний код - пропрієтарний, © 2026 Samvel Sargsyan, усі права захищено. Пріоритет приватності тут - це рішення в дизайні, а не гарантія аудиту відкритого коду. Що є правдою і піддається перевірці: ваші витрати зберігаються лише в локальній базі даних на вашому пристрої, немає облікових записів, до яких їх можна було б прив’язати, і немає нашого сервера, куди вони могли б піти. Застосунок використовує мережу рівно для трьох речей: перевірки вашої покупки через RevenueCat, який підтверджує її в магазині застосунків і зберігає статус вашої підписки під анонімним ідентифікатором встановлення; запиту до App Store під час запуску, чи вийшла новіша версія, у якому передається лише ідентифікатор самого застосунку; і отримання сьогоднішнього курсу, коли ви зберігаєте витрату у валюті, відмінній від основної. У цьому запиті передається лише код валюти - ніколи сума, нотатка чи категорія.