Android Programlamaya Giriş: Bir Uygulamanın Anatomisi
Herkese merhabalar, bildiğiniz üzere son yazımızla birlikte Kotlin serimizi noktalamıştık. Bugün ise yeni bir seriye başlıyoruz. Artık uzun bir süre Android programlama üzerine konuşuyor olacağız.
Basit bir Android projesi üç kısımdan oluşur. Bunlar activity’ler, uygulama kaynakları ve gradle dosyalarıdır. Bunları kısaca şöyle tanımlayabiliriz:
Activity
Activity’ler kullanıcı girdisini işleyerek ekranda bir sayfa yapısı oluşturur. Bu sayfa yapısında kullanıcı arayüzü (user interface) görüntülenir. Her activity’nin kendine ait bir yaşam döngüsü vardır. Buna ileriki yazılarda değineceğiz.
Resources
Kaynak dosyalarının içinde resimler, sesler temalar, renkler ve benzeri dosyalar tutulur.
Gradle
Gradle bir build tool yani bir inşa aracıdır. Bu dosyalar uygulamanın geliştirme aşamalarını yapılandırmamızı sağlar. Diğer bir deyişle uygulamamızın bir cihaza yüklenebilmesi için gerekli kontrolleri sağlayan bir komut dosyasıdır.
Proje Yapısı
Bir Android projesi oluşturmak istediğimizi varsayalım. Bilgisayarınızda Android Studio’ya girdiniz ve yeni bir proje oluşturdunuz. Projeyi oluşturduğunuz anda Android Studio size şu şekilde bir proje yapısı oluşturur:
MyApplication
├── app
│ ├── libs
│ └── src
│ ├── androidTest
│ ├── main
│ │ ├── java
│ │ ├── res
│ │ └── AndroidManifest.xml
│ └── test
├── build.gradle
└── gradlew
Şimdi kısaca dosya ve dizinleri tanıyalım.
app
Uygulama için kullanılacak kaynak kodları, testleri ve diğer kaynakları depolar.
libs
Uygulamanın bağlı olduğu local kütüphaneler burada depolanır.
androidTest (Instrumentation)
Android framework’ü ile gerçek anlamda etkileşime girmesi gereken sınıfların testi için Instrumentation Test yapılması gerekir.
main
Java ve Kotlin app dosyaları burada bulunur.
test (Unit Test)
Android framework’ünden bağımsız olan sınıfları/metodları test etmek için kullanılır. Robolectric ve JUnit popüler unit test araçlarıdır.
AndroidManifest.xml
Uygulamaya ait tüm temel bilgiler, işlevler ve gereksinimler bu dosyada tutulur. Proje oluşturulduğunda default olarak proje yapısına eklenir. Dosyanın xml formatında olması makine ve kullanıcı tarafından okunabilirlik sağlar. Dosyanın görünümü şu şekildedir:
Bu dosya içinde yönetebileceğimiz bazı özelliklerden bahsedelim.
- Uygulamanın adını ve temasını değiştirebiliriz.
- Version numaraları, kütüphaneler ve SDK sürümlerinde değişiklik yapabiliriz.
- Uygulama izinlerini kontrol edebiliriz.
- Activity’leri yönetebiliriz.
- Açılışta ilk tetiklenen Activity’i ayarlayabiliriz.
- Uygulamanın iconlarını yönetebiliriz.
- 3. parti SDK’lerin ayarlarını yönetebiliriz.
Build.gradle
Gradle dosyaları project module ve app module olmak üzere iki tanedir.
Build.gradle (project module)
Modüllere yapılan tüm yapılandırmalar bu dosya içinde yönetilir ve gradle versiyon kontrolü bu dosyada yapılır.
Build.gradle (app module)
Proje için yapılandırma ayarları bu dosyada yapılır. Uygulama sürümü, kütüphaneler ve benzeri diğer özellikler bu dosyadan okunabilir.
Gradle içeriğine göz atalım.
CompileSdkVersion
Uygulamanın derleneceği API düzeyini belirtir. Bu değerden daha yüksek değerli API özellikleri uygulama içinde desteklenmez.
buildToolVersion
Derleyicinin sürümü burada gösterilir. Gradle plugin 3.0.0’dan itibaren bu alan isteğe bağlıdır. Belirtilmediği takdirde Android SDK build tools’un en son indirilen sürümü kullanılır.
defaultConfig
Uygulamanın tüm derleme sürümlerine, örneğin debug ve release, uygulanacak seçenekleri içerir.
applicationId
Uygulamanın tanımlayıcısı niteliğindedir. Uygulamanın Play Store’da başarıyla yayınlanması ve güncellenmesi için eşsiz olması gerekmektedir.
minSdkVersion
Desteklenen en düşük API seviyesini gösterir.
targetSdkVersion
Uygulamanın test edileceği maksimum API düzeyini belirtir.
versionCode
Uygulamanın sürümünü belirten sayısal bir değerdir.
versionName
Kullanıcıya gösterilen string bir değerdir.
dependencies
Modül için gereken tüm bağımlılıkları içerir.
Gradlew
Gradle’ı çalıştırmak için yürütülen bir dosyadır.
Bu yazıda kısaca bir Android projesinin yapısını, dosyaları ve dizinleri görmüş olduk. Gelecek yazıda ise Layout’lardan bahsedeceğiz. Sonraki yazıda görüşmek üzere.
Ben Damla Çim. Bolu Abant İzzet Baysal Üniversitesi'nde Bilgisayar Mühendisliği okuyorum. Hobi olarak sokak fotoğrafçılığı ile ilgileniyorum ve boş zamanlarımda yazılım sektöründe kendime seçtiğim alan doğrultusunda blog yazıları yazıyorum.