Dev Story Кредитный калькулятор. История банковского айтишника

ТЕКСТ: ДМИТРИЙ ТАЧКОВ. Как и многие жители России, я являюсь обладателем кредита в некоем банке. Мне неудобно было каждый раз заглядывать в график и заходить в Телебанк, проверяя, сколько я должен по кредиту или искать кредитный калькулятор в интернете.

Перебрав множество программ в App Store, я не нашел ни одной программы, которую я бы хотел купить. Все бесплатные программы (порядка 20 программ), которые я просмотрел и попробовал, имели либо убогий пользовательский интерфейс, либо рассчитывали данные неверно. Я говорю о приложениях для iPad. Нормального расчета графика платежей, который бы совпадал с графиком, выданным мне банком, я вообще не нашел. Я скачал один из платных кредитных калькуляторов, поведясь на красивый пользовательский интерфейс. Однако, при первом использовании скачанный калькулятор крешнул 10 раз. И это кредитный калькулятор, который находится в топе финансовых приложений по США! Когда я поворачивал свой iPad, купленный калькулятор менял ориентацию с книжной на альбомную, однако при повторном повороте обратно возвращаться отказывалась. Описав все это в отзывах купленной программе, я попытался вернуть сие чудо обратно разработчику и получить деньги обратно.

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

Так родилась идея создать приложение «Кредитный калькулятор» для iPad.

История создания программы

Немного о себе. Я инженер по тестированию программного обеспечения. По роду работы я тестировал достаточно большое количество программ для iOS и Android. Три года я работал в различных банках в качестве инженера по тестированию программного обеспечения. Я тестировал автоматизированные банковские системы, которые рассчитывают кредиты, депозиты, платежи, комиссии… Область кредитов была для меня достаточно знакомой.

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

С другой стороны, я хотел сделать в приложении то, чего не хватает мне, как заемщику. Первоначально у меня был бумажный вариант графика из банка. На первой странице были указаны сумма, срок, ставка. Я хотел полностью повторить бумажный график в своем кредитном калькуляторе. Вот как я представлял себе работу приложения: Я беру в руки график, ввожу эти данные и нажимаю рассчитать. Это все что мне нужно! Далее я просто сохраняю результат расчета и возвращаюсь к нему когда хочу! Без каких либо бумажных вариантов графика я имею под рукой информацию о моем кредите.

Итак, я поставил себе цель: сделать качественное приложение с минимальными затратами и в кратчайшие сроки. Этими идеями я вооружился и отправился в бой на сайт free-lance. Сделав ТЗ, я опубликовал проект по созданию дизайна для моего приложения. Первоначально я хотел получить дизайн за 5000 рублей. Но опубликовав проект, я получил ценник от 10 000 до 30 000 рублей за дизайн.

Получив отклики на свой проект, я выбрал дизайнера, работы которого мне понравились более всего. Внес предоплату и в бой. По срокам определились – неделя. Однако тут я совершил ошибку. Я написал ТЗ, но ТЗ написал для программистов. Надо было писать ТЗ и для дизайнера, подробно описав, что я хочу! Нужно было сделать макеты. В итоге, разработка дизайна заняла целых две недели, мне каждый раз приходилось объяснять дизайнеру, что не так и как я себе представляю ту или иную форму.

Читайте также  Патент на MacBook Air добавит проблем производителям ультрабуков

И снова в бой, ищем разработчиков для моего приложения. Снова публикую проект на сайте free-lance. Ценник на разработку – 30000 рублей за проект. Поймите правильно, я планировал, что разработка займет порядка 2-3 недель. В ТЗ было не более 10 страниц.

Я хотел найти разработчиков не из Москвы, с ценой 300-400 рублей в час. Однако, нормальных откликов я не получил. Пришлось поднять цену проекта до 45 000 рублей(400-500 рублей в час). Тут уже удалось получить адекватные отклики и найти адекватных(как мне казалось) исполнителей. Для проведения работ и регистрации ошибок я развернул самый простейший багтрекер – Мантис.

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

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

Нужно добиться состояния когда остался номер кредита в поле ввода после сброса

Переключатель запрос сохранения перед сбросом должен быть включен

Работать нужно только на первой форме.

1. Ввести сумму, срок, ставку и нажать сохранить

2. Удалить значение из поля срок и нажать сброс – да. Закрыть сообщения

3. Снова ввести параметры кредита и нажать сохранить.- закрыть сообщение

4. Нажать сброс – да – номер кредита останется введенным

Нажать на вкладку настройки – приложение упало.

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

Параллельно велась локализация приложения и разработка скриншотов. Скриншоты я попросил сделать того же дизайнера, который делал основной дизайн. По поводу локализации снова пришлось обращаться на free-lance. Тут цены меня не порадовали. Цены на английский и немецкий в среднем 200-300 рублей за 1000 символов. Что касается японского – от 300-400 рублей за 1000 символов. В итоге пришлось добавить только немецкий и английский язык. Локализацию на украинский мне сделал дизайнер, за что ему отдельное спасибо. На японский язык я переводить не стал, потому что не могу проверить качество перевода. Возможно, я сделаю это в будущем.

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

