★ ✦ ★ ✦ ★ ✦ ★ ✦ ★ ✦ ★ ✦ ★ ✦ ★ ✦ ★ ✦ ★ ✦ ★ ✦ ★ ✦ ★ ✦ ★
Сайт Димарика
Последнее обновление: Май 2026
★ ✦ ★ ✦ ★ ✦ ★ ✦ ★ ✦ ★ ✦ ★ ✦ ★ ✦ ★ ✦ ★ ✦ ★ ✦ ★ ✦ ★ ✦ ★
НАВИГАЦИЯ
> Главная
> 🔥 Лента приколов
> 📰 Новости
> 📔 Блог
> 🚧 Фотогалерея
> 🚧 Полезные ссылки
> 🚧 Гостевая книга
> Написать мне
ПОДПИСКА
RSS Подписаться на блог
СТАТИСТИКА
*** HIT COUNTER ***
006495
TOTAL VISITORS
Сегодня: 296
Онлайн: 2
Рекорд дня: 296
(03.05.2026)

ПОГОДА
ГлавнаяБлог → Spense.app v0.2
📅 01.03.2024, Пятница
Spense.app v0.2
Приложение находится в стадии активной разработки и не доступно для публичного использования.

Привет! Я закончил работу над очередной версией Spense с кучей улучшений и по традиции делюсь самым интересным.

Страница со счетами и кошельками

В интерфейсе приложения теперь можно управлять своими кошельками и смотреть текущий баланс:


По части добавления и редактирования кошельков всё довольно тривиально: можно редактировать название кошелька, комментарий к нему, валюту и базовый баланс. Но во время разработки я понял, что у меня довольно много счетов, которые я когда-то использовал и которые сейчас закрыты и меня больше не интересуют. Так что я решил добавить кнопку “Close Wallet”, которая перемещает кошелек в скрытый блок, чтобы он не маячил перед глазами.


Баланс кошелька

Еще стоит упомянуть о функции, которая была уже давно и которую я в этот раз немного улучшил — это расчет баланса. Забавно, что практически все современные приложения, которые я тестировал, считают его неправильно.

Например: - я создаю кошелек и пишу, что сейчас в нем лежит 100$; - записываю в расходы, что вчера я потратил в магазине 20$, потому что я это все еще помню и хочу уже что-нибудь записать; - приложение показывает, что сейчас в кошельке 80$.

Не знаю, о чем думают разработчики, но это мне точно не подходит. То, что я называю «базовым балансом» (Base balance) — это константа, привязанная к дате, и от нее я могу динамически считать текущий баланс на произвольный момент времени, суммируя транзакции до или после даты базового баланса.

На примере ситуации выше: если после создания кошелька и внесения информации о базовом балансе я больше ничего не тратил и не получал, баланс будет все еще 100$. Но если я захочу узнать, какой баланс был позавчера, приложение прибавит те потраченные 20$ и скажет, что позавчера было 120$. Хоть и на самом деле в Spense еще нет интерфейса, где можно было бы увидеть позавчерашний баланс, под капотом для этого уже все готово.

Доходы

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

По умолчанию переключатель находится в режиме ➖, то есть записи расходов. Если на него нажать, он превратится в ➕, и при этом обновится список популярных тегов, соответствующих входящим транзакциям.


Такая транзакция помечается в списке зеленым плюсиком (“+ 123.00€”). Логично было бы тогда добавить остальным транзакциям знак минуса, но я решил, что это избыточно, потому что в моей ситуации (и, полагаю, у большинства людей) 99% транзакций — это траты, и мне не нужно дополнительное визуальное пояснение. А вот подсветить авансик бывает приятно.

Переводы между собственными счетами и кошельками

Пришла зарплата — вывели часть в наличку, а часть отложили на отдельный накопительный счет. Кончились деньги в кошельке — взяли чуток из закромов. Решили куда-то съездить — купили местную валюту.

За этим всем тоже хочется следить, и до сих пор такой функции не было, а теперь есть. За нее отвечает та же самая кнопка, у которой добавился режим перевода между кошельками:

Да, ничего лучше 🔄 я пока не придумал.


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

Еще в этом интерфейсе нет тегов, потому что обычно перевод между своими счетами — это по сути и есть отдельная категория транзакций. Если нужно как-то пояснить этот перевод, можно добавить комментарий.

Валюта списания транзакции

Бывает ситуация, когда счет в одной валюте, а транзакция осуществляется в другой. Например, подписка на ChatGPT стоит 24.20$ (20$ + налоги), но так как счет у меня в евро, по дороге происходит какая-то конвертация, по факту списывается 22.41€, и я хотел бы сохранить информацию про обе эти суммы.

Так что я добавил невзрачную подпись “Original currency is different”, за которой скрыто поле ввода исходной суммы платежа:


Эти данные пока никак не влияют на расчеты, просто отображаются в истории транзакций.

Редактирование и удаление транзакций

По части редактирования транзакций появилось два небольших, но приятных улучшения: - теперь можно редактировать старые транзакции со страницы “Transactions”; - в форме редактирования появилась большая кнопка “Delete”, перед которой у пользователя дополнительно уточняют, действительно ли он хочет это удалить.


История изменения транзакции

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

История изменений транзакции, вид из админки.


В конечном счете это, конечно, переедет и в само приложение, чтобы пользователи могли восстанавливать случайно удалённые транзакции или откатывать их к состоянию до последнего редактирования.

Планы на следующую версию

На данный момент Spense меня полностью устраивает как ежедневный инструмент для учета расходов, и я готов приступить к обработке накопленных данных и построению прогнозов. В следующей версии я планирую добавить отдельную страницу с отчётами, по крайней мере, с одним, который будет показывать прогноз на ближайшие 3-6 месяцев на основе данных за последний месяц, полгода или год. Скорее всего, этот отчет не будет адаптирован для мобилки, но пока это и не требуется.

Есть еще идея с отчетом по тразакциям за выбранный период, но там загвоздка с группировкой по тегам (категориям расходов). Например, теги «кафе», «обед» и «магазин» можно объединить в одну категорию «Еда», чтобы узнать, сколько денег было «съедено» за прошлый месяц. С другой стороны, «кафе» и «обед» можно объединить в категорию «Еда, приготовленная не дома», а «магазин» — в «Еда, приготовленная дома», и сравнить, насколько одно дороже другого. В общем, здесь предстоит очень много экспериментов.

Ну и хотелось бы уже научиться складывать балансы всех счетов, чтобы отображать общую сумму. Для этого нужно будет подключиться к источникам актуальных данных по курсу валют и научиться приводить все суммы к одной валюте. Так что там тоже немало работы.

Не уверен, что все эти планы удастся реализовать в версии 0.3, но что-то одно точно будет.

Stay tuned!


Метки: #Spense.app #changelog
СЛУЧАЙНАЯ ЦИТАТА
Повесил свой сюртук на cron...

[ Новая цитата ]
ДРУЗЬЯ
kk.consulting kk.consulting
пиши на webmaster@dimarik.com,
если хочешь присоединиться
СТАТУС СЕРВЕРА
$ uptime
вычисляем...
$ git log --oneline -1
15c066f Move the widgets around
ЛУЧШЕ СМОТРИТСЯ В
Internet Explorer Firefox

PROUDLY MADE WITH
OpenAI Claude Code
Python Django