14 Haziran 2012 Perşembe

Android Hesap Makinesi

Genelde ilk blog yazısı olarak her zaman HelloWorld seçilir. Fakat yeni oluşturduğunuz android projenizi üstünde hiçbir değişiklik yapmadan derlediğinizde karşınıza HelloWorld geliyor. Bu yüzden bende kolay olması açısından basit bir hesap makinesi uygulamasıyla başlamayı tercih ettim.


Yeni Uygulama Oluşturma

Öncelikle yeni android uygulamınızı oluşturmak için File>New>Android Project'i seçiyorsunuz. Karşınıza gelen ekranda Project Name bölümüne HesapMakinesi yazıp, ilerliyoruz.






















Karşınıza Android Versiyon seçim ekranı gelecektir. Bu kısım belki şu an için çok önemli olmayabilir, fakat ilerideki projelerinizde gerçekten büyük önemi olacaktır. Android versiyonlarının arasında gerçekten büyük farklar mevcut. Örneğin; uygulamanızda ActionBar kullanmak istiyorsanız Android bu özelliği versiyon 3.0(API Level 11) ve üzerinde desteklemektedir. Bu sebeple ya Android 3.0(HoneyComb) veya üst bir versiyonu tercih ediceksiniz ya da kendi actionbar'ınızı oluşturucaksınız. İleride ActionBar'la ilgili Tutorial oluşturmayı düşünüyorum.
Şimdi projemize kaldığımız yerden devam edelim, yukarıda açıkladığım durumdan dolayı bu alışkanlığın oluşması için bizde uygulamamız için düşük bir versiyon seçerek daha üst android versiyonlarınıda destekleyelim. .Android 2.1(API Level 7)'yi seçip devam edelim.






















Şimdi Android Projemizi oluşturmanın son adımına geldik. Burda Uygulama adınızı, java'dan bildiğinizi varsaydıyım package adınızı ve aktivite(ilerleyen bölümlerde değineceğim) adınızı giriyorsunuz. Ben package name hariç diğerlerinde şu an için değişiklik yapmadım.
Package name: com.android.hesapmakinesi girip Proje oluşturma işlemimizi bitirerek bir sonraki bölüme geçelim.






















AndroidManifest.xml Dosyası

 Her Android uygulaması manifest dosyasına sahip olması gerekir. Bu dosya uygulamanız hakkındaki gerekli bilgileri içerir. Örneğin; yukarı seçtiğimiz Android versiyonunun bu dosyada bulunması gerekmektedir. Proje oluşturulduğunda bu dosya'da otomatik olarak projenin ana dizininde oluşturulur. Sizin sadece üzerinde uygulamanız için gerekli oynamaları yapmanız gerekmektedir. Bir örnek daha verecek olursam, varsayalım ki uygulamanızın internete bağlanması gerekiyor, bunun için AndroidManifest.xml dosyasında gerekli izni tanımlamanız gerekmektedir. Ek ve bu bölüme son olarak, bu dosya üzerinde tanımladığınız her izin kullanıcı GooglePlay'den uygulamanızı download etmek istediğinde karşısına bu izinleri onaylamasını gerektiren bir ekran görecektir. Bu sebeple gereksiz yetkilere izin vermemeye dikkat edin. Uygulamanız kamera'yı kullanmıyacaksa kamera yetkisi istemeniz gereksiz ve güvenlik açığına neden olacaktır.

Aşağıda gördüğünüz kod projemiz için otomatik olarak oluşturulan AndroidManifest.xml dosyasıdır. Şu an için bir değişiklik yapmamıza gerek yok. AndroidManifest.xml dosyasında kod'la değişiklik yapılabileceği gibi kendi UI'si de mevcuttur. İsteğe bağlı olarak UI'de kullanılabilir.


Android Kullanıcı Arayüzü

 Android kullanıcı arayüzleri xml dosyalarını kullanmaktadır.  UI dosyaları proje dizininizin res>layout klasöründe yer almaktadır. Android SDK kullanıcı arayüzü tasarımınızı yine sadece xml koduyla yapabileceğiniz gibi kolaylık olması açısından SDK'nın sağladığı birde kullanıcı arayüzü bulunmaktadır. Yeni başlayanlara tavsiyem ikisinide kullanmalarından yana olacaktır.

UI tasarlarken dikkat edilmesi gereken en önemli unsur, ekran boyutlarıdır. Android mobil cihazlar iPhone ve ya iPad gibi tek tip ekrana sahip değiller. Androidlerin bugün cep telefonlarında 3"-5.5" tablet'lerde ise 7"-11" arasında değişen boyutlarda ekrana sahipler.
Bu konuda daha detaylı bilgiyi Android developer sayfasında bulabilirsiniz.
http://developer.android.com/guide/practices/screens_support.html

Evet artık HesapMakinesi uygulamamızın kullanıcı arayüzünü tasarlamaya başlayabiliriz.

Yukarıdaki resimde görüldüğü gibi res>layout dizininde bulunan main.xml dosyasını açalım. En başta bahsettiğim HelloWorld yazan textview'ımızı silelim.
Şimdi ekranımıza soldaki toolbaxımdan birtane TextView, LinearLayout(Horizontal) ve bu LinearLayout'un içerisine 4 adet'te buton yerleştirelim.

