Проектная работа «Облачный определитель номера с функцией блокировки» | OTUS

Проектная работа «Облачный определитель номера с функцией блокировки»

Предлагаем вашему вниманию проектную работу Владислава Султанярова, выпускника курса «Разработчик Java». В ней Владислав реализовал клиент-серверный продукт для ограждения абонентов от нежелательных звонков.

Предполагается, что это приложение поможет защитить людей от спам-звонков (коллекторов, рекламных агентов и т. д.) и будет устанавливаться на смартфон с ОС Android.

При поступлении входящего вызова пользователю будет показываться информация о звонящем (при наличии этой информации в БД, если нет, то пользователь увидит, что данные отсутствуют). После звонка пользователь сможет пометить, что звонящий является спамером. В результате соответствующие данные передадутся на сервер. Впоследствии, любой другой пользователь приложения будет видеть, что этот номер находится в чёрном списке системы. Когда с него позвонят, пользователь получит об этом информацию или звонок с этого номера будет сразу автоматически отклонён.

Таким образом, работа сервиса заключается в предоставлении информации клиенту по входящему вызову и сохранении соответствующей информации после звонка (если пользователь передаст её). К слову, нечто похожее реализовано в приложении Kaspersky Who Calls.

Особенности реализации

Функционал, который удалось реализовать: 1. Серверное приложение: 1.1. Метод для ввода данных об абоненте. 1.2. Метод для получения информации об абоненте. 2. Мобильный клиент: 2.1. Создание главного экрана приложения с возможностью просмотра номеров в списке спама, добавления или удаления других номеров. 2.2. Перехват входящего вызова от абонента. 2.3. Отправка запроса на сервер для получения информации об абоненте (передаём номер). 2.4. Создание формы для вывода информации об абоненте (описание или имя и категории спама, если есть). 2.5. Добавление пользователя в спам или закрытие формы.

Схема взаимодействия базы данных и клиента

1-20219-6abeeb.png

Особенности работы Java под Android

В операционной системе Android для разработки приложений используется Java. Можно писать код приложения для Android с помощью предоставляемого Google API Java, который затем будет скомпилирован в файлы классов. На этом схожесть заканчивается. Android не использует виртуальную машину Java (JVM) для выполнения файлов классов, вместо этого, в нём используется виртуальная машина Dalvik, не являющаяся истинной JVM и не работающая с Java-байткодом.

Для выполнения на виртуальных машинах Dalvik файлы классов компилируются в формат DEX (Dalvik EXecutable – исполняемые файлы Dalvik). После преобразования в формат DEX, файлы классов вместе с другими ресурсами объединяются в пакеты Android (APK) для распространения и инсталляции на различных устройствах. Главное, что следует знать: в основе базовой библиотеки классов виртуальной машины Dalvik лежит подмножество проекта Apache Harmony, вследствие чего она не поддерживает всё API J2SE.

Чистая архитектура

2-20219-bd9aa9.png

Модель-Вид-Представитель

3-20219-dd209d.png

Схема базы данных

4-20219-b0fd02.png

Вывод

В результате выполнения данной работы студент курса научился разрабатывать клиентские приложения для Android OS и узнал ряд особенностей данной операционной системы. Кроме того, научился создавать серверные приложения с помощью Spring Boot и смог на практике применить полученные на курсе знания.

За предоставленные материалы выражается благодарность автору проекта Владиславу Султанярову. Технические особенности реализации смотрите по ссылке на GitHub Владислава.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто