Neler yeni

Yazılım Forum

Tüm özelliklerimize erişmek için şimdi bize katılın. Kayıt olduktan ve giriş yaptıktan sonra konu oluşturabilecek, mevcut konulara yanıt gönderebilecek, itibar kazanabilecek, özel mesajlaşmaya erişebilecek ve çok daha fazlasını yapabileceksiniz! Bu hizmetlerimiz ise tamamen ücretsiz ve kurallara uyulduğu sürece sınırsızdır, o zaman ne bekliyorsunuz? Hadi, sizde aramıza katılın!

Kotlin ile Sıfırdan Temel Bir Android Uygulama Geliştirme Rehberi

Mobil uygulamalar günümüz dünyasının vazgeçilmez bir parçası haline geldi. Android, geniş kullanıcı kitlesiyle bu alanda en popüler platformlardan biri. Peki, bu platformda nasıl uygulama geliştirilir? Cevap: Kotlin ve Android Studio!

Bu kapsamlı rehberde, Kotlin programlama dili ve Android Studio kullanarak temel bir Android uygulamasını sıfırdan nasıl geliştireceğinizi adım adım öğreneceksiniz. Amacımız, Android uygulama geliştirmenin temel prensiplerini anlamanızı ve kendi projeleriniz için sağlam bir temel oluşturmanızı sağlamaktır.

1. Geliştirme Ortamı Kurulumu
Android uygulaması geliştirmeye başlamadan önce doğru bir geliştirme ortamına ihtiyacınız var. Bunun için Google'ın resmi IDE'si olan Android Studio'yu kullanacağız.

Adım 1: Android Studio İndirme ve Kurulumu
Android Studio'yu resmi web sitesinden indirebilirsiniz: https://developer.android.com/studio
Kurulum sihirbazını takip ederek kurulumu tamamlayın. Bu süreçte Android SDK (Software Development Kit) ve gerekli diğer bileşenler de kurulacaktır.

Adım 2: SDK Bileşenlerinin Kontrolü
Android Studio'yu açtıktan sonra, `Tools > SDK Manager` yolunu izleyerek gerekli Android SDK platformlarının (örneğin, en son stabil sürüm) ve SDK Tools'un yüklü olduğundan emin olun.
İpucu: Genellikle, Android Studio ilk kurulumda sizin için gerekli olanları otomatik olarak yükler, ancak kontrol etmek her zaman iyidir.

2. İlk Projemizi Oluşturma
Android Studio açılış ekranında `New Project` seçeneğini tıklayın.
`Phone and Tablet` sekmesi altında `Empty Activity` şablonunu seçin ve `Next` düğmesine basın.

Proje Detayları:
  • `Name`: Uygulamanızın adı (örneğin: `IlkAndroidUygulamam`)
  • `Package name`: Benzersiz bir tanımlayıcı (örneğin: `com.example.ilkandroiduygulamam`)
  • `Save location`: Projenizin kaydedileceği yol.
  • `Language`: Kotlin
  • `Minimum SDK`: Uygulamanızın çalışmasını istediğiniz en düşük Android sürümü (genellikle varsayılan değer uygundur).
`Finish` düğmesine tıklayarak projenizi oluşturun. Android Studio gerekli dosyaları senkronize ederken biraz bekleyebiliriz.

3. Proje Yapısı ve Temel Bileşenler
Yeni bir Android projesi birçok dosya ve klasör içerir. Başlangıçta odaklanacağımız ana dosyalar şunlardır:
  • `app/src/main/java/com/example/ilkandroiduygulamam/MainActivity.kt`: Uygulamanızın ana mantığını içeren Kotlin kodu.
  • `app/src/main/res/layout/activity_main.xml`: Uygulamanızın kullanıcı arayüzünü (UI) tanımlayan XML dosyası.
  • `app/src/main/res/values/strings.xml`: Uygulamadaki metinleri içeren dosya (dil desteği için önemlidir).
  • `app/src/main/AndroidManifest.xml`: Uygulamanızın temel özelliklerini, izinlerini ve bileşenlerini tanımlayan dosya.

4. Kullanıcı Arayüzü Tasarımı (XML Layout)
`activity_main.xml` dosyasını açtığınızda, genellikle bir `ConstraintLayout` içinde varsayılan bir `TextView` göreceksiniz.
  • TextView: Ekranda metin göstermek için kullanılır.
  • Button: Kullanıcı etkileşimi için tıklanabilir düğmeler oluşturur.
  • EditText: Kullanıcılardan metin girişi almak için kullanılır.
Örnek bir UI tasarımı (activity_main.xml):
Kod:
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textViewMerhaba"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/merhaba_dunya"
        android:textSize="24sp"
        app:layout_constraintBottom_toTopOf="@+id/editTextGiris"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_chainStyle="packed" />

    <EditText
        android:id="@+id/editTextGiris"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:hint="@string/adiniz_nedir"
        android:padding="16dp"
        android:layout_marginTop="16dp"
        app:layout_constraintBottom_toTopOf="@+id/buttonGoster"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textViewMerhaba"
        android:layout_marginHorizontal="24dp"
        android:inputType="textPersonName"
        android:autofillHints="name" />

    <Button
        android:id="@+id/buttonGoster"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/goster_butonu_metni"
        android:layout_marginTop="16dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/editTextGiris" />