Şu an için butonlardaki isimleri değiştirmiyelim. Bir sonraki bölümde diğer bir resource'umuz olan Strings.xml dosyasından bahsedeğim ve buton isimlerimizi burada tanımladıktan sonra düzenleyeceğiz. Normalde layout üzerinden de isim değişikliği yapılabilmektedir. Fakat bunu yaptığınızda editör size Strings.xml dosyasını kullanmanız gerektiğini gösteren bir uyarı verecektir. Bunun sebebi ise uygulamanız cihaz üzerinde çalıştırılırken kullanılması gereken minimum memory boyutunu android işletim sisteminin bilmesi gerekmetedir. Aksi taktirde kullanıcının tüm hafıza alanı doluyken uygulamnızı başlattığında herhangi biryerde kapatma hatası alabilir. Strings.xml'de tüm yazıları belirlediğinizdeyse işletim sistemi bunun için gerekli hafıza alanını hesaplayacak ve garbage denilen kısımdaki verileri silerek uygulamanıza yer açacaktır.

 Strings.xml

strings.xml dosyası res>values dizininde bulunmaktadır. İleride bu dizinde yine menu, color gibi yeni resourcelar tanımlanız gerekecektir. Biz şimdilik strings.xml'de kalalım. strings.xml dosyasıda yine kod yazabileceğiniz bir xml editörünün yanında kullanıcı arayüzüde barındırmaktadır. İsteğe bağlı olarak tercih yapabilirsiniz. Benim kendi fikrim yine kod editörünü kullanmaktan yana.

Uygulamamız için strings.xml dosyasını aşağıdaki gibi değiştirelim.









Yukarıdaki değişikliği yaptıktan sonra kaydedelim. Şimdi buton isimlerimizi main.xml kullanıcı arayüzü dosyamızdan değiştirebiliriz. main.xml dosyasını açalım ve kodumuzu aşağıdaki gibi değiştirelim.

android:textSize="25sp" ile yazı boyutumuzu ve android:text="@string/div" vs. ilede buton yazılarmıızı ayarladık. Dikkat ettiyseniz eğer android:id="@+id/carpma" vs. şeklinde ibareler bulunmaktadır. Kullanıcı tarafından görünmezler. Burda id sizin arayüzde kullandığınız view'ı R classında hexadecimal olarak tanımlamada kullanılır. Aktivetelerinizde view'larına event'leri yazarken bu id'leri kullanırsınız. Default olarak ViewAdı1 vs şeklinde bir atama yapılır. Fakat büyük projelerde bu karışıklığa neden olacağından kendi id'lerinizi vermeniz yararınıza olacaktır.

Artık aktivitemize kodumuzu yazmaya başlayabiliriz.

HesapMakinesiActivity.class

Android uygulamaları normal java uygulamalarının aksine main method'yula çalışmazlar. Bunun yerine her android classı Activity vs. SDK'ya ait superclass'lardan türetilirler.
Ben şu an sadece Activity class'ına değineceğim. uygulamanızda kullanıcağınız class'ları activity classından türeteceğinizi belirtmiştim. uygulamanın ilk activity'si AndroidManifest.xml dosyasındaki tanımına göre çağrılmaktadır. Bu class çağırıldığında ilk çalışan method onCreate method'u olacaktır. Bizim override etmemiz gereken method'da şu an için onCreate methodu'dur. Aşağıdaki kodu inceleyip kendi projenize ekleyin.








Artık uygulamamızı bitirdik ve sıra geldi çalıştırıp denemeye.

AVD Manager

Bu bölümde nasıl uygulamalarınızı test etmeniz için nasıl yeni emülator oluşturulacağından bahsedeceğim. Öncelikle Window menüsünden AVD Manager'ı seçelim. Karşınıza gelen Ekran'dan New butonuyla yeni Emülator oluşturma penceresini açın.















  
 Karşımıza gelen bu ekrandan Name bölümüne Emülatör adımızı yazalım ve Target bölümün'de de uygulamınızın kullandığı Android versiyonu'nu  seçiniz. Hesap Makinesi için biz Android 2.1 kullanmıştık. Create AVD diyerek Emülatörü'müzü oluşturup liste penceresini kapatalım.

Emülatörü'müzü de oluşturduktan sonra artık uygulamamızı test edebiliriz.

Test

Şimdi java toolbar'ımızdan Run iconuna tıklayarak Android Application'ı seçip OK butonuna basınız. Evet, şu an gidip kendinize bir kahve yapabilir ya da kısa bir mola verebilirsiniz. Ne yazık ki Emülatör'ün yüklenmesi biraz zaman alıyor. Emülatör'ün yükleme işlemi bittikten sonra emülatör ekranında uygulamanız yer alıcaktır. Burdan değişik değerler girerek uygulamınızı test edebilirsiniz.

 Uygulamanızın Ekran Görüntüsü aşağıdaki gibi olacaktır.

Hepinize bu rehberi kullandığınız için teşekkürler ve Android programlama konusunda başarılar dilerim.

1 yorum:

  1. Ben javascript ile hesap makinası kodlamış ve bunu online kullanıma sunmuştum. Daha sonra android için düşünüyordum, araştırırken burayı buldum. Meğersem varmış.

    YanıtlaSil