...

четверг, 24 апреля 2014 г.

Приложение Мои [Кредитные] Карты для Android

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


Я имею счета в четырех банках, к которым привязаны 7 кредитных и дебетовых карт. Не спрашивайте, зачем так много…



Оповещения о полонениях, списаниях и покупках банки присылают по SMS. И все бы ничего, но в одном из банков у меня 4 карты, и все SMS по операциям по ним складываются в один «thread» в Hangouts. Т.е. чтобы узнать баланс по карте, по которой транзакция была, скажем пару недель назад, сообщение приходится искать вручную, по номеру карты.


Т.к. Android позволяет сторонним приложениям читать входящие SMS, я начал разрабатывать приложение, которое сканирует sms/inbox и отображает актуальный баланс по всем картам.


Поначалу я реализовал распознавание SMS по правилам для каждого банка. Все работало, но взглянув на список банков в России и представив объем работ я решился на «безумный шаг»: попытаться написать алгоритм парсинга сообщений от банков.


Ох… чего я только не насмотрелся в банковских SMS:

— некоторые банки до сих пор считают, что валюта в нашей стране RUR

— некоторые банки присылают не последние 4, а 6 цифр номера карты

— «одаренные» банки присылают операции по счету, а не по карте «Пополнение счета *1234»

— еще более «одаренные» просто присылают «POSTUPLENIE SREDSTV NA SCHET» — без указания счета

— совсем «интересно» парсить сообщения в которых кроме информации о карте содержится реклама

— вариаций форматирования баланса — несчетное количество


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


Если сообщение от вашего банка не распознается, пожалуйста перешлите его на mycards@alsedi.com — все оперативно поправим.


Для особых случаев предусмотрен режим «дополнительного распознавания», например так можно связать сообщения с операциями по счету с конкретной картой (чьи номера, с вероятностью 99.99% не совпадут).


Некоторые банки (а может и все?) включают кредитный лимит в доступный баланс. Видишь, например, «Баланс: 20000р.», а на самом деле 15000 кредитного лимита и 5000 собственных средств — и постоянно нужно помнить и считать на какой карте какой лимит. Приложение позволяет ввести этот лимит, который автоматически вычитается из отображаемого баланса. Если вы влезли в кредит, то отобразится отрицательная сумма – как раз соответствующая размеру используемого кредита. Очень удобно.


Приложени абсолютно бесплатно, без рекламы, не требует соединения с Интернет (и, разумеется, никуда не сливает СМС. Ради этого, даже Flurry не стал интегрировать).


Что планируется добавить: виджет, кастомные изображения карт (вместо логотипов Visa / MasterCard), логотипы банков, изменение темы оформления, защита паролем (на вход).


Google Play: My Cards — 256 Кб.


PS. Да, я знаю, что есть приложения аналоги (правда узнал о них уже после написания своего).

PPS. Повторюсь еще раз — это первый опыт разработки под Android. Не судите слишком строго.


Пользуйтесь на здоровье.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Комментариев нет:

Отправить комментарий