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

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

Я имею счета в четырех банках, к которым привязаны 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. Не судите слишком строго.

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

© Habrahabr.ru