В предыдущей статье мы рассматривали теоретическую часть, касающуюся кредитов и того, как рассчитывать платежи по ним, чтобы впоследствии применить эти знания для написания собственного кредитного калькулятора.
Теперь наконец настал момент, чтобы перейти от теории к практике. В этой статье мы рассмотрим элементы интерфейса и реализацию приложения.
Начальный экран
При старте приложения пользователь попадает на главную активность, в которой будут показываться сохранённые кредиты. Каждая запись представляет из себя “карточку”, реализованную с помощью виджета CardView, и размещается внутри виджета RecyclerView.
Пока что экран пуст, поскольку на данный момент не сохранён ни один кредит. Чтобы добавить новый, нужно нажать на кнопку в правом нижнем углу экрана, которая представляет собой стандартный виджет FloatingActionButton.
Экран нового кредита
При нажатии на кнопку добавления пользователь попадает на новую активность, которая содержит в себе два виджета CardView. Первый виджет предлагает ввести пользователю данные о кредите (тип платежа, сумма кредита, срок, процентная ставка и дата первого платежа), а затем рассчитать по ним платёж.
Если пользователь, не заполнив все поля, нажмёт “Рассчитать”, ничего не произойдёт и он увидит сообщение о том, что все поля необходимо заполнить.
Когда все данные введены и нажата кнопка “Рассчитать”, появляется второй виджет CardView, который содержит результаты расчётов: сумму платежа, величину переплаты, общую сумму и сроки выплат.
Поскольку информация занимает много места и может не помещаться на экранах маленьких смартфонов, оба виджета размещены внутри LinearLayout, помещённого в контейнер ScrollView, что обеспечивает горизонтальную прокрутку экрана приложения. LinearLayout здесь используется лишь потому, что ScrollView позволяет размещать внутри себя лишь один дочерний элемент.
Однако здесь есть ещё один нюанс. В предыдущей статье мы говорили, что есть два вида платежа: аннуитетный и дифференцированный. Приведённые выше результаты показаны для аннуитетного платежа, который одинаков для каждого периода. При дифференцированном платеже каждый месяц размер платежа разный, причём он постепенно уменьшается, поэтому в этом случае указывается диапазон от платежа в первый месяц до платежа в последний.
Интересное наблюдение: как можно увидеть, при дифференцированном платеже размер переплаты ниже, чем при аннуитетном, причём чем больше срок средита, тем заметнее разница. Это делает дифференцированный платёж более выгодным в некоторых ситуациях.
Для того, чтобы более подробно изучить, в какой срок сколько платить (особенно это касается дифференцированного платежа), на карточке с результатами есть кнопка “График”, при нажатии на которую откроется новая активность.
Экран графика платежей
После нажатия на кнопку пользователь попадает на следующую активность, которая показывает подробную информацию о состоянии кредита на каждый период выплат.
Здесь в роли контейнера используются всё те же карточки, которые позволяют в удобном виде показать все данные о платежах. Предыдущий экран показывает лишь общий итог по кредиту, здесь же пользователь может увидеть всё более подробно. Например, в третий месяц сумма платежа при заданных ранее параметрах составляет 972,22, из которых часть основного долга равна 833,33, а процентные начисления – 138,89.
Знание этих данных позволяет более рационально планировать свои расходы, исходя из того, сколько нужно будет заплатить в следующем периоде.
Сохранение кредита
Как вы могли заметить, на экране создания нового кредита в правом верхнем углу есть кнопка. С помощью этой кнопки пользователь может сохранить введённые параметры кредита, чтобы в будущем просто открыть его и сразу увидеть, сколько и когда нужно заплатить.
Когда пользователь вернётся на эту активность и нажмёт кнопку, он увидит диалоговое окно, которое предложить дать название кредиту. Это нужно для того, чтобы было удобнее находить нужный кредит в списке.
Затем, при нажатии на “ОК”, приложение вернётся на начальный экран, в списке которого вы сразу увидите ваш только что сохранённый кредит с общей информацией: название, сумма кредита, сроки выплат.
Заключение
На этом всё. Таким образом, мы реализовали свой кредитный калькулятор, с помощью которого легко можно рассчитать размер выплат для нужного кредита.