</androidx.constraintlayout.widget.ConstraintLayout>
Yukarıdaki XML kodunda, bir `TextView`, bir `EditText` ve bir `Button` tanımladık. Bu bileşenlerin ekrandaki konumlarını `ConstraintLayout` ile belirledik. Her bileşenin benzersiz bir `android:id` değeri olması, Kotlin kodunda onlara erişmemizi sağlar.
Not: Metinleri direkt olarak XML içinde yazmak yerine `strings.xml` dosyasından `@string/` kullanarak çekmek iyi bir pratiktir.
Kod:
<!-- app/src/main/res/values/strings.xml -->
<resources>
    <string name="app_name">IlkAndroidUygulamam</string>
    <string name="merhaba_dunya">Merhaba, Android Dünyası!</string>
    <string name="adiniz_nedir">Adınız nedir?</string>
    <string name="goster_butonu_metni">Göster</string>
    <string name="hos_geldin_mesaji">Hoş geldin, %s!</string>
</resources>

5. Kotlin Kodu ile Etkileşim (MainActivity.kt)
Şimdi, XML'de tasarladığımız arayüz bileşenleriyle Kotlin kodumuzda nasıl etkileşim kuracağımıza bakalım. `MainActivity.kt` dosyasını açın.
Bir `Activity` sınıfı, uygulamanızın kullanıcı arayüzünü barındıran tek bir ekranı temsil eder. Uygulamanızdaki her ekran genellikle kendi `Activity`'sine sahiptir.
`onCreate` metodu, Activity yaşam döngüsündeki ilk metodtur ve Activity oluşturulduğunda çağrılır. Burası genellikle layout'u ayarladığımız ve View bileşenlerine referans aldığımız yerdir.
Kotlin kodu örneği (MainActivity.kt):
Kod:
package com.example.ilkandroiduygulamam

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import android.widget.Toast // Toast mesajları için

class MainActivity : AppCompatActivity() { // AppCompatActivity'den miras alır
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main) // layout dosyasını ayarlar

        // UI bileşenlerine referans alma
        val textViewMerhaba: TextView = findViewById(R.id.textViewMerhaba)
        val editTextGiris: EditText = findViewById(R.id.editTextGiris)
        val buttonGoster: Button = findViewById(R.id.buttonGoster)

        // Butona tıklama olayını dinleme
        buttonGoster.setOnClickListener {
            val isim = editTextGiris.text.toString() // EditText'ten metni alma

            if (isim.isNotBlank()) { // Eğer isim boş değilse
                // TextView'i güncelleme
                val hosGeldinMesaji = getString(R.string.hos_geldin_mesaji, isim)
                textViewMerhaba.text = hosGeldinMesaji
                // Bir Toast mesajı gösterme
                Toast.makeText(this, "Hoş Geldin, $isim!", Toast.LENGTH_SHORT).show()
            } else {
                // Kullanıcıya bir uyarı gösterme
                Toast.makeText(this, "Lütfen adınızı girin!", Toast.LENGTH_SHORT).show()
            }
        }
    }
}
Yukarıdaki kodda şunları yaptık:
  • `findViewById(R.id.elementID)` metodunu kullanarak XML dosyasındaki `TextView`, `EditText` ve `Button` bileşenlerine referanslar aldık.
  • `setOnClickListener` kullanarak düğmeye tıklandığında ne olacağını belirledik.
  • `editTextGiris.text.toString()` ile `EditText`'ten kullanıcının girdiği metni aldık.
  • `textViewMerhaba.text = ...` ile `TextView`'in metnini güncelledik.
  • `Toast.makeText(...)` ile kısa süreli bir pop-up mesajı (Toast) gösterdik.
  • `getString(R.string.hos_geldin_mesaji, isim)` ile `strings.xml` dosyasından parametreli bir metin çektik.

6. Uygulamayı Çalıştırma
Android Studio araç çubuğundaki yeşil üçgen "Run" düğmesine tıklayın.
Bir emülatör seçebilir veya fiziksel bir Android cihazınızı USB hata ayıklama modu açıkken bağlayarak uygulamayı çalıştırabilirsiniz.
Uygulamanız emülatörde veya cihazınızda açılacak ve yazdığınız arayüz ve etkileşim karşınıza gelecektir.

