Bu yazımda iPhone OS (iOS) ve Android işletim sistemleri arasında, her iki platforma da oldukça uzun süredir uygulama geliştiren birinin gözüyle kısa bir karşılaştırma yapacağım. Yapacağım karşılaştırma normal kullanıcıları değil, bu işletim sistemlerine uygulama geliştiren ya da geliştirmeyi düşünen insanların işine yarayacak bir karşılaştırma olacak, çünkü işletim sisteminin kendinden çok, yazılım geliştirirken kullanılan araçlar, SDK'lar ve tamamlanmış olan yazılımın store'a çıkarılma süreçlerinden bahsedeceğim.Yazımı okuyunca anlayacağınız üzere, söz konusu yazılım geliştirime olduğunda Android'in iOS'tan daha iyi olduğunu söylediğim az şey var. O yüzden eğer bir Android fanboy'u iseniz bu yazıyı okumayın. Yok eğer değilseniz, ve bu platformlardan herhangi birini öğrenmeye başlamak istiyorsanız o zaman mutlaka okumanızı tavsiye ederim. Zaten yazılım geliştiren kişilerden fanboy çıkması biraz zor ama ben yine de uyarayım dedim.

ios vs android

Son 2 aydır yüksek lisans derslerine ek olarak,  2 ay önce başlayan ve benim de bir parçası olduğum TÜBİTAK tarafından desteklenen yüz tanıma konulu bir proje üzerinde yoğun olarak çalıştığım için burayla yine fazla ilgilenemedim. Projenin ilk aşaması olan resimlerdeki yüzlerin yerinin tespit edilmesi üzerine yaptığımız çalışmalardan esinlenerek Android'deki yüz bulma sınıfına bir göz atayım dedim ve basit bir uygulama yazdım. Bu yazımda da Android SDK ile birlikte gelen yüz bulma sınıfının bir resim üzerinde nasıl kullanılacağını aşağıdaki resimde çıktısını gördüğünüz bu uygulama üzerinde göstereceğim.smiley (Test resmini TÜBİTAK projesinde de kullandığım Caltech face database adlı yüz veritabanından aldım.)

Android ile yüz yanıma uygulamasının çıktısı

Bu yazı, Google'ın Android platformu üzerinde çalışacak uygulamalar için XML tabanlı arayüz tasarımı ile ilgili yazacağım yazılardan ilki. Bu yazılarımda arayüz tasarımı sırasında kullanmak zorunda olduğumuz container elemanlarından bahsedeceğim. Bu elemanların kullanımını iyi öğrenmek çok önemli çünkü bu elemanlar olmadan arayüzdeki bileşenlerin istediğimiz şekilde dizilmesini sağlamak mümkün değil. En basitinden ekrana her satırda 2 tane olmak üzere toplamda 4 tane tuş koyup bunların simetrik bir şekilde dizilmelerini istiyorsak bu container elemanlarından kullanmak zorundayız. Bundan daha ileri bir örnek olarak web sayfalarında oldukça sık karşılaşılan türden, sol tarafta etiketlerin, sağ tarafta da ilgili yazı kutularının olduğu bir form tasarlamak istiyorsak yine bu container elemanlarından birini (hatta duruma göre iç içe daha fazlasını) kullanmak zorundayız. Bu açıdan bakıldığında container elemanlarının HTML kodu yazarken kullandığımız table ve div tag'lerine benzer amaçla kullanılan şeyler olduklarını söyleyebiliriz.

İlk yazımda bahsedeceğim container, içerisindeki bileşenlerin web tarayıcılarında olduğu gibi box model'e göre yerleşmesini sağlayan ve bu sebeple de en çok kullanılan container olan LinearLayout.

Bu yazımda Eclipse kullanarak çok basit bir Android uygulaması yazılması ve uygulamanın Android SDK ile birlikte gelen emülatör üzerinde çalıştırılması için yapılması gereken şeylerden bahsedeceğim. Göstereceğim örnek programın yapacağı tek şey ekranda bir tuş gösterip, tuşa basıldığında kullanıcıya bir mesaj göstermek.

Programın kendi bir pek işe yarar bir şey yapmıyor belki ancak bu yazının amacı için fazlasıyla yeterli. Bu yazıyı okuduktan sonra aşağıdaki soruların cevaplarını almış olacaksınız.

  • Eclipse ile bir Android projesi nasıl oluşturulur?
  • Bir Android projesi hangi klasör ve dosyaları içerir ve bunların görevleri nedir?
  • XML kullanılarak basit bir arayüz nasıl tanımlanır?
  • Tuşa basmak gibi basit olaylar nasıl karşılanır?
  • Kullanıcıya bir mesaj en kolay nasıl gösterilir?
  • Sanal bir cihaz nasıl oluşturulur ve yazılan program bu cihaz üzerinde nasıl çalıştırılır (emülatör nasıl kullanılır)?

Tabi ki bu cevaplar sadece başlangıç için yeterli olacak ancak sonraki günlerde bu konuların her birine ayrı ayrı değinmeyi planlıyorum.

Bu yazımda Google'ın çiçeği burnunda mobil işletim sistemi olan Android üzerine yazılım geliştirmeye başlamak için ihtiyacınız olan bileşenler ve bunların kurulumu hakkında bilgi vereceğim. Burada anlatacaklarımı yaptıktan sonra Android platformu için kod yazıp, yazdığınız kodu Android SDK ile birlikte gelen emülatör veya gerçek bir cihaz üzerinde çalıştırabilecek hale geleceksiniz.

Android SDK Logosu

Kurulumundan bahsedeceğim şeyleri saymam gerekirse:

  • JDK
  • Eclipse ve ADT
  • Android SDK