Ü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.

  1. 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.
  2. Android Studio'da bir proje oluşturun.

    • Yeni bir Android projesi oluşturun ve projenin adını ve konumunu belirleyin.
  3. 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'
}

  1. 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); }

  1. 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.
  2. 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

Bu blogdaki popüler yayınlar

Dıştan İçe: Kişisel Gelişimde Kendine Yolculuk - Gerçek Potansiyelinizi Keşfedin ve Anlamlı Bir Hayatın Kapılarını Aralayın

Karanlığın İçinden Yükselen Aydınlık: Veridya'da Liderin İhanetiyle Mücadele Eden Bir Halkın Hikayesi

Teknolojinin Esaretinden Kurtulun: Dijital Detoks Yapmanın Gücü

Zorlukların Üstesinden Gelenler: Başarıya Giden Yolda Engelleri Aşan İnsanların Hikayeleri

Lise ve Ortaokul Çağındaki Gençlerin Okuması Gereken Toplam 13 Etkileyici Kitap Önerisi