Skip to content

Приложение для поиска информации о карте по BIN.

Notifications You must be signed in to change notification settings

antbessonov/BINSearch

Repository files navigation

BIN Search

Приложение для поиска информации о карте по BIN.

БИН (BIN) - "Bank Identification Number" или "банковский идентификационный номер", первые 6-8 цифр номера банковской карты.

Стек: Kotlin, Jetpack Compose, Retrofit2, Room, Hilt, Kotlin Coroutines

Основные функции

  • Получение доступной информации о банковской карте по BIN c binlist.net
  • Сохранение предыдущих запросов

Дополнительно: нажатие на URL банка, телефон банка, координаты страны отправляет пользователя в приложение, которое может обработать эти данные.

Описание работы приложения

Приложение состоит из двух экранов:

  • "Поиск" - на котором осуществляется ввод BIN и отображение информации о карте,
  • "История" - содержит историю предыдущих запросов.

Поиск

Экран "Поиск" изначально состоит из одного поля ввода "BIN", в который вводиться номер для поиска. Необходимо указать от 6 до 8 цифр. Если указан BIN меньше 6 цифр поиск выполнить невозможно, появляется предупреждение и кнопки выполняющие запрос не активны. Количество введенных символов отображается в правом нижнем углу под полем ввода. Указать возможно только цифры и максимум 8.

Если запрос выполняется успешно, то появляется вся доступная информация о карте для указанного BIN. При повторной попытке ввода BIN информация о карте пропадает.

Успешный поиск

Если BIN не найден, выводиться соответствующие сообщение.

BIN не найден

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

Клик ко контактным данным

Если интернет сообщение отсутствует, запрос выполнить не получиться, появиться сообщение об ошибке.

Отсутствует интернет сообщение

История

Экран "История" отображает историю предыдущих запросов в формате: номер BIN, дата и время запроса. Список запросов выводиться с сортировкой по дате, последний запрос - сверху.

История поиска

При первом запуске установленного приложения на экране будет отображаться информационное сообщение: "История поиска отсутствует."

История поиска отсутствует

Используемые библиотеки и технологии

Jetpack Compose Построение UI организованно с использованием Jetpack Compose. Для создания UI и описания логики используется один язык программирования. Compose уменьшает объем кода, особенно при создании списков, что подразумевалось в задании. Большую часть кода можно переиспользовать. Jetpack Compose имеет понятную документацию и интегрирован со многими библиотеками Jetpack. Изложенные преимущества повлияли на выбор в сторону Compose.

Material3 Пользовательский интерфейс создавался с компонентами Material Design 3. Material3 включает в себя обновленные компоненты, чтобы соответствовать современному стилю Android приложений.

Navigation Compose Для навигации использовался Navigation Compose из Navigation Component.

System UI Controller System UI Controller из библиотеки Google Accompanist использовался для управления цветами System UI bar

Retrofit2 Для взаимодействия с REST API используется библиотека Retrofit2. Библиотека достаточно проста в использовании, имеет понятную документацию и используется многими разработчиками. Retrofit2 поддерживает асинхронную работу. Для обработки простых запросов с JSON объектами в рамках данной задачи подходит отлично.

OkHttp3 Для отслеживания и регистрации информации о запросах и ответах использовался HttpLoggingInterceptor из библиотеки OkHttp3, которую можно использовать совместно с Retrofit2. Библиотека OkHttp3 разработана той же компанией, что и Retrofit2, а так же используется в реализации Retrofit2.

Room Для работы с базой данных используется библиотека Room. Room входит в состав Android Jetpack и является рекомендованной к применению компанией Google.

Hilt Библиотека внедрения зависимостей Hilt построена на основе Dagger и позволяет использовать ее преимущество в упрошенной форме. Hilt интегрирован с библиотеками Android Jetpack. Будучи простой в настройке библиотека Hilt отлично подходит для данного проекта.

Kotlin Coroutines Асинхронная работа реализована с помощью Coroutines. Coroutines являются частью языка Kotlin и рекомендованы для асинхронного программирования на Android.

JUnit Unit-тесты написаны с использованием JUnit. JUnit - включена по умолчанию в Android Studio и для написания простых тестов является достаточной.

About

Приложение для поиска информации о карте по BIN.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages