Sberpay - упрощаем работу с Мобильным банком от Сбербанка

Размещайте ссылки на ваши собственные приложения с целью пиара или для бета-тестирования.
Правила форума
О возможности разместить информацию о вашем приложении на главной странице сайта читайте здесь: http://startandroid.ru/ru/about/pomosch ... henii.html
Ответить
omdroid
Сообщения: 8
Зарегистрирован: 28 янв 2014, 13:56

Sberpay - упрощаем работу с Мобильным банком от Сбербанка

Сообщение omdroid » 04 фев 2015, 16:33

Уважаемые форумчане, спешу представить своё второе приложение.
Продолжаю изучать Android, времени мало, маленький ребенок не очень способствует. Но чувствую что кое-что начинает уже получаться.

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

В процессе создания нового приложения, пришло окончательно осознание, я не говнокодер, я гуглокодер, так как все свои вопросы решаю именно через google и stackoverflow.

Ну ладно, вводную заканчиваем и переходим к приложению.
Sberpay - приложение автоматизирующее переводы между друзьями.
Думаю многие знают, что у сбербанка есть услуга «Мобильный банк», которая позволяет переводить средства друзьям/знакомым по номеру телефона, который привязан к этой услуге.

Сейчас процесс перевода выглядит следующим образов:
1. Открываем стандартное СМС приложение;
2. Создаем новое сообщение на номер 900;
3. В тело сообщения пишем фразу: Перевод 9261234565 300
Эта команда осуществит перевод пользователю услуги «Мобильный банк» с привязанным номером 926-123-45-65 на сумму 300 рублей
4. После этого нужно дождаться кода подтверждения;
5. Отправить еще одно сообщение на 900, с кодом полученным в п.4.

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

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

Если в первом своем приложении я сосредоточился на изучении работы с Layout и пониманию как вообще верстать под Android, тот тут основной упор сделал на работу с архитектурой:
- научился разносить часть функций в отдельные методы;
- реализовал работу с данными через getter/setter;
- создал отдельные классы для работы с SMS;
- оптимизировал работу с объектами и ушел в некоторых местах от ветвистых конструкций switch/case, заменив это на передачу параметра в метод;

Из того что изучил:
- узнал что такое регулярные выражения и неплохо так потоптался по грабляс ASCII / UTF, почти все примеры в интернете описывают работу с ASCII и долго не мог понять, почему работает не так;
- разобрался с SharedPreferences для хранения настроек и промежуточных данных;
- немного глубже влез в файл манифеста и покопал права доступа для приложения;
- получше разобрался с возможностями IDE, в частности понял как тестировать консольный Java код в Android Studio в рамках собственного проекта;
- начал пробовать разбираться с дебагером, тут конечно все печально, почему-то на всех обучающих ресурсах его использование обходят стороной :(

Пришлось подумать над разнообразными мелочами:
- контроль отправляемых СМС и отправка проверочного кода только в том случае, если сообщение на перевод сделано через приложение;
- контроль ввода данных и их корректность;
- автоматический вызов клавиатуры и установка фокуса в поле ввода;

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

Скриншоты:
Главный экран
Главный экран
main.png (73.56 КБ) 2199 просмотров
Добавление нового адресата
Добавление нового адресата
add_new.png (64.21 КБ) 2199 просмотров
На данный момент дизайну много времени не уделял, сделал минимальный набор элементов. В будущем главное окно видится в таком виде.
Будущий дизайн
Будущий дизайн
future.png (59.9 КБ) 2199 просмотров
Уже родился достаточно большой список работ на будущее:
1. Подсвечивать слот, который на данный момент выбран;
2. Блокировать перевод в случае, если прошлый еще не завершен;
3. Поставить таймер на проверку кода, у сбербанка он живет 5 минут;
4. Добавить возможность контекстного поиска по адресной книге (пока никак не могу понять как работать с этим контент провайдеров);
5. Добавить виджет, который будет показывать текущий баланс по карте и сумму последнего перевода со статусом (ОК/NOK);
6. Добавить возможность оплачивать мобильные телефоны (тут все просто, но нужно продумать интерфейс);

В процессе работы обнаружил новый инструмент Sketch, с его помощью удалось нарисовать очень неплохую иконку, при условии что рисовать я не умею вообще. Просто следовал руководству Google по Material Design: http://www.google.com/design/spec/style/icons.html

В остальном инструменты почти не изменились с прошлого раза:
- IDE - перешел на Android Studio, задолбали постоянные грабли с Gradle в IDEA при каждом обновлении, тут вроде пока все ровно;
- пишу по прежнему на маке;
- в качестве инструмента макетирования использую Wireframe Sketcher Studio;
- для рисования Pixelmator (растр) и Sketch (вектор);
- текстовый редактор Sublime Text;
- тестируется все на собственном Moto X и телефонах коллег Samsung Galaxy Note / S3/ S4, - хотелось бы конечно большего разнообразия :)

Само приложение доступно для загрузки из Google Play (ждем публикации): https://play.google.com/store/apps/deta ... id.sberpay

Ответить