Ana içeriğe atla

Android Programlama - Temeller - 1

Bir önceki yazımızda Android Uygulama Geliştirmek için yapılması gereken temel adımlardan bahsetmiştik. Özetlersek dersten önce öğrenilmesi gereken temel bilgilerdi. Yazıya erişmek için ilgili linki kullanabilirsiniz.

Bildiğiniz üzere Android işletim sistemi Linux bazlı çalışan açık kaynak kodlu bir işletim sistemidir. Yapılış amacı telefonlar ve tabletlerde kullanmaktır. Zaman içerisinde Televizyonlar ve giyilebilir teknolojilerde de kullanımı görülmüştür.

Android uygulama geliştirme sürecine dahil olan geliştiricilerin karşılarında oldukça büyük bir telefon havuzu olduğunu ve geliştirmelerini yaparken bu telefonları da dikkate alarak çalışmalarını yapmalarına dikkat etmek gerekecektir. İyi yanı ise hazırladığınız uygulama cep telefonu eko sisteminin yaklaşık %80 ‘nini elinde bulunduran bir işletim sisteminin uygulama havuzuna eklenecek olmasıdır.

Android Uygulama Geliştirme aracı ilk olarak beta sürümü ile 2007 yılında karşımıza çıkmıştı. İlk resmi sürümü ile Android 1.0 ile Eylül.2008 ‘de bizler ile buluştu.

2012 yılında Google I/O konferasında Jelly Bean kod adlı Android 4.1 sürümü duyruldu. Android işletim sistemi gerçek anlamda verimli olarak kullanıcı arayüzünü etkili kullanmaya başlamıştı. Bu sürümde fonksiyon ve performans açısından da çok büyük yenilikler yapılmıştı.

Android ‘in kaynak kodları ücretsizdir ve açık kaynak kod lisansı (open source software licences) ile korunmaktadır. Bu lisanslar içerisinde Google en çok Apache Licence 2.0, Linux çekirdek değişiklikleri ve genel kullanım lisansında güncelleme yapmaktadır.

Neden Android

Bu soruyu çok güzel açıklayan bir çizimi internette buldum.

Özetlersek,

  • Açık kaynak kodlu, merak edersek açıp kodlarına bakabiliyoruz. :)
  • Çok fazla geliştirici ve topluluk var. Kaynak bulması kolay.
  • Pazarlaması oldukça iyi, kendi kendine reklam yapabiliyor.
  • Uygulamalar arası etkileşimi başarılı.
  • Geliştirme maaliyeti düşük ve öğrenim gereksinimi oldukça düşük. (Herhangi bir programlama dili biliyorsanız)
  • Başarı örnekleri çoook fazla (milyon dolar zenginlerinden olmasa da bin dolar zengini olmanız mümkün)
  • Güçlü bir geliştirme arayüzü sunuyor

Android ‘in Göze Batan Özellikleri

Android işletim sistemi gerçek anlamda Apple iPhone 4S çıktığı zamanlardan bu yana tam anlamıyla gücünü göstermeye başlamıştır. iOS ‘un uzunca bir süredir Android tabanlı telefonlarda kullanılan ve çok beğenilen özellikleri kendi işletim sistemine dahil ettiğini düşünürsek bu fikrin doğruluğu da ispatlanmış oluyor.

Özellikleri ve temel açıklamaları alt kısımdaki özellik listesinden erişebilirsiniz. Özelliğin adını internette kaynak ya da örnek ararken daha kolay bulabilmeniz için ingilizcesi ile bırakacağım.

Beautiful UI (Şık kullanıcı ara yüzü):
Android işletim sistemin en baz sürümü bile son kullanıcıların ilgili çeken bir görünüme sahiptir.

Connectivity (Erişim/ İletişim):
GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, NFC ve WiMAX.

Storage (Depolama/ Veri depolama):
SQL Lite ile ufak çapma ilişkisel veri tabanı oluşturup kullanmak mümkün oluyor. En güzel tarafı ile son kullanıcının telefonunun veri tabanı kullanıldığı için uygulama kullanıldığı sürece yapılan işlemleri tutup, tekrardan uygulama kullandığında daha iyi bir deneyim sağlamaya olanak sağlıyor.

Ayrıca bir konuyu da unutmamak lazım ki, büyük çapta bir uygulama hazırladığınızda bütün işlemleri SQL Lite üzerinde yapmayıp bir web servis yapısı ile ayrı bir sunucu grubunda tutmanız daha yararlı olacaktır. Ayrıca hazırladığınız servis mimari hem Android hem de iOS cihazlarında kullanılması mümkün olacaktır. Gelecek yazılarımız da nasıl yapacağımıza değineceğim.