7. Android Yaşam Döngüsü (Lifecycle)
Her Android bileşeninin, özellikle `Activity`'lerin bir yaşam döngüsü vardır. Bu yaşam döngüsü, uygulamanızın durumunu ve kaynakları nasıl yönettiğini anlamak için çok önemlidir.
  • `onCreate()`: Activity ilk oluşturulduğunda çağrılır. UI'ı başlatmak ve ilk verileri yüklemek için idealdir.
  • `onStart()`: Activity kullanıcıya görünür olduğunda çağrılır.
  • `onResume()`: Activity kullanıcıyla etkileşim kurmaya hazır olduğunda çağrılır (ön planda).
  • `onPause()`: Activity kısmen gizlendiğinde veya başka bir Activity onun üzerine geldiğinde çağrılır.
  • `onStop()`: Activity artık kullanıcıya görünür olmadığında çağrılır.
  • `onDestroy()`: Activity yok edilmeden önce çağrılır. Tüm kaynakları serbest bırakmak için kullanılır.
Bu metodları kendi `Activity`'nizde override ederek, uygulamanızın farklı yaşam döngüsü durumlarında belirli eylemleri gerçekleştirmesini sağlayabilirsiniz. Örneğin, `onPause()` içinde kamera kaynaklarını serbest bırakabilirsiniz.
Android resmi dokümantasyonu Activity yaşam döngüsünü şöyle açıklar: "Activity'ler, bir uygulamanın kullanıcı arayüzünün tek bir, odaklanmış bir eylemini temsil eden uygulama bileşenleridir."
Daha fazla bilgi için: https://developer.android.com/guide/components/activities/activity-lifecycle

8. İyi Uygulama Pratikleri ve Sonraki Adımlar
  • Kaynakları Kullanma: Metinleri `strings.xml`, renkleri `colors.xml`, boyutları `dimens.xml` içinde tanımlayın. Bu, uygulamanızın sürdürülebilirliğini ve uluslararasılaşmasını kolaylaştırır.
  • ConstraintLayout Kullanımı: Modern Android UI geliştirmede en esnek ve performanslı layout yöneticilerinden biridir.
  • Mimari Desenler: Uygulamanız büyüdükçe MVVM (Model-View-ViewModel) gibi mimari desenleri öğrenmek, kodunuzu daha düzenli ve test edilebilir hale getirecektir.
  • Resmi Dokümantasyonu Takip Etme: Google'ın Android geliştirici web sitesi (https://developer.android.com/) en güncel ve güvenilir bilgi kaynağıdır. Kotlin dokümantasyonu için https://kotlinlang.org/ adresini ziyaret edebilirsiniz.
  • Sürüm Kontrolü: Git gibi sürüm kontrol sistemleri kullanmak, kodunuzu yedeklemek, değişiklikleri takip etmek ve takım içinde çalışmak için hayati öneme sahiptir.
Kod:
// Daha temiz ve modern bir yaklaşım için View Binding veya Data Binding kullanın.
// build.gradle (Module: app) dosyasına ekleyin:
// android {
//     ...
//     buildFeatures {
//         viewBinding true
//     }
// }

// Kotlin kodunda kullanımı:
// import com.example.ilkandroiduygulamam.databinding.ActivityMainBinding
// ...
// private lateinit var binding: ActivityMainBinding
// override fun onCreate(savedInstanceState: Bundle?) {
//     super.onCreate(savedInstanceState)
//     binding = ActivityMainBinding.inflate(layoutInflater)
//     setContentView(binding.root)
//
//     binding.buttonGoster.setOnClickListener {
//         val isim = binding.editTextGiris.text.toString()
//         // ...
//     }
// }
Bu rehber, Android uygulama geliştirmenin kapılarını aralayan temel bilgileri içeriyor. Yolculuğunuzun bu ilk adımında attığınız her başarılı adım, daha karmaşık ve heyecan verici projeler geliştirmeniz için size ilham verecektir. Öğrenmeye ve denemeye devam edin!
 
shape1
shape2
shape3
shape4
shape5
shape6
Üst

Bu web sitenin performansı Hazal Host tarafından sağlanmaktadır.

YazilimForum.com.tr internet sitesi, 5651 sayılı Kanun’un 2. maddesinin 1. fıkrasının (m) bendi ve aynı Kanun’un 5. maddesi kapsamında Yer Sağlayıcı konumundadır. Sitede yer alan içerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır.

YazilimForum.com.tr, kullanıcılar tarafından paylaşılan içeriklerin doğruluğunu, güncelliğini veya hukuka uygunluğunu garanti etmez ve içeriklerin kontrolü veya araştırılması ile yükümlü değildir. Kullanıcılar, paylaştıkları içeriklerden tamamen kendileri sorumludur.

Hukuka aykırı içerikleri fark ettiğinizde lütfen bize bildirin: lydexcoding@gmail.com

Sitemiz, kullanıcıların paylaştığı içerik ve bilgileri 6698 sayılı KVKK kapsamında işlemektedir. Kullanıcılar, kişisel verileriyle ilgili haklarını KVKK Politikası sayfasından inceleyebilir.

Sitede yer alan reklamlar veya üçüncü taraf bağlantılar için YazilimForum.com.tr herhangi bir sorumluluk kabul etmez.

Sitemizi kullanarak Forum Kuralları’nı kabul etmiş sayılırsınız.

DMCA.com Protection Status Copyrighted.com Registered & Protected