Android с серверной частью? Почему не локально?
Начну с самого простого..! Есть идеи, почему нам нужен отдельный сервер для нашего приложения для Android? Просто подумайте о ситуации, когда все пользователи, использующие мобильное приложение, получают данные и отправляют данные на сервер облачной базы данных!
Почему REST API?
API-интерфейсы REST взаимодействуют через http-запросы для обеспечения связи между вашим интерфейсным приложением и базой данных! Точно так же, как вы находитесь в Азии со своим мобильным приложением, а база данных размещена на сервере в Америке. Вам нужен агент для установления связи между вашим мобильным приложением и базой данных, не так ли?? Здесь вы можете реализовать свой собственный REST API. Он будет связываться с вашей центральной базой данных, используя функции, которые вы реализовали для выполнения CRUD. Ваше внешнее приложение устанавливает соединение и делает http-запрос для получения данных из базы данных. Реализованный вами REST API будет работать с этими запросами и отправлять вам данные в виде http-ответа.
Почему Flask?
Мой первоначальный вариант использования заключался в том, что я работал над мобильным приложением на основе машинного обучения, и мне нужно было выполнить предварительную обработку и прогнозирование с использованием Python и библиотек, совместимых с Python. Следовательно, было важным требованием иметь серверную часть Python, и именно здесь я вошел в «Flask»! В этом подходе мы можем отправлять наши данные с Android на сервер Flask через вызовы REST API и выполнять обработку, связанную с python, внутри сервера flask и возвращать выходные данные в наше приложение для Android через вызов REST API. Да, даже на первый взгляд просто, но приятно!
Здесь я использую «okhttp», стороннюю библиотеку, разработанную «Square» для отправки и получения http-запросов.
Я собираюсь продемонстрировать вам, как подключить внешнее приложение Android к серверу Python, реализованному с помощью Flask!
Вот шаги!
1. Создайте свое приложение для Android
2.Создать сервер Flask
3. Соедините Android-приложение и сервер
Эта демонстрация содержит простой пользовательский интерфейс.
Кнопка «Отправить почтовый запрос» отправляет запрос «POST» на сервер с именем пользователя, введенным в данное текстовое поле. Когда он отправляется на сервер, мы собираемся реализовать функцию «extract_name()», чтобы вернуть предложение, содержащее полученное имя, обратно пользователю в качестве ответа. Поэтому, как только вы введете свое имя и нажмете кнопку «Отправить почтовый запрос», полученный вами ответ будет отображаться в нижнем текстовом представлении.
При нажатии на кнопку «Отправить запрос на получение» на сервер будет отправлен запрос GET, и соответствующая функция сервера «get_fact()» вернет текст ответа. Он будет отображаться в текстовом представлении внизу.
Итак, давайте посмотрим, как это сделать!
1. Создайте свое приложение для Android
я. Просто откройте Android Studio и нажмите File->New Project, чтобы создать новый проект.
II. Затем я выбираю «Пустая активность» в этом предварительном просмотре. (Вы можете выбрать предпочтительный вид!)
Выберите шаблон действия и нажмите «Далее».
III. Дайте вашему проекту имя, а затем нажмите «Готово», как показано на изображении ниже.
Сейчас создается приложение для Android. Подождите некоторое время, пока ваша IDE сделает это за вас!
Я создаю простой пользовательский интерфейс с текстовым полем, кнопками и текстовым представлением, как упоминалось ранее. А пока просто скопируйте и вставьте приведенный ниже код в файл activity_main.xml. В конце вы получите четкое представление!
Теперь нажмите кнопку запуска в среде IDE, и вы увидите конкретный пользовательский интерфейс в симуляторе или эмуляторе:
2. Создайте сервер Flask
В другом месте (не в каталоге проекта Android) создайте новый файл с именем server.py и скопируйте туда следующий код.
Теперь откройте cmd в том же каталоге, где существует указанный выше файл, и запустите его с помощью команды
Python-сервер.py
Теперь ваш сервер должен быть запущен!
Вот как выглядит ваш cmd! Вы получите свой собственный URL в том месте, где я отметил красной стрелкой. Используйте этот URL в следующих разделах
3. Подключите Android-приложение к серверу
Добавьте следующую строку в файл AndroidManifest.xml для доступа к Интернету.
В теге «приложение» в файле манифеста поместите следующую строку
Добавьте следующую зависимость в раздел зависимостей{} в app/build.gradle.
Теперь давайте сделаем наш интерфейс функциональным! Для этого вставьте следующий код в файл MainActivity.java. Обязательно вставьте URL, который вы получили здесь в качестве значения переменной в строке 29 кода ниже.
** Обязательно включите подключение к Интернету для устройств, на которых работает сервер Flask, и мобильного телефона, на котором работает приложение Android.
Все готово!!! Да Свершилось! Нажав на кнопки «Отправить запрос на получение» и «Отправить запрос на публикацию», вы будете отправлять запросы на сервер и получать соответствующие ответы. Внимательно просмотрите кодовую базу, читая комментарии. Это просто!!!
Здесь вы можете увидеть демо. Посмотрите, ваше Android-приложение может отправлять данные на внутренний сервер и получать данные с него!
Вы можете найти исходный код на GitHub: https://github.com/RusJaI/Android-Flask
До встречи и здоровья!!!!