Media Support (Ses/Video format Desteği):
Bilirsiniz eskiden bir medya dosyası elimize ulaştığında acaba codec ‘i var mı? Ses ya da görüntü gelecek mi diye düşüncelerimiz olurdu. Android bu derdi bir çok codec dosyasını sisteminde barındırarak çözmeye çalışmış.

H.263, H.264, MPEG-4 SP, AMR, AMR-WB, AAC, HE-AAC, AAC 5.1, MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, ve BMP

Messaging (Mesajlaşma):
GSM operatörlerinin sunduğu SMS ve MMS mesajlaşma tiplerini desteklemektedir. Whatsapp gibi uygulamalar internet üzerinden haberleşmeyi sağladığı için bu kategori içerisinde yer almamaktadır.

Web Browser (İnternet Tarayıcıs):
Google adı geçtiğinde aklımıza ilk olarak arama motoru geliyorsa ikinci olarak Chrome internet tarayıcısı geliyor. Mobil işletim sisteminde de bu teknolojisinin gücünden yararlanmayı tercih etmişler. Açık kaynak WebKit mimarisini temel olarak Java script mimari yapısı ile birlikte HTML5 ve CSS3 desteği vermektedir.

Multi-touch (Çoklu dokunuş):
Artık hepimizin alışık olduğu tek ve birden fazla dokunuş ile etkileşim alabilmek olanağı.

Resizable Widgets (Boyutları değiştirilebilir araçlar):
iOS işletim sisteminden farklı olarak Android işletim sisteminden mevcut ekranlarınızın herhangi bir yerine widget ekleyebilir ve boyutlarını tercihinize göre belirleyebilirsiniz.

Multi - Language (Çoklu dil desteği):
Türkçe desteği de dahil olmak üzere bir çok dil desteği vardır.

GCM:
Google Cloud Messaging (GCM) servisi, uygulama geliştiricilere cihazlar arasında internet üzerinden kısa mesajlar göndermesine oanak sağlar.

Wi-Fi - Direct (Kablosuz Ağ):
Kablosuz internet desteği vardır.

Android Uygulamaları

Android için hazrlanan uygulamalar Java dili ve Android Yazılım Geliştirme aracı (SDK) (Android Software Development Kit) yardımıyla yazılır.

Hazırladığımız uygulamaları son kullanıcı ile buluşturmak/ indirtmek/ satmak istediğimiz işletim sistemine ait birkaç market göze çarpmaktadır. En popüleri herkesinde bildiği gibi Google Play dir. Diğer uygulama havuzları ise, SlideME, Opera Mobile Storage, Mobango, F-droid ve Amazon AppStore olarak sıralayabiliriz.

Android işletim sistemine ait yüz milyonlarca telefon olduğunu, bu telefonların ise yaklaşık 190 ülkede kullanılığını düşünürsek doğru fikir ile hazırlanan uygulamanın fark edilmesi çokta zor gözükmemektedir.

Uygulamayı geliştirip yayınlamak istediğimiz Android uygulama paketinin oluşacağını ve bu sayede uygulamalarımızın çalışacağını unutmamamız gerekiyor.

Android Uygulama Kategorileri

Hazırlanan/ geliştirilen uygulamalar Andorid marketlerde belirli kategoriler altında bulunur. Bunlara alt kısımdaki görselden erişebilirsiniz. Sizlerde geliştirdiğiniz uygulamayı bu kategorilerden birinin altına eklemeniz gerekecektir.

Android Geçmişi

Geliştirmelerden bildiğimiz üzere Android işletim sistemlerinin oldukça dikkat çekici kod adları oluyor. Bunları listelersek; Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomp, Ice Cream Sandwitch, Jelly Bean, Kitkat, Lolliop olarak sıralanmaktadır.

Bir de bu iştah açıcı kod adlarına istinaden bulunan görsellere göz atalım.

API Level Nedir?

Android sürümlerine verilerin kod adları, platform numaraları ile birlikte bir API Level numarası göze çarpacaktır. Framework sürümleri arttıkça aslında API Level Artışı olmaktadır. İlk sürümden itibaren api level ‘a alt kısımdaki listeden ulaşabilirsiniz.

Platform Sürümü API Level VERSION_CODE
Android 5.1 22 LOLLIPOP_MR1
Android 5.0 21 LOLLIPOP
Android 4.4W 20 KITKAT_WATCH KitKat ile Giyilebilir Teknoloji Desteği geldi
Android 4.4 19 KITKAT
Android 4.3 18 JELLY_BEAN_MR2
Android 4.2, 4.2.2 17 JELLY_BEAN_MR1
Android 4.1, 4.1.1 16 JELLY_BEAN
Android 4.0.3, 4.0.4 15 ICE_CREAM_SANDWICH_MR1
Android 4.0, 4.0.1, 4.0.2 14 ICE_CREAM_SANDWICH
Android 3.2 13 HONEYCOMB_MR2
Android 3.1.x 12 HONEYCOMB_MR1
Android 3.0.x 11 HONEYCOMB

