Лучшие бесплатные программы для управления и учета личных финансов

Недвижимость

Введение

Все началось в далеком 2011-м году, когда я купил свой первый андроид смартфон и открыл для себя удивительный мир андроид маркета. Именно там я нашел великолепное приложение для учета финансов Financisto. Несколько лет я трекал в нем свои расходы и доходы, сильно привык, однако были и слабые стороны:

  • необходимость вводить все транзакции вручную. Притом, что доля безналичных платежей непреклонно росла, а банк на каждый чих шлет вам смс.
  • нет глобального взгляда на бюджет в длительном временном разрезе. То есть хотелось видеть таблицу, предположим, на год, где для каждого месяца было бы видно, сколько планировалось потратить и заработать и сколько вышло по факту, плюс итого по всем строкам и столбцам. Тут ориентиром был YNAB.
  • нет синхронизации между устройствами. Да был Flowzr, но как-то он мне не зашел.

Если вторая проблема решилась экспортом в CSV и всемогущим экселем, то с остальными нужно было что-то делать. Очевидный вариант — сменить программу. Поизучав предложение, пришел к выводу, что все приложения делятся на скудные по функционалу и на дорогие:) Тем временем шел 2015-й год и мне все сильнее хотелось изучить разработку под мобильные девайсы. Что ж, звезды сходятся, принято решение пилить свое приложение!

https://www.youtube.com/watch?v=ytadvertiseru

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

Пользователи будут вами недовольны

К сожалению, нет какого-то одного признаного всеми способа учета денег, каждый человек придумывает свой. Итак, вы решили вести учет расходов, попробовали несколько приложений и все они оказались недостаточно хороши. От всех остальных людей вы отличаетесь только тем, что умеете делать приложения. Вы, кстати, не одиноки, каждый второй разработчик когда-то делал свой таск-менеджер или менеджер расходов.

В результате мы имеем сотни разных PFM-решений, и у каждого есть небольшое количество преданных фанатов. Но как только вы пытаетесь выйти за рамки этих фанатов, начинается самое интересное.

Нет, в основном вы все сделали правильно. Но нужно добавить учет доходов. Учет долгов. Учет кредитов. Геометки. Теги. Нет, не теги, подкатегории. Вложенные подкатегории. Веб-версия. Версия под OS X. Версия под Windows Phone. А почему вы не поддерживаете планшетные ПК? У вас нет синхронизации между устройствами? Да что ж вы за люди-то, простое распознавание чеков сделать не можете?!

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

ПОДРОБНОСТИ:   Партнерские программы электронных платежных систем кошельков

О приложении

Приложение имеет 2 основополагающие сущности: счета и транзакции. Счет, это хранилище средств, транзакция — перемещение средств. Транзакции бывают трех видов:

  • приход — пополнение счета третьими лицами
  • расход — выплата наших средств третьим лицам
  • перевод — перевод средств между своими счетами

Собственно в этом вся концепция приложения. Далее опишу, что фактически было реализовано. Некоторые моменты опишу подробно ниже.

