Введение


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


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

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


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




О приложении


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


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

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


Итак, первое, что нужно для упрощения жизни, это парсинг смс от банков для автоматического создания транзакций. Затем был сделан импорт/экспорт данных в CSV, причем предмет особой гордости — настраиваемый импорт, позволяющий загружать данные из файлов CSV произвольной структуры. Имеется сканер чеков ФНС РФ и загрузка информации по ним с сервера. Для удобного учета атрибуты транзакций сделаны многоуровневыми. Например, можно создать такое дерево категорий:


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

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


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


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


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


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


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


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


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


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


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


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


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

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


Дизайн


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


Было и стало:



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


Парсинг смс


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


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


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


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


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


Загрузка кассовых чеков ФНС


В прошлом году ФНС РФ преподнесла всем продавцам подарок обязав отправлять все кассовые чеки в электронном виде на свои сервера. Простым людям тоже маленько перепало в виде официального мобильного приложения, в котором можно проверить чек на подлинность и, что самое важно, загрузить его себе в форматах pdf или json. Не раз уже эта тема тут обсуждалась, однако, вкратце: официального апи для получения чека нет. Оно может быть у некоторых из ОФД (операторы фискальных данных, через которых чеки попадают с касс в ФНС), но так, что бы взять и получить любой чек в одном месте — нет. НО, есть официальное мобильное приложение, работающее через http, с обычной http-авторизацией, чем давно воспользовались добрые люди, послушавшие трафик и выложившие его апи на всеобщее обозрение. Там все просто. Можно создать нового пользователя, получив пароль по смс, можно скачать содержимое чека по его данным, и можно скачать все чеки за определенный период, ранее загруженные данным пользователем. Для облегчения задачи на каждом чеке печатается QR-код, содержащий все нужные для получения чека данные.


Далее все просто qrcodereaderview + retrofit и содержимое чека у нас в руках. В связи с возможностью загружать список товаров в чеке, была реализована возможность эти товары прикреплять к транзакции. То есть теперь у вас транзакция может быть не просто суммой, а составной суммой, например, товар1 х кол-во х стоимость + товар2 х кол-во х стоимость + ... Причем каждому товару можно назначить отдельную категорию и проект, что бывает очень полезно при покупках в супермаркетах, когда за один раз берется много разнородного товара.


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


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


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


Синхронизация


Синхронизация, как много в этом слове… Ведение общей базы было одной из основных задач создания проекта. К сожалению, она до сих пор не реализована. Причина — слишком комплексная задача для пет-прожекта одного человека. Попытка была. И даже была рабочая версия. Сделал я ее на Firebase. На первый взгляд это выглядело не сложно. Есть гигантский json, в котором лежат общие базы. Вся аутентификация делается 10-ю строчками в правилах безопасности в консоли. Апи очень простое и удобное. Алгоритм был примерно следующий:


  1. Пользователь логинится в Realtime Database при помощи учетки Гугла.
  2. Ему заводится нода, в которую выгружается вся его база.
  3. Затем он дает разрешение на модификацию своей базы другим пользователям, так же по gmail'у.
  4. Другие пользователи, при подключении, указывают, что хотят работать с чужой базой и вводят адрес первого пользователя, затем подключаются к его ноде и могут добавлять удалять информацию.

Затем начались проблемы: как сделать разграничение прав доступа?; на больших базах были проблемы с производительностью; синхронизацию предполагалось предлагать в виде подписки, для этого нужна верификация на сервере, то есть опять же нужен бэкэнд. Конечно все эти проблемы были связаны с недостатком моего опыта и отсутствием времени на полномасштабное изучение вопроса, но пулей в голову данному подходу стало заявление Гугла о том, что relatime database, это теперь стремно, делайте ка все на Firestore. В общем пока эта затея поставлена на паузу, продолжаю изучать пути решения. На данный момент мне видятся следующие варианты реализации:


  • Попробовать все-таки Firestore, там ввели коллекции, упростилась работа со сложными структурами данных.
  • Плюнуть на все и сделать свой бэкенд. Пока что неплохим кандидатом выглядит Postgres + Postgrest. Минимум разработки, больше контроля, но опять же есть непонятные моменты.
  • Экзотический вариант — xmpp сервер. Вообще не хранить данные на сервере, а лишь пересылать их между пользователями. Чревато, на мой взгляд, потерей конситентности, но есть и плюсы (хотя как посмотреть) в виде полного отсутствия бэкенда.

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


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


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


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


