Изучение Android Studio за одну статью! Создание программы с API

Изучение Android Studio за одну статью! Создание программы с API

Информация про Андроид

На ОС Андроид сегодня работают не только мобильные и планшетные устройства, но также всевозможные часы, телевизоры, компьютеры и даже, как бы это не звучало, холодильники.



Несмотря на огромное множество устройств разработка под многие из них происходит через одну общую программу – Android Studio. Конечно же, у каждой платформы будут свои особенности: размер экрана, характеристики устройства и так далее. Тем не менее, общий процесс создания будет примерно схожим.


Таким образом, изучив Андроид Студио вы сможете в будущем спокойно переходить от одной платформы к другой. Напомним, на сегодняшний день только мобильные устройства на ОС Андроид занимают примерно 85% всего рынка смартфонов.


Языки программирования для Андроид

Разрабатывать под Андроид можно за использованием нескольких разных языков программирования. Зачастую все разрабатывают на основе языка Java, но помимо него можно использовать язык Kotlin, Python, React Native, Flutter и даже на HTML и CSS можно делать проекты. 


Ниже видео на тему разработки Андроид проекта на HTML и CSS:




Вы можете использовать разные языки, но наиболее часто используется Джава или его более молодой собрат – Kotlin. В любом случае, если вы только приступаете к Андроид, то ни про какой другой язык помимо Джава вам не стоит думать. Если в будущем нужно будет писать на Котлин, то вам все равно знания разработки Андроид проектов на Джава будут нужны.


Установка всего необходимого

Для разработки под Андроид требуется всего две вещи. Во-первых, вам нужно скачать на компьютер Джава JDK. Это можно сделать через официальный сайт Oracle.


Во-вторых, вам потребуется программа Андроид Студио. Именно она является наиболее популярной программой для разработки приложений под Андроид. Скачать бесплатно эту программу можно также с ее официального сайта. После скачивания Джава и Андроид Студио выполните их установку и далее мы сможем приступить к разработке проекта.


Создание функций

Теперь нам нужно создать весь функционал для приложения. 


В приложении мы будем получать данные о погоде. Чтобы это делать сперва зарегистрируйтесь и получите API ключ на сайте OpenWeaterMap.


Теперь остается прописать весь код. Код класса «MainActivity» представлен ниже вместе с комментариями. 


Дополнительно скачать полностью весь проект можно по этой ссылке.

package com.itproger.weatherapp;

import androidx.appcompat.app.AppCompatActivity;

import android.annotation.SuppressLint;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

public class MainActivity extends AppCompatActivity {

	// Поля, что будут ссылаться на объекты из дизайна
	private EditText user_field;
	private Button main_btn;
	private TextView result_info;

	@Override
	protected void onCreate(Bundle savedInstanceState) { // Сработает при создании Activity
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		// Устанавливаем ссылки на объекты из дизайна
		user_field = findViewById(R.id.user_field);
		main_btn = findViewById(R.id.main_btn);
		result_info = findViewById(R.id.result_info);

		// Обработчик нажатия на кнопку
		main_btn.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View view) {
				// Если ничего не ввели в поле, то выдаем всплывающую подсказку
				if(user_field.getText().toString().trim().equals(""))
					Toast.makeText(MainActivity.this, R.string.no_user_input, Toast.LENGTH_LONG).show();
				else {
					// Если ввели, то формируем ссылку для получения погоды
					String city = user_field.getText().toString();
					String key = "ваш ключ здесь";
					String url = "https://api.openweathermap.org/data/2.5/weather?q=" + city + "&appid=" + key + "&units=metric&lang=ru";

					// Запускаем класс для получения погоды
					new GetURLData().execute(url);
				}
			}
		});
	}

	@SuppressLint("StaticFieldLeak")
	private class GetURLData extends AsyncTask<String, String, String> {

		// Будет выполнено до отправки данных по URL
		protected void onPreExecute() {
			super.onPreExecute();
			result_info.setText("Ожидайте...");
		}

		// Будет выполняться во время подключения по URL
		@Override
		protected String doInBackground(String... strings) {
			HttpURLConnection connection = null;
			BufferedReader reader = null;

			try {
				// Создаем URL подключение, а также HTTP подключение
				URL url = new URL(strings[0]);
				connection = (HttpURLConnection) url.openConnection();
				connection.connect();

				// Создаем объекты для считывания данных из файла
				InputStream stream = connection.getInputStream();
				reader = new BufferedReader(new InputStreamReader(stream));

				// Генерируемая строка
				StringBuilder buffer = new StringBuilder();
				String line = "";

				// Считываем файл и записываем все в строку
				while((line = reader.readLine()) != null)
					buffer.append(line).append("\n");

				// Возвращаем строку
				return buffer.toString();

			} catch (MalformedURLException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			} finally {
				// Закрываем соединения
				if(connection != null)
					connection.disconnect();

				try {
					if (reader != null)
						reader.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}

			return null;
		}

		// Выполняется после завершения получения данных
		@SuppressLint("SetTextI18n")
		@Override
		protected void onPostExecute(String result) {
			super.onPostExecute(result);

			// Конвертируем JSON формат и выводим данные в текстовом поле
			try {
				JSONObject jsonObject = new JSONObject(result);
				result_info.setText("Температура: " + jsonObject.getJSONObject("main").getDouble("temp"));
			} catch (JSONException e) {
				e.printStackTrace();
			}
		}

	}
}


Видео на эту тему

Также вы можете просмотреть детальное видео по разработке данного приложения:




Дополнительный курс

На нашем сайте также есть углубленный курс по изучению языка Java. В ходе огромной программы вы изучите не только язык Java, но также научитесь создавать веб сайты, программы под ПК, приложения под Андроид и многое другое. За курс вы изучите массу нового и к концу программы будете уметь работать с языком Java и создавать на нём полноценные проекты.


()
Количество показов: 230
26 марта 2021

Возврат к списку

Корзина0 позиций на сумму 0 руб.