├ Расходы
│   ├ Автомобиль`
│   │   ├ Заправка
│   │   └ Обслуживание
│   ├ Еда
│   └ Развлечения
│
└ Доходы

Аналогичная структура возможна и у других атрибутов, таких как Получатели (контрагенты), Проекты и т.д. Для удобной навигации по данным сделана система фильтров, по различным признакам. Реализовано управление долгами и бюджетирование. Кроме того есть вагон и маленькая тележка более мелких функций, которые я перечислять тут не буду.

Вы будете мало зарабатывать

Загляните в категорию финансов App Store и Google Play, откройте Top Grossing. И там, и там на первом месте вы увидите CoinKeeper. CoinKeeper — самое зарабатывающее приложение для учета финансов в России. Этих денег хватает на команду из 11 человек, но и их недостаточно, потому что продуктовый роадмап расписан на следующие два года.

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

Нормальной интеграции с банками нет ни у кого в России, а у тех, у кого она есть — лучше бы ее не было, поскольку пользоваться ей практически невозможно.

Во-вторых, инвесторам нужен рост. Как минимум, рост числа пользователей. А откуда вы его возьмете? Ну, пару раз о вас напишут СМИ, и вы получите несколько тысяч пользователей. Может даже 13 тысяч за 4 дня. Но потом все, никакого праздника. Виральный рост? В области финансов он работает не так задорно, как для социальных сервисов. Поиск?

Возможно, вы думаете, что в конце концов на вас обратят внимание банки? У вас есть пользователи, которым интересны финансы, а у банков есть финансовые услуги. И вот вы, полный надежд, входите в офис банка… Сколько-сколько у вас пользователей? Возвращайтесь, когда будет хотя бы миллион.

Или другая светлая мысль — продать банку свое PFM-решение. Только вот вы хотите делать продукт для пользователей или для банка? Может, вам тогда проще пойти работать в банк?

Библиотеки и тулинг

GnuCash - Лучшие бесплатные программы для управления и учета личных финансов

Из нестандартных используемых библиотек могу выделить ButterKnife и EventBus. Хотя в 2018 году они выглядят анахронизмами, на момент начала разработки они выглядели многообещающе. Сейчас же я не готов осуществить полномасштабный рефакторинг. Экспериментировал с RetroLambda и Rx, но выпилил их как не соответствующие задаче. В итоге сейчас проект это чистая Java 7, хотя велико желание поддаться хайпу и попробовать Kotlin.

Очень полезной оказалась библиотека io.requery:sqlite-android, позволяющая иметь всегда актуальную версию SQLite. В приложении реализованы деревья сущностей (например, вложенные категории) без ограничения по глубине и для выборки таких данных очень эффективно использовать рекурсивные запросы. К сожалению, они появились в достаточно свежих версиях SQLite и не доступны на старых версиях андроида. Requery решает эту задачу.

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

ПОДРОБНОСТИ:   Телефон защиты прав потребителей в Петрозаводске

Очень хочется внедрить нормальный DI, но опять же пока нет на это времени.

Несколько слов о тулинге. Если в 2014-2015 еще можно было услышать о том, что разрабатывать нужно в Eclipse, а Genymotion был musthave для разработчика под андроид, то сегодня Гугл всех затмил. Android Studio очень быстра и удобна, впрочем как и встроенный эмулятор.

Так же хотелось бы сказать спасибо kaftanati за его инструмент. Он позволяет вести гугл-таблицу со строковыми ресурсами на разных языках и преобразовывать ее в xml-файлы. Очень упрощает процесс локализации. К слову на данный момент приложение доступно на 2-х языках: EN и RU.

В процессе разработки неплохо освоил Git, оказалась незаменимая вещь.

Итак, зачем вы это делаете?

Лучшие бесплатные программы для управления и учета личных финансов

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

Или вы выпустите пару апдейтов и на все это плюнете, и людям, которые вам доверяли, придется искать себе новый сервис, заново вносить данные. Таких трупиков на моей памяти немало. И когда появляется очередной «самый лучший сервис», у опытных пользователей доверия к нему нет — спасибо, мы это уже проходили. Есть и промежуточное состояние, когда и бросить жалко, и тянуть невмоготу. Ходячие мертвецы.

В этом месте должна была быть какая-то мораль, но вы же ее не послушаете. Поэтому надеюсь, что вы хотя бы представляете себе, что вас ждет.

Если вы все-таки решили делать что-то свое, то хотя бы сделайте что-нибудь принципиально новое, удивите всех. Не поленитесь попробовать хотя бы 30−40 приложений. Мы только за, если вы подойдете к этому серьезно, подумаете, как будете расти, на чем зарабатывать. Лучше иметь двух-трех достойных конкурентов, чем 50 задохликов, которые только баламутят воду. И пользователи нам всем скажут только спасибо.

Производительность

Оптимизации производительности было уделено немало времени. Выделить следующие моменты, оказавшие значительное влияние:

  • Глубина вложенности лэйаутов. Чем меньше тем лучше. Проблема практически исчезла после внедрения constraint layout.
  • Оптимизация БД. Индексы наше все.
  • Профайлинг. TraceView это очень полезный инструмент для понимания того, что происходт в недрах приложения.

В целом сейчас я доволен производительностью. Моя личная база, которая является одновременно тестовой, содержит архив транзакций за 5 лет ({amp}gt;7000 транзакций) и при этом ничуть не тормозит на не самых быстрых телефонах.

Дизайн

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

Таковой достаточно быстро нашелся и за разумные деньги перерисовал мне все экраны. Результат я получил в psd, но так как я был уже наслышан о таком замечательном инструменте как Zeplin, то сам быстренько все в него экспортировал и переделал дизайн. Нынешний мне нравится гораздо больше, кроме того в процессе переработки сформировались некие внутренние гайлайны, так что теперь создание нового экрана не вызывает затруднений.

ПОДРОБНОСТИ:   Ипотека молодая семья: ипотека молодой семье условия на 2019 год

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

Парсинг смс

если разработчик внедрил поддержку твоего банка, то все отлично и быстро работает. Однако, если банк вдруг решит поменять формат или ваш банк не известен разработчику, то все резко перестает работать. Я решил, что приложение ничего не должно знать о формате смс и возложить все на пользователя, постаравшись максимально облегчить ему задачу.

Итак общая концепция такова: вам приходит смс, например, следующего содержания: “VISA1234 01.01.18 12:00 покупка 106.40р SUPERMARKET Баланс: 6623.34р” (Сбербанк). Очевидно, что тут можно извлечь следующую информацию: номер карты (счет), дата и время, получатель средств, сумма транзакции и остаток средств на карте.

Выглядит это примерно так:

Приложение запоминает все маркеры и таким образом обучается. Опыт показывает, что после недели-двух обучения, 90% транзакций создаются автоматически без участия пользователя. Да, нужно затратить некоторые усилия, но независимость от сторонних лиц мне кажется стоит того.

Пользователям тоже нравится, поступает очень много “хотелок”, так, например были реализованы: импорт ранее пришедших смс, парсинг смс из буфера обмена и т.д.

Автоматизация

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

К сожалению, пока есть проблемы на 8-ом андроиде, так как там запретили фоновое выполнение интентов. Планирую в ближайших версиях сделать запуск foreground-процесса тем пользователям, которые хотят такой функционал.

Продвижение и заработок

Наверное самая слабая сторона моего проекта. К превеликому моему сожалению, разрабатывать мне гораздо интереснее чем продавать. Трафик исключительно органический. Проект представлен на 4PDA, там же сформировалась база лояльных пользователей. Значительно увеличила количество установок публикация, опять же на 4PDA, в рамках программы поддержки разработчиков. Могу сказать, что средства потраченные на нее окупились, но не более.

https://www.youtube.com/watch?v=ytcopyrightru

Изначально программа задумывалась как учебный проект, поэтому о заработке на ней речи не шло. Однако, in-app purchases тоже надо изучить, поэтому была добавлена концепция Pro-функций, то есть платных фич. Фича такая пока одна единственная — это возможность строить графические отчеты. Планировал сделать подписку на синхронизацию, но за неимением фичи, так и нет подписки.

Оцените статью
Kruiz-Money.Ru