Работа программы

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

На экране все достаточно просто – задаем сумму, ставку и срок и нажимаем рассчитать.

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

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

Читайте также  App Store + HD Винни Пух. Здесь есть медведи! (+ фото победителей конкурса)

Задание суммы я тоже постарался сделать более удобным в виде аналогового ползунка.

Первая половина ползунка – возможность задания суммы от 0 до 10 млн – наиболее популярная сумма кредита на жилье, обладателем кредита на которое я являюсь)).

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

Фишка приложения

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

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

График платежей

График платежей – тут я постарался, чтобы получившийся график был максимально приближен к моему реальному графику:

Вот как я себе представлял график:

  1. График должен повторять тот бумажный график, который дали мне в банке.
  2. Сколько нужно заплатить в текущем месяце? График должен отвечать на данный вопрос. Я не должен листать график в поисках текущего платежа. Я сразу должен видеть текущий платеж. Для этого я сделал стрелку указатель текущего платежа и автоматический переход к нему при просмотре графика.
  3. Приходится ли дата следующего платежа на выходной? Если платеж приходится на выходной, то можно опоздать с платежом и получить просрочку. Для этого выходные дни обозначены на графике платежей красной звездочкой. В выходные платить кредит нельзя, и пользователь должен быть предупрежден. Я специально не поставил общепринятые праздники, потому что приложением будут пользоваться не только жители России.
  4. Были ли досрочные погашения? Как изменился платеж по кредиту после них? Для этого, те месяца, в которых были досрочные погашения или иные изменения, я выделил светло синим фоном.

Досрочные погашения и экономия по кредиту.

Все в нашем мире меняется и кредит также вещь непостоянная. Условия кредита могу измениться. Что может произойти с кредитом, когда я плачу кредит? Я задался этим вопросом и попытался найти ответ исходя из своего опыта плательщика:

  1. Может измениться процентная ставка. К примеру, у меня была сначала 14 процентов, потом стала 12.
  2. Может измениться сумма кредита. Я могу вносить деньги досрочно.
  3. Существуют варианты, когда при внесении дополнительного платежа уменьшается срок кредита, при этом сумма аннуитетного платежа остается такой же

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

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

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

Достоверность расчета

При расчете использованы стандартные формулы для расчета аннуитетных и дифференцированных платежей.

Правильность расчета данных я проверял по своему графику платежей, который мне предоставил банк ВТБ24, а также по графикам друзей, у которых есть кредиты.

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

К примеру, я взял у одного из друзей график платежей по автокредиту, однако там Сбербанк взял и округлил платеж в погашение суммы основного до десятков(рассчитываемое значение – 1667.33, а в графике 16670).

Хочу отметить, что производилась сверка расчетов с официальным кредитным калькулятором, опубликованным на сайте Сбербанка. При расчете тестового примера разница между расчетами моего кредитного калькулятора и калькулятора Сбербанка составила 2 рубля при расчете кредита на 20 лет. Тут можно отметить, что разница может быть связана с тем, что кредитный калькулятор Сбербанка рассчитывает платеж без учета даты погашения.

Развитие приложения или что дальше?

Сейчас, если бы я находился на начале пути, я сделал бы все немного по-другому. Я бы поменял немного дизайн – убрал список кредитов с вкладки настройки. Я бы сделал список кредитов в виде панели слева, как это сделано в DropBox. Теперь это в будущем.

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

Если задуматься о развитии приложения, я бы добавил:

1. Добавить реализацию приложения для iPhone.

2. Добавить альбомную ориентацию.

3. Сравнение двух возможных вариантов кредита. Какой кредит выгоднее и насколько?

4. Графическое представление графика платежей и сравнения 2х кредитов.

5. Интеграция с iCloud.

6. Реструктуризация кредита.

7. Расчет налогового вычета по кредиту.

8. Комиссии, страховки и др. дополнительные траты, которые могут быть в кредите.

9. Календарь праздников – в каждой стране праздничные дни разные и я мог бы отмечать их на графике платежей в соответствии с календарем

10. Реализацию уведомлений о предстоящих платежах с помощью оповещений.

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

Но все это в будущем, и это уже новый проект с новым дизайном, сроками, исполнителями и ошибками. Что из этого будет реализовано, покажут отзывы пользователей о программе. Я не хотел бы делать программу универсальной или сборником разных калькуляторов – калькулятором кредитов, депозитов…. Это должен быть простой кредитный калькулятор и он должен считать кредиты хорошо.

Страница приложения: loancalc

iPad: $2.99 [iTunes link]

Я буду рад любым отзывам и предложениям по адресу dtachkov (sobaka) mail.ru

Данная история опубликована в рамках рубрики Developer Story, где разработчики делятся секретами своей внутренней кухни.
Источник: iphones.ru

Читайте также  App Store Play Kalei: фотографический калейдоскоп
TRAVEL