Cashup - первый опыт разработки для iOS

14 Июня 2014 г.

За окном 2010-ый, iPhone вижу лишь мельком у арт-директора клуба, в котором играю, услышав слово Android представляю лишь робота, в руках Nokia 2710. На последних курсах обучения в университете появилась первая работа в сфере 1С. С учетом характера образования, а именно кафедры Бухгалтерский учет, анализ и аудит, можно было предсказать желание вести учет личных финансов.

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

Таблица Excel

Как это работает?

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

Начинаешь вспоминать: “Ааа, так это были два бакарди с приятелем по 300 и такси за 500!”. Цифра в ячейке Отклонение превращается в ровный ноль, теперь учет полон и достоверен. Можно закрыть таблицу до завтрашнего вечера. Или освежить финансовое планирование в таблицах Будущие доходы и Будущие расходы, которые исходя из текущего остатка и планов позволяют рассчитать, сколько останется средств к определенному периоду при покупке нового гаджета, или же, сколько еще нужно заработать на этот гаджет. Такая простая система планирования мне показалась более удобной и полезной, чем общепринятый принцип бюджетирования в мобильных приложениях. Что, кто-то серьезно следит за заполнением прогресс-бара с надписью Еда, установив ограничение на отметке 20к?

Еще раз, краткая суть. Есть фактический остаток, есть остаток по учетный данным. Расчетный показатель Delta отражает разницу между ними. В начале каждого дня, фактический остаток совпадает с учетным, а Delta равна нулю. Вечером, указав фактический остаток в соответствии с бумажником, Delta выявит сумму потраченных средств. Далее вводим расходы, пока Delta не вернется снова к нулю. В чем профит? Дело в том, что при классическом способе учета Tap-Enter-Save люди упускают не менее 30% расходов, что негативно влияет на достоверность статистики. На первый взгляд, система выглядит избыточно сложной для простой задачи, но на практике весьма не напряжно, особенно при использовании мобильного приложения.

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

А причем здесь iOS?

После окончания университета, декорации жизни потерпели изменения. Я переехал в Санкт-Петербург, приобрел первый яблочный гаджет. Тогда, еще не зная, какими бывают качественные продукты, выполненные с вниманием к деталям, я был впечатлен. Мобильная операционная система прошептала мне, что будущее наступило, а я что-то пропустил. Оказалось, что во ВКонтакте не обязательно входить через браузер, весь мир сходит с ума по засвеченным квадратным фотографиям, Shazam творит чистую магию. Конечно, я решил поставить что-нибудь по учету финансов, например, бесплатную версию CashTrails. Приложение служило в течение дня черновиком, для последующей передачи записей в таблицу Excel. Вот что я понял:

  1. Черт побери! Меня надули с бесплатной версией, ограничив базу 30 операциями и вынудили совершить первое в жизни приобретение платного софта!

  2. Не существует приложения, которое соответствует моей идее дельты. После знакомства с возможностями iOS, процесс ручного переноса данных из приложения в Excel стал утомлять. Увидев как бывает, захотелось автомитизировать и упрощать любые процессы.

  3. Существует App Store. Оказывается, независимые разработчики приложения туда отправляют. И, их кто-то покупает!

Macbook Air

Купить Macbook Air для написания собственного приложения по учету личных финансов, которое заменило бы систему учета в Excel - не самая популярная причина. Да, был план создания и desktop-версии с поддержкой синхронизации через iCloud. Итак, начало 2013 года, на руках сам девайс и Macbook Air с установленным Xcode. Что дальше?

Во-первых, Objective-C оказался не самым простым языком, требующим на изучение и девелопинг большее время, чем с 18 до 20. Во-вторых, сюрпризом стало абсолютное отсутствие актуальных обучающих материалов на русском языке в интернете. Код из книжки “Программируем для iPhone и iPad”, которую я купил в качестве учебника на ozon, выдавал ошибки с первых же страниц, т.к. во время написания книги еще не было ARC (а мне то что с этим было делать?!).

Было принято решение сформировать финансовую подушку, оставить работу в сфере 1С и плотно заняться инди-девелопингом приложений iOS. Параллельно поднимать свой уровень английского, просматривая Стендфордские видео-лекции “Coding Together: Developing iOS 6 Apps for iPhone and iPad (Winter 2013)” в iTunes U на английском (шикарный преподаватель, мне очень понравилась подача материала, выполнил все домашние задания). Благо, база ООП у меня уже была, лекции схватывались, деньги копились, количество идей приложений пополнялось. Сам того не заметив, попал в 90% процентов тех инженеров, которые уверены что написав свое мега-приложение станут миллионерами.

Наступил июнь 2013. Я действительно оставил 1С, а запаса денег должно было бы хватить до первого питерского снега. Курсы обучения пройдены, уверенность в Objective-C обретена, можно приступить к делу. Полный ход, капитан! В августе должен быть релиз в App Store!

Хо-хо-хо. Нет, я ввязался в новую историю, которая называется Fox in Socks. Не суть, в чем она заключается, фактически мне снова стало катастрофически не хватать времени на разработку. Возможно, когда-нибудь я найду эти необходимые 200 часов. А вот видео, отражающее текущий подмороженый статус разработки.

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

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