GitHub


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


Заключение


Основная цель, которую я ставил перед собой начиная этот проект, выполнена — я научился андроиду. И, можно сказать, даже преуспел в этом. Для полноценного звания success story, конечно, не хватает коммерческого успеха, но, тем не менее, я рад, что мне удалось развить проект и довести его до ума. Греет мысль и о том, что дело делаю полезное для людей.

Комментарии (45)


  1. androidovshchik
    24.05.2018 19:19
    -2

    Зачем платная функция pro, если исходники есть открытые?


    1. vikarti
      24.05.2018 19:54

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


  1. Sjam
    24.05.2018 19:27
    +1

    Можно ли приложение увидеть на f-droid.org?


    1. EdvLav Автор
      25.05.2018 06:28

      Честно говоря, никогда с ним дела не имел, сейчас изучаю. Вероятнее всего добавлю.


  1. Sobic
    24.05.2018 23:09

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


  1. jryj
    25.05.2018 00:59

    Сам уже 3 недели, как пользуюсь этим приложением. :) А тут и автор встретился!

    Приложение простое, удобное и функциональное. Поначалу удивило отсутствие списка категорий. Пришлось делать свои, но теперь это даже удобнее.


  1. PerlPower
    25.05.2018 04:23

    Пользуясь случаем хочу указать на деревянное приложение BudgetWatch f-droid.org/en/packages/protect.budgetwatch. В данном случае деревянное в хорошем смысле.

    До этого много лет использовал на кнопочниках Money Manager 2, а после него все андройдовые бюджетницы кажутся переусложненными или слишком заточенными под стиль жизни автора, или сделанными с мыслью «нарисуем красивые иконки, а остальное приложится»

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


  1. darked
    25.05.2018 06:10

    Просто огромное человеческое спасибо за исходники!


  1. Andrew51130
    25.05.2018 06:18

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

    Действительно, сильно.
    До этого каждому нужно дойти.
    Мое почтение.


  1. Rupper
    25.05.2018 08:12

    Небольшое предложение по развитию — сделать кроме списка счетов список (желательно дерево) статей затрат/прибылей. И транзакции сделать замкнутыми на счета и статьи. Тогда можно буд ет строить отчет на что от кого потрачены деньги. Новые транзакции которые не удалось автоматически отнести к статье вешать в нераспределено. Ну и далее шаблоны для смс для управления автоматическим разнесением. И будет сказка. Ах да на яблоко еще портировать )


    1. EdvLav Автор
      25.05.2018 08:20

      Собственно за это и отвечают Категории. Все как вы написали, дерево. И отчет имеется.


      1. Rupper
        25.05.2018 10:26

        сорри, значит отвлекся когда читал. Но пункт про портирование на яблоко остается!


  1. Bear13
    25.05.2018 08:33

    Пользуюсь вашей программой почти с самого начала. Очень удобная вещь и спасибо что продолжаете развивать.

    Не останавливайтесь.


  1. vershinin
    25.05.2018 08:34

    У меня банк присылает e-mail'ы с информацией о транзакции. Есть идеи, как это можно увязать с вашим приложением?


    1. EdvLav Автор
      25.05.2018 08:56

      Парсить во внешнем приложении, возможно в Таскере, и слать интенты. Подробнее здесь. Пока есть нюансы с восьмым андроидом, но планирую скоро поправить.


      1. Voltos
        25.05.2018 12:00

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


  1. ktu
    25.05.2018 09:13

    Поддерживаю автора! И считаю неотъемлемой частью бакенд. Сам пользую в качестве бакенда и PC-шной версии полнофункциональную (достаточную для моей семьи) программу Деньги одной из известных фирм. К ней, прям в том же порядке, что и автор стати, написал приложение на андроиде, только начинал не с Дельфи, а с Python Kivy. Приложение ориентировал в первую очередь для оперативного учета первички, просмотра остатков и сравнения с бюджетом по категориям. Почерпнул у автора несколько полезных для себя идей. Огромное спасибо!


  1. evgeny91
    25.05.2018 09:29

    Мне нравился CoinKeeper, там в упрощенном виде тоже есть парсинг смс, но когда они сменили модель подписки в последний раз и подняли цену, отказался от них. Думал о том, чтобы написать свой менеджер, а тут как раз ваш попался. Спасибо за труд! Проект достойный! Не каждый отважится с нуля в андроиде браться за такой пет-проджект.


  1. aliksend
    25.05.2018 09:47

    Тоже начинал с Financisto, но когда понадобилась синхронизация тоже стал искать что получше и нашел BudgetBakers: Wallet, это было лучшее что нашел на тот момент.
    Сейчас пользуюсь iOS, поэтому важно то, что есть версия под iOS и web (хоть функционал и урезан) с синхронизацией и всё это в бесплатном тарифном плане (а платный не сильно дорогой). Если перейду на андроид, обещаю попробовать ваше приложение.


  1. ashumkin
    25.05.2018 10:04

    ещё на КПК пытался вести учёт финансов (в CashOrganizer), но каждая попытка заканчивалась через месяц-полтора, т.к. вводить все расходы (а они самая частая категория транзакций) — лениво
    когда заработал ФЗ-54, подумал, что наверное, было бы удобно сканировать QR-код, и на его основе вводить расходы в программу (кстати, чеки возврата в приход распознаются? буквально на днях я делал несколько возвратов)
    а недавно увидел Ваш комментарий )) а затем вот и статью с описанием
    респект! я ещё не пробовал приложение, но плюсанул везде ))
    за автоматизацию ввода из других приложений (хоть и пожелалка, как я понимаю, была пользовательская) — ещё больший респект! а за OpenSource — так вообще слов нет ))
    желаю удачи и неостывающего энтузиазма!.. и хороших пулл-реквестов ))


    1. EdvLav Автор
      25.05.2018 10:07

      Спасибо. Насчет возврата — пока такой сценарий у меня не разу не возникал, но предполагаю, что не сработает.


  1. rnj2000
    25.05.2018 11:15

    Я в свое время встретил для себя идеальное приложение в лице Финансового счетчика+ под Windows Phone. Но к сожалению платформа скончалась и под ios не нашел такого же шикарного приложения. До сих пор вынашиваю идею сделать приложение для себя.
    Для разработчиков open source уготовано отдельное место в раю


  1. Duti_Fruti
    25.05.2018 11:41

    Мое использование заканчивается на определении группы расходов.

    Часто в одной покупке могут быть и продукты питания и бытовые принадлежности и развлечение и еще что нибудь. Токую оплату сложно куда либо отнести и как то удобно разделить.

    Как вы поступаете в данной ситуации?


    1. immaculate
      25.05.2018 17:28

      Я не пользуюсь данным приложением, пользуюсь ledger (http://ledger-cli.org/) — по-моему, самой гениальной программой для учета финансов.


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


      Я очень редко бью чеки по категориям. Чаще всего, все чеки из супермаркетов попадают в категорию: «Расходы: Дом».


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


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


  1. EdvLav Автор
    25.05.2018 11:44

    Duti_Fruti Для этого и были реализованы товары. Транзакция одна, в ней много товаров, у каждого своя категория. Они могут быть как загружены из чека, так и добавлены вручную. Если у товара категория не указана, то ему назначается категория транзакции.


    1. Duti_Fruti
      25.05.2018 12:26

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

      Я скорее вижу кнопки
      «назначить категорию» — на всю покупку (чек).

      а потом «разделить категории» — указываем сумму и другую категорию.

      С исходной отнимается и прибавляется в другой.

      В списке мы видим один и тот же чек с «тегами» разных категорий и суммой куда что ушло.


      1. EdvLav Автор
        25.05.2018 12:38

        В общем-то все именно так и происходит. Предположим вы зашли в магазин и купили следующие товары:

        • Молоко — 50 руб
        • Мыло — 50 руб

        на общую сумму 100 руб. У транзакции есть атрибут «Категория», в которой вы указали значение «Еда». Теперь мы имеем 100 руб. потраченные на еду.

        Теперь возможны варианты:

        1. Просто разделить транзакцию на 2 (есть такая функция), вырезав из исходной 50 руб и создав новую транзакцию с категорией «Бытовая химия».
        2. Создать в исходной транзакции товар «Мыло» и назначить ему категорию «Бытовая химия». Теперь у нас одна транзакция на 100 руб. в которой 50 явно отнесены на бытовую химию, а другие 50 остались едой без уточнения что это.
        3. Явно создать 2 товара «Молоко» и «Еда» и назначить им категории. Впрочем молоку категорию можно не назначать, тогда она унаследуется от транзакции и останется едой.

        Вариант 3 отлично работает с чеками. Купили 50 товаров, скачали их, установили категорию транзакции охватывающую основную группу товаров, остальным предметно переназначили категории.


  1. evnuh
    25.05.2018 13:57

    Можно улучшить читаемость важной информации и уместить больше её на экране, не потеряв функционал:
    image


  1. EdvLav Автор
    25.05.2018 14:06

    evnuh Включите компактный режим просмотра в настройках.


  1. for611bing
    25.05.2018 14:31

    Спасибо вам за приложение. Пользуюсь с самого момента, как вы его выложили на 4pda.


  1. EasyStart
    25.05.2018 16:11

    Привет. Насчет синхронизации BD.
    Я недавно попробовал Jexia.com. По функциям похож на FireBase но гараздо удобней выборка и разграничение прав. Советую проверить, возможно, найдешь решение для себя.


    1. EdvLav Автор
      25.05.2018 16:48

      Спасибо за ссылку, интересный сервис, смущает отсутствие цен, когда они выйдут в продакшн.


  1. passerby
    25.05.2018 19:25

    А уведомления из Google Pay как-то берутся?
    Например, Альфа банк при оплате Google Pay со смартфона — смс-ку не присылает.
    В «шторке» стандартное уведомление от Google Pay об оплате.
    При этом если платить так же бесконтактно, но их же картой (той, которая привязана к Google Pay) — смс приходит.


    1. EdvLav Автор
      26.05.2018 02:34

      Нет такие уведомления не обрабатываются. Если кто знает как к ним получить доступ, расскажите.


    1. Dayl
      27.05.2018 13:46

      Странно, мне приходит от Альфы СМС, когда я плачу с помощью GooglePay…


  1. Danik-ik
    26.05.2018 10:01

    Есть ли возможность планировать затраты на конкретные даты, резервировать деньги под эти затраты? Честно говоря, не могу себе этого представить без честной двойной записи, но вдруг?


    Что-то вроде такого: до 7-го надо отдать 7000, в кошельке 3000, на карточке 2400, из них на повседневные расходы не более 1000, зарезервировано на отдать долг только 3500, не распределено по целям 900. Ахтунг! Срочно ищи возможность заработать от 2600 до 3500! Осталось x дней!


    А то всё, что я видел в отношении личных финансов — не столько планирование бюджета, сколько мечты о попадании в границы расходов, с контролем лишь по факту.


    1. EdvLav Автор
      26.05.2018 11:50

      Такого функционала пока нет. Было бы интересно посмотреть где и как такое реализовано.


      1. Danik-ik
        26.05.2018 13:51

        Реализовано такое в любом финансовом учёте с системой двойной записи (учёт актива и пассива в балансе + финансовое планирование). А вот для личных финансов — увы и ах, не видел.


        Если сильно упрощённо (давно учился, помню мало), есть активы (средства, имущество) и пассивы (источники и цели расходования можно сюда отнести). То и другое равны (баланс) и детализируется по статьям (счёта учёта). План по конкретной статье можно сравнить с состоянием соответствующего счёта и сделать вывод: хватает или нет, сколько надо ещё


      1. Danik-ik
        26.05.2018 13:58

        Это основы бух/финучёта и финансового планирования


      1. Danik-ik
        26.05.2018 14:57

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


  1. Danik-ik
    26.05.2018 14:56

    не туда написал


  1. Somati
    26.05.2018 16:33

    Добрый день.

    Попробуйте сделать интеграцию через dropbox, у них есть своя API для этих целей.
    Такая интеграция уже была с приложении Менеджер расходов от PSVSoftware, но всё перестало работать, после того, как dropbox сменил версию API (и не предусмотрел обратную совместимость), а разработчик больше не поддерживает приложение. Теперь попытка выложить базу расходов на dropbox заканчивается сообщением об ошибке: {«error»: «v1_retired»}


  1. EdvLav Автор
    26.05.2018 16:36

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


    1. Somati
      26.05.2018 16:39

      бегу тестить ваше приложение (надеюсь, что смогу смигрировать со своей неподдерживаемой legacy-системы); спасибо за подробное описание


      1. Nine_tailed
        27.05.2018 03:23

        Тоже мигрировал с менеджера расходов от psv, на прямую экспорт не сработал, поэтому пришлось немного отредактировать csv файлы (их два, первый доход/расход, второй переводы) экспортированные из менеджера расходов отчёты в экселе, немного подучить питон и сформировать csv файл который приняло приложение