Я сделал собственное приложение для контроля за финансами.
Лет десять назад я, как и большинство жителей России, пользовался исключительно наличными. Позже появилась зарплатная карта в том самом банке. Вопросов, на что уходят деньги и сколько их у меня вообще, не возникало, так как денег в виде сбережений особо и не было ¯\_(ツ)_/¯
После выпуска из университета и начала работы на полную ставку у меня появились кое-какие накопления, а когда я стал ездить за границу, возникла необходимость в валютной дебетовке.

Первые попытки ведения бюджета
Уже не помню, что именно заставило меня начать учитывать траты. Я пользовался парой мобильных приложений по несколько месяцев с разницей в пару лет. Забрасывал их оттого, что не понимал, зачем я трачу на это время, или потому что терял данные при смене телефона или сбросе к заводским настройкам. Спустя некоторое время я снова пытался начать вести учет и пробовал разные приложения. Но то ли лень, то ли их недостатки, а может, и всё вместе мешало появлению привычки записывать траты.
Что мне не нравилось в мобильных приложениях по ведению бюджета:
- Обязательная регистрация. Этого никогда не понимал!
- Требование дать доступ к конфиденциальной информации смартфона — контактам, файлам, системным настройкам. Особенно актуально для уже устаревших версий Андроида, где приложения запрашивали сразу все необходимые разрешения при установке.
- Неприятные нюансы вроде поддержки только одной валюты или наличия рекламы.
- Непонятно, как и кем используются мои данные и что вообще с безопасностью удаленного хранения финансовой информации.
Время шло, банковские услуги в России развивались очень активно. Мне всегда было интересно посмотреть, что на этот раз придумали финансовые организации, чтобы привлечь клиента, а затем коварно заманить его в кредитное рабство. В погоне за повышенным кэшбэком и лучшими условиями банковского обслуживания количество моих счетов выросло настолько, что уследить за ними стало невозможно, а имеющимися банковскими картами можно было играть в «Дурака». Я понял, что пора вернуться к учету финансов, но с поправкой на работу со множеством счетов.

Таблица в «Экселе»: плюсы, минусы, подводные камни
Возвращаться к мобильным приложениям я не хотел, так как помнил, какие с ними были проблемы. Делать свое веб-приложение — тогда я зарабатывал на жизнь именно этим — было лень. К тому же не хотелось зависеть от наличия интернета и тратить время и деньги на поддержку сервера. И тут на помощь пришел старый добрый «Эксель».
Преимуществ у электронных таблиц масса:
- Независимость от платформы. Хочешь — фиксируй траты на телефоне с Андроидом, а хочешь — анализируй сводку на Макбуке или традиционном компьютере с Виндоус.
- Функциональность ограничена только фантазией.
- Формулы либо элементарны, либо хорошо задокументированы.
- Абсолютно бесплатно!
Забегая вперед, скажу, что таблицей я пользовался два года. За все это время структура и функциональность как добавлялись, так и удалялись за ненадобностью. Например, от начала и до конца в моей таблице были списки операций и счетов, а вот лист с бюджетом за пару месяцев превратился просто в список категорий.
В итоге таблица обрела следующую структуру.
Лист 1. Операции. Ключевая часть всего учета. Одна операция — одна строка в таблице. Фиксирую сумму и дату операции, а категорию, счет и валюту выбираю из списков. Опционально можно указать название операции или магазина и заполнить еще пару полей для комментариев.
Поля с коэффициентом — знаком операции (плюс или минус — доход или расход) вычисляются автоматически. Также предусмотрен валютный коэффициент для случаев, когда валюта операции отличается от карты. Дополнительно для отчетов вычисляются год, месяц операции и валюта счета.
Звучит слишком сложно? Полностью с вами согласен! Наиболее утомительная часть всего учета — переводы между счетами — была реализована в виде пары операций: расходной с одного счета и доходной для другого.
Лист 2. Счета. Таблица со списком всех счетов, которая состоит из названия, текущего баланса и валюты. В первой версии было поле с начальным балансом счета, но позже для экономии места я заменил его на доходные операции. Позже дополнил таблицу полем с датами завершения действия вкладов. Чтобы сократить количество проверяемых операций, если показания расходятся с данными банков, я добавил поле с датой последней сверки баланса счета в таблице и в приложении банка.
Еще одна функция, о которой стоит упомянуть, — это вычисление суммы ежемесячных расходов по картам. Она помогает контролировать выполнение разнообразных условий банков для получения процентов, кэшбэков и прочих плюшек.
Лист 3. Банки. Эта таблица складывает строки счетов и группирует данные по валютам. Благодаря автоматическому импорту курсов доллара и евро с сайта Центробанка РФ можно вычислить итоговую сумму в рублях, по которой строится диаграмма с долями финансов в разных банках.
Лист 4. Категории. Раньше назывался «Бюджет», но когда я понял, что по факту еще не дорос до этой темы, лист превратился в источник категорий. Одно время я делал сводные таблицы по месяцам и категориям, но особой пользы не нашел.
Лист 5. Ценные бумаги. На этот лист пришлось потратить больше всего времени: нужно было свести в одном месте данные по акциям, фондам и облигациям у четырех разных брокеров в разных валютах.
Все остальные листы — это эксперименты или сводки по выборкам данных с предыдущих листов. Накопленные данные об операциях по всем счетам позволяют за несколько минут узнать, как повлияла покупка кофемашины в офис на «кофейные» расходы или сколько ушло на свадьбу.
О плюсах таблицы достаточно, теперь расскажу о недостатках. Были мелкие неприятности вроде закончившихся вкладов и категорий расходов, которые утратили актуальность, например «Свадьба». Но самой серьезной проблемой, из-за которой пришлось отказаться от использования таблиц, оказалась низкая производительность ввиду большого количества вычисляемых полей. Приходилось копировать формулы в таблице операций в каждую новую строку.
Можно копировать сразу для сотни или тысячи строк, но это все равно неудобно и не меняет главного: таблица «тормозит» все больше и больше. Первый год этого не замечаешь, затем терпишь. К концу второго года накопилось пять тысяч строк операций и терпение закончилось.

Как сделать свое приложение на самоизоляции
Понимание того, что хватит это терпеть, совпало с некоторым количеством свободного времени, образовавшимся из-за самоизоляции. Нет, работа никуда не делась — компания оперативно организовала удаленку. Так у меня появились два дополнительных часа в сутках, которые раньше бессмысленно уходили на дорогу от дома до офиса и обратно. Также освободилось время, которое раньше я уделял кафе, ресторанам, кино и прогулкам по центру города.
Я решил заменить электронную таблицу мобильным приложением на Андроиде. Во-первых, оно позволило бы импортировать мою существующую историю расходов и доходов за два года. Во-вторых, приложение не тормозило бы при таком объеме данных. Кроме того, оно не уступает по основной функциональности электронной таблице, так как в нем можно реализовать:
- Управление операциями: расходы, доходы, переводы. Это само собой.
- Поддержку категорий и счетов. Обязательно с возможностью архивации, чтобы неактуальная категория или закрытый вклад не мозолили глаза.
- Мультивалютность и выделение цветом.
- Возможность выгрузить данные обратно в электронную таблицу для бэкапа или детального анализа.
Стоит упомянуть, что опыта мобильной разработки у меня до этого момента не было, но восемь лет в традиционной разработке ПО позволили быстро погрузиться в новую область при помощи двух бесплатных онлайн-курсов. Первый — короткий и поверхностный, но с явным и очевидным результатом. Второй — значительно глубже и с более академическим подходом к процессу обучения. Считаю, что это наиболее правильный подход к изучению нового: вначале пройтись по верхам и получить наглядный результат, а затем, если понравится, изучить глубже. Ссылки на курсы: простой и очень наглядный, глубже и серьезнее.
Все задуманное удалось реализовать. Конечно же, пришлось дополнительно изучить массу документации по работе с базами данных и многопоточности на Андроиде, внедрить рекомендуемые «Гуглом» компоненты для построения архитектуры приложения, которое позже не будет мучительно больно поддерживать.




Я потратил много сил, но представьте то удовольствие, которое я получил, когда удалось импортировать в программу всю историю операций и ничего не тормозило! После оставалось лишь отшлифовать приложение и добавить приятные мелочи вроде удобной сортировки привычным драг-энд-дропом.
Я с самого начала планировал опубликовать приложение в «Гугл-плее», поэтому добавил пару подсказок для новых пользователей и перевод на английский для мира за пределами РФ. Хотя изначально приложение рассчитано на русскоязычную аудиторию.
При первом запуске пользователь получает набор общих категорий и поддержку трех валют — рубля, доллара и евро. Свои карты, вклады и прочие счета придется заводить вручную. Если у вас так же много счетов, как и у меня, то пригодится автоматическая группировка по банкам. Добавляете свои банки и выбираете для них цвет, в который будут автоматически раскрашены относящиеся к ним счета.

Итого на онлайн-курсы по мобильной разработке я потратил три недели, на создание базовой версии приложения — четыре. И курсами, и приложением занимался по вечерам после работы, по выходным и праздникам. На публикацию приложения в «Гугл-плее» ушла ровно одна неделя и 25 $. За это время я верифицировал аккаунт разработчика, а приложение прошло проверку сотрудников «Гугла» на соответствие правилам платформы и отсутствие вреда для пользователей.
Пока проверяли документы и приложение, я не сидел сложа руки: выпустил несколько обновлений, подготовил описание и скриншоты для «Гугл-плея» и написал эту статью. Если бы знал, что формальности займут так много времени, то запустил бы процесс раньше. Зато теперь вы это знаете и не повторите мою ошибку.

План развития
Основные функции реализованы, но развитие на этом не останавливается. План следующий.
Отчеты. Все стандартно: сколько ушло денег и куда. По категориям, банкам, временным периодам.
Управление валютой. Пока из интерфейса пользователь может работать только с тремя валютами. Уже сейчас можно добавить другие варианты при помощи импорта операций, но этот способ не совсем очевидный для нового пользователя. А ведь помимо привычных денежных знаков еще есть и криптовалюта — это тоже нужно учесть.
Ценные бумаги. Та же проблема, что и с банками: исторически сложилось, что ИИС открыт у одного брокера, ОФЗ-н куплены у другого, а акции иностранных компаний — у третьего. Так что нужен инструмент для мониторинга суммарного баланса, роста и уменьшения стоимости. Это единственная область учета финансов, которая временно продолжит жить в моей электронной таблице. Но, так как от таблицы хочу полностью отказаться, учет ценных бумаг тоже перенесу в приложение.

Выводы
- В любой неожиданной и даже неприятной ситуации надо искать возможности! Из-за ограничений на перемещения, введенных по всему миру, у меня сорвались две долгожданные поездки, но взамен появилось свободное время. Мне удалось потратить его с пользой.
- Даже самое удобное банковское приложение не защищает клиента от ошибочных списаний его денег со счета. А если банков несколько? Для контроля нужен независимый источник информации об операциях.
- Главное в учете финансов — это понимание того, чего вы хотите добиться с его помощью. Единственно верного ответа нет: цели, задачи, потребности у всех разные. И здорово, что нам доступен большой выбор инструментов для решения наших задач.
09.07.20, 14:30
Если вам близок мой подход к учету финансов, то вот ссылка на само приложение в Google Play: https://vk.cc/auQKUT
С 10 по 17 июля его можно скачать бесплатно. Мне будет приятно, если результаты моего труда окажутся вам полезными :)
09.07.20, 21:56
Lazy, 10 июля, он платное в сторе. Обман?
10.07.20, 02:50
Алекс, сейчас бесплатное. Видимо Ваш часовой пояс не совпал с Гулом. :)
09.07.20, 13:45
Зачем копировать формулы, когда можно превратить таблицу в умную и не париться на этот счет?
Когда увидел, что начались проблемы с вычислениями из-за большого количества строк, ожидал явно не цифры в пять тысяч)
Мутная история с экселем, короче, но ход конем в такой ситуации и создание своего приложения - это сильно!
10.07.20, 08:32
Я пользуюсь бесплатной версией Zenmoney, чтобы отслеживать все операции по нескольким картам разных банков (моя основная / зарплатная / для стипендии).
А бюджет веду в “той самой” табличке Google из статьи 2015 года, которую я почти полностью переделал под себя. Помимо полей доходов, обязательных расходов и ежедневных трат, добавил поле с расчетом своей вариации «правила 50/20/30»: я обязательные расходы вычитаю из доходов, а уже остаток делю (процентное соотношение можно настроить под себя) на траты (из этой суммы рассчитывается лимит по ежедневным расходам), накопления, образование, инвестиции и благотворительность. И все это с возможностью контроля того, сколько уже потрачено, какой остаток и тд. Также добавил поле контроля доходов и расходов по сберегательным счетам.
Если кому-то интересно посмотреть на мою версию таблицы, напишите, скину под комментом
10.07.20, 10:12
Сергей, добрый день! Тоже интересно посмотреть, скиньте, пожалуйста
10.07.20, 10:44
Никита, здравствуйте , вот: https://vk.cc/awO7IT
Краткий гайд по таблице в моем комментарии выше
10.07.20, 09:25
Сергей, добрый день. Интересно, посмотреть, Вашу версию таблицы. Скиньте, пожалуйста.
10.07.20, 10:19
ЮРИЙ, ссылка на таблицу: https://vk.cc/awO7IT
Для начала таблицу нужно скопировать себе и очистить поля (главное случайно не удалить формулы). Я там оставил 2 месяца и заполнил их примерными цифрами, чтоб понять, как все работает. Можно поиграться с цифрами, понажимать ячейки и посмотреть, какие там формулы используются и настроить под себя.
Для создания нового месяца достаточно скопировать текущий лист и переименовать его. Можно сделать так, чтоб месяц начинался не с первого числа, для этого надо поменять дату начала. Цифры в скобочках - это даты доходов и обязательных расходов (чтоб понимать, когда чего ожидать). Остатки на счетах можно переносить с предыдущего месяца (смотрите формулы).
16.07.20, 11:37
Благодаря комментариям здесь и отзывам в Google Play, в приложении появляются новые функции.
В Google Play уже доступна новая версия с возможностью удаления операций и кошельков. Еще одно нововведение - возможность добавить валюты кроме RUB, USD, EUR - это пригодится пользователям, живущим за пределами РФ, Евро-зоны и США.
10.07.20, 02:50
Подскажите, пожалуйста:
1. Данные хранятся только в телефоне? При его утере / выходе из строя начинаем вести бюджет с нуля?
2. Синхронизации с ПК нет? Лично мне намного удобнее оперировать цифрами на большом экране с удобной клавиатурой.
10.07.20, 07:35
Владимир, данные действительно хранятся только на телефоне. При этом в приложении реализована функция экспорта/импорта данных. Это поможет при запланированной смене телефона для миграции данных или, например, для передачи на ПК. При потере телефона или его выходе из строя, конечно же, экспорт/импорт не поможет, если нет привычки делать бекап.
В принципе, потребность синхронизации понятна, но надо продумать, как сделать это безопасно и не во вред приватности данных.
14.07.20, 16:13
Lazy, могу скинуть поудобнее таблицу только куда?
10.07.20, 07:40
Lazy, можно экспортировать таблицу в папку, которая будет синхронизироваться например с гугл диском. И сделать так чтобы приложение после каких либо манипуляций с таблицей автоматически сохраняло таблицу, и гугл диск автоматом сохранит её. Так возможно?)
10.07.20, 07:55
Nikita, уже сейчас можно вручную сделать экспорт данных с телефона в Google Drive, отправить по почте или через любую другую программу - экспорт делается в виде файла в формате CSV, который можно открыть в Excel.
Автоматическую синхронизацию, наверное, тоже можно реализовать с учетом двух моментов:
1. Приложению потребуется дать разрешение на работу с файловой системой телефона, чтобы и приложение, и Google Drive могли взаимодействовать с одним и тем же файлом.
2. Надо реализовать решение конфликтных ситуаций: например, телефон был не в сети, пользователь отредактировал запись на телефоне, а потом отредактировал эту же запись на компьютере. Потом телефон подключился к сети - как ему понять, какую версию использовать? С телефона или с компьютера? Или спросить пользователя? А если он поменял 100 записей, спрашивать про каждую запись или сразу про все? Что делать, если пользователю не понравится результат? Google Drive сделает проще - сохранит обе версии файла, чтобы пользователь потом сам разбирался. А в финансовом приложении нужна точность. В общем, задача интересная и нетривиальная.
10.07.20, 08:30
Lazy, окей, приложение топ. Спасибо)
10.07.20, 05:14
автор молодец
10.07.20, 14:42
Эксель не бесплатный, и уж тем более не абсолютно
10.07.20, 18:49
Леонид, кроме Microsoft Excel, который действительно платный в версии для PC и Mac, есть много бесплатных аналогов: Google Spreadsheets, OpenOffice/LibreOffice, Numbers от Apple и другие реализации электронных таблиц. Если нет каноничного Экселя, то это не проблема - базовые формулы везде одинаковые.
11.07.20, 12:15
Lazy, ожидаемый ответ. Функционал экселя значительно отличается от бесплатных аналогов. Не в обиду вам будет сказано, но если для вас эксель это сумма двух ячеек, то разницы, действительно, нет. Для меня, например, даже удобство в настройке сводных таблиц уже заставляет пользоваться привычным приложением от MS. А разбираться в бесплатных приложениях, это опять же неперспективная трата времени.
Ну и потом, в гугле же вы авторизуетесь, и именно это вам и не нравилось в приложениях на рынке. Так что это точно не абсолютно бесплатно, именно это абсолютно меня и зацепило. Спасибо за статью!
10.07.20, 19:16
Уже 11 лет использую Дребеденьги для учета расходов-доходов и статистики, и ничего лучше так и не встречал. А вот для учета и отчетности по своему инвестиционному портфелю предпочитаю свою собственную гугло-таблицу - правда, боюсь, с годами она начнет тормозить от внесенного кол-ва операций, обновления котировок и перерасчетов
12.07.20, 08:27
Пользуюсь таблицей, похожей на то, что было у автора в начале. Для удобства, каждый месяц начинаю новую табличку из шаблона. Еще один файл - сводная таблица за год, где можно посмотреть, как менялись доходы и расходы по категориям в течение года.
15.07.20, 05:20
Вот, я нашел его. https://play.google.com/store/apps/details?id=com.kb404.money
09.07.20, 13:20
слишком сложно
10.07.20, 09:13
Михаил, потратил, и даже не 10 минут =) чем не нравятся существующие приложения, подробно описал в начале статьи - см. список из 4 пунктов "Что мне не нравилось в мобильных приложениях по ведению бюджета".
10.07.20, 14:04
Lazy, а можно глянуть на Вашу таблицу, а точнее - лист 5 ценные бумаги? И когда примерно планируете "учёт ценных бумаг" в приложении реализовать?
10.07.20, 18:42
Дмитрий, скриншот есть прямо под текстом про лист 5 - вот он https://img-cdn.tinkoffjournal.ru/from-excel-to-app-accounts.0siffdi8hj6v.PNG Работа над "ценными бумагами" уже в процессе, но довольно велика по трудоемкости. Надеюсь, что внедрю изменения в течение 4-6 недель, но это неточно. До этого точно выйдет одно или несколько обновлений с другими улучшениями.
11.07.20, 05:59
Дайте нормальную ссылку на приложение, пожалуйста - меня кидает на короткие ссылки в Вк, а в гугл плее не находит приложения с таким же значком🤷♀️
Предлагаю немного изменить название приложения, что бы его могли легко найти в тысяче таких же приложений
11.07.20, 07:31
Akumus, прямая ссылка https://play.google.com/store/apps/details?id=com.kb404.money
Приложение можно найти по слову "kb404"
11.07.20, 12:43
Lazy, нашла) Спасибо большое🤗
11.07.20, 09:17
Все подобные программы предусматривали ввод каждой операции, да ещё по куче счетов, да ещё разные валюты.. и потом полную нечитаемость всего этого лога. Поэтому я ни одним из них так и не смог пользоваться, а сделал себе таблицу в один лист - один год, где траты это просто суммы в категориях и вводятся через + , там же остатки, бюджетирование, планирование, кредиты и тд. Может выглядит не очень красиво зато мне понятно) Приложение моё наверно тоже бы по другому выглядело)
17.11.21, 15:16
Dmitry, могу посоветовать Moze 3.0 (правда, оно на английском). Там можно вести и кредитки. Отчёты в самом приложении самые мощные, которые я находил. К этому приложению пришёл спустя пару лет поиска подходящего.
04.01.22, 13:19
не рекламы ради, но в итоге я купил подписку на телеграм бот МОБС, которому отправляю расходы, на выходе имею аналогичную гугл таблицу по категориям) точность повысилась серьезно)
24.09.20, 11:24
Пользуюсь мобильным приложением Mofix Pro.
Формат xlsx.
Бэкапы, синхронизация с google диск.
23.03.21, 12:52
g.gray, попробовал. Висит сильно.
20.02.22, 16:55
Добрый день!
Хотел спросить, возможно ли посмотреть вашу табличку в Google Sheets более детально?
20.02.22, 16:58
Добрый день,
Спасибо за статью!
Хотел спросить, возможно ли просмотреть вашу таблицу в "Экселе" более детально?
06.07.22, 09:43
А что на ЛОГО приложения изображено, не могу понять)