Ücretsiz Bir Hava Durumu Gösteren Android Uygulaması Kodlama Rehberi
Android için ücretsiz bir hava durumu uygulaması oluşturmak için, öncelikle hava durumu verilerine erişebileceğiniz bir API'ye ihtiyacınız olacak. OpenWeatherMap gibi birçok ücretsiz hava durumu API'si mevcuttur. Bu örnekte OpenWeatherMap API'si kullanacağız.
OpenWeatherMap API anahtarınızı alın:
- OpenWeatherMap web sitesine gidin ve kaydolun.
- Ana sayfanın sağ üst köşesinde yer alan "API" sekmesine tıklayın.
- API anahtarınızı almak için gerekli adımları izleyin.
Android Studio'da bir proje oluşturun.
- Yeni bir Android projesi oluşturun ve projenin adını ve konumunu belirleyin.
Uygulamanızda hava durumu verilerini kullanmak için retrofit ve gson kütüphanelerini ekleyin.
- Uygulamanızın build.gradle dosyasına aşağıdaki kodu ekleyin:
dependencies {
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
}
- Uygulamanızda hava durumu verilerini almak için bir API arayüzü tanımlayın.
- API anahtarınızı ve API'nin baz URL'ini kullanarak Retrofit nesnesini oluşturun.
- Bir API arayüzü tanımlayın ve hava durumu verilerini almak için gerekli endpointleri belirleyin.
public interface WeatherApi {
String BASE_URL = "https://api.openweathermap.org/data/2.5/";
String API_KEY = "your_api_key_here";
@GET("weather")
Call<WeatherResponse> getWeather(@Query("q") String city, @Query("appid") String apiKey);
}
Hava durumu verilerini göstermek için bir arayüz tasarlayın.
- Uygulamanızda bir ImageView, TextView ve EditText gibi arayüz öğeleri oluşturun.
- Kullanıcının hava durumunu sorgulayabileceği bir EditText oluşturun.
- ImageView ve TextView öğeleri, hava durumu verilerini göstermek için kullanılacaktır.
Hava durumu verilerini almak için bir AsyncTask oluşturun.
- Kullanıcının sorguladığı şehir adını EditText öğesinden alın.
- Retrofit kullanarak hava durumu verilerini API'den alın.
- Alınan verileri WeatherResponse nesnesine dönüştürün.
- WeatherResponse nesnesini kullanarak ImageView ve TextView öğelerini güncelleyin.
public class WeatherTask extends AsyncTask<String, Void, WeatherResponse> {
private ImageView weatherIcon;
private TextView temperature;
private Context context;
public WeatherTask(ImageView weatherIcon, TextView temperature, Context context) {
this.weatherIcon = weatherIcon;
this.temperature = temperature;
this.context = context;
}
@Override
protected Weather
Response doInBackground(String... params) {
String city = params[0];
WeatherApi api = RetrofitClient.getClient().create(WeatherApi.class);
Call<WeatherResponse> call = api.getWeather(city, WeatherApi.API_KEY);
try {
Response<WeatherResponse> response = call.execute();
if (response.isSuccessful()) {
return response.body();
} else {
Toast.makeText(context, "Error: " + response.code(), Toast.LENGTH_SHORT).show();
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(WeatherResponse response) {
if (response != null) {
String temp = String.format(Locale.getDefault(), "%.0f°C", response.getMain().getTemp() - 273.15);
temperature.setText(temp);
int iconId = context.getResources().getIdentifier("icon_" + response.getWeather().get(0).getIcon(),
"drawable", context.getPackageName());
weatherIcon.setImageResource(iconId);
}
}
}
7. Arayüz öğelerini AsyncTask'e bağlayın.
- Uygulamanızın onCreate() yöntemine, EditText, ImageView ve TextView öğelerini tanımlayın.
- EditText öğesi için bir TextWatcher oluşturun ve kullanıcının şehir adını girerken her karakteri yakalayın.
- TextWatcher'ı AsyncTask'e bağlayın ve hava durumu verilerinin her sorgulamasında çalışmasını sağlayın.
```java
public class MainActivity extends AppCompatActivity {
private EditText cityInput;
private ImageView weatherIcon;
private TextView temperature;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
cityInput = findViewById(R.id.city_input);
weatherIcon = findViewById(R.id.weather_icon);
temperature = findViewById(R.id.temperature);
cityInput.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
String city = s.toString();
if (!city.isEmpty()) {
WeatherTask task = new WeatherTask(weatherIcon, temperature, MainActivity.this);
task.execute(city);
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
}
}
Bu şekilde ücretsiz bir hava durumu gösteren Android uygulaması oluşturabilirsiniz. Tabii ki, uygulamayı özelleştirmek ve kullanıcı arayüzünü iyileştirmek isteyebilirsiniz, ancak bu örnek uygulama, OpenWeatherMap API'sini kullanarak hava durumu verilerini almayı ve bunları bir Android arayüzünde göstermeyi göstermek için yararlı bir başlangıç noktasıdır.

Yorumlar
Yorum Gönder