Android 2.3.4

Android 2.3.3

10 GINGERBREAD_MR1

Android 2.3.2

Android 2.3.1

Android 2.3

9 GINGERBREAD
Android 2.2.x 8 FROYO
Android 2.1.x 7 ECLAIR_MR1
Android 2.0.1 6 ECLAIR_0_1
Android 2.0 5 ECLAIR
Android 1.6 4 DONUT
Android 1.5 3 CUPCAKE
Android 1.1 2 BASE_1_1
Android 1.0 1 BASE


Bir sonraki yazımızda (Geliştirme araçlarının kurulumu) görüşmek üzere...

Turhal Temizer

Yorumlar

Bu blogdaki popüler yayınlar

Olasılıksız - Kitap Yorum

Olasılıksız hayatımda okuduğum en iyi kitaptı. Tek çırpıda hiç sıkılmadan, eğlenerek okudum bu kitabı, tavsiyem sizinde okumanız.Kitabın kapağı ve içeriği ile ilgili kısa bilgi aşağıdadır.Olasılık, tahmin, düşünceler, nöbetler, karışıklıklar, ileriyi görebilme zannı, dejavu ve tabii ki olasılıksız şeyler. Bu kelimelerle içli dışlı olabileceğiniz, bütün bu kelimelerin yaşamdaki yerini kavrayabileceğiniz müthiş bir uyarlama.Adam Fawer' ın ortaya çıkardığı bu uyarlama romanın müthiş bir çalışmanın ve araştırmanın sonucu ortaya çıktığının kitabın başından sonuna kadar farkındasınız. Bu uyarlamasını, derin araştırmalarıyla birleştirip romanı tekdüzelikten çıkarıp müthiş bir yere koyduğu için de Fawer' a müteşekkir oluveriyorsunuz. Sıkıcı diye nitelendirebileceğiniz teorik bilgileri bile bir çırpıda okuyuveriyorsunuz. Teorik bilgiler dahi olaylarla sonuna kadar bağlantılı aktarılmış. Tekdüzelikten çıkmış bir roman; olasılıksız. Her an olayın kurgusunun değişmesi olasılık dahilinde. …

.Net 3.5 SP1 – Full Install Packages (Tam Kurulum)

.Net Framework 3.5 SP1 ‘i bilgisayarınıza kurmak istediğinizde normal şartlar altında Microsoft ‘un sitesinde 2.7 mb ‘lik bir dosya indirir ve kurulum işlemlerinizi bu dosya üzerinden yaparsınız. Ancak bu indirmiş oluğunuz dosya yaklaşık 220 mb ‘lik veriyi internetten indirerek kurulum yapmaktadır. İnternet çıkışına izin verilmeyen kurumlar ve kuruluşlar için bu durum bir sıkıntı oluşturmaktadır. Bu sebepten ötürü aşağıdaki link yardımı ile tam yükleme paketini indirdikten sonra hiç internet ihtiyacınız olmadan .Net 3.5 SP1 ‘i kurabilmeniz mümkün olacaktır.Link

Çoklu Dil Desteği – Veri Tabanı Tasarım Örnekleri ile

Zaman içerisinde karşımıza çok farklı projeler gelebilmektedir. Ancak bu projeler içerisinde özellikle de global ölçekli ya da bu ölçekte uygulama geliştiren firmalarda bazı temel gereksinimler sürekli olarak karşımıza çıkabilmektedir. Bu gereksinimlerden biri ve belki de en önemlisi olan çoklu dil desteğinin veri tabanı (DB) katmanında nasıl yapıldığını kısa ve hızlıca inceliyor olacağız.Öncelikle çoklu dil desteği dediğimizde aklımıza gelen ilk çözüm yolu *.resx dosyalarını kullanmak gelmektedir. Ancak bu uzaktan yönetilen ya da anlık olarak metin değişikliği gereksinimi bulunan uygulamalarda bazı ufak problemler çıkartabilmektedir.Ne gibi problemler derseniz; iki grupta inceleyebiliriz. Web projeleri ve windows üzerinde çalışan projeler.Web projelerinde IIS üzerinde yer alan bir *.resx dosyasını değiştirdiğinizde son kullanıcı tarafında etkisi hemen görülmeyebilir. Cache mekanizmaları sebebiyle ortalama 15-30 dakika arasında bir görüntüleme süre farkı ile karşılaşabiliriz. Faha köt…