Android SDK Ne İşe Yarar? - Özgür Özek | Kişisel Web Sayfası

advertisement
MOBİL UYGULAMALAR (ANDROİD STUDİO)
Android Ne İşe Yarar?
Android ne işe yarar srusuna verilebilecek en basit yanıt telefonların işletim sistemidir. Bir
bilgisayarın çalışması için ihtiyacı olan işletim sistemleri Windows, Linux, Mac OS, Ubuntu olduğu
gibi, mobil cihazlarımız içinde işletim sistemi gereklidir. Bunların arasından ise en kullanışlısı
Android’tir.
En yaygın kullanım alanına sahip olan işletim sistemi olmasının sebepleri arasında arkasında
Google gibi bir firmanın olması vardır. Her ne kadar açık kaynak kodlu bir mobil işletim sistemi
olsa da Google kodların bir kısmını kimseyle paylaşmaz. Android, Linux çekirdeği üzerine Java ile
inşa edilmiş bir işletim sistemidir. Tabletlerde, telefonlarda, akıllı saatlerde ve gelecekte
arabalarda dahi daha fonksiyonel kullanılabilecek esnek yapıya sahiptir.
Android Nedir?
Günümüzde cep telefonu kullanan ve teknolojiye meraklı olmayan herkesin kafasında Android
ne demek sorusu var. Çünkü cep telefonu üreticileri küresel anlamda Android ile anlaşarak bu
işletim sistemiyle telefon üretiyor. Android 4.4.4, Android 5 Lollipop, Android 6 Marshmallow gibi
birçok sürümü olduğundan dolayı insanların aklındaki soru işareti sürekli yenileniyor. Bu
yüzden Android işlemci ne işe yarar gibi sorularda da sık sık duyuluyor.
2007 yılında Open Handset Alliance ve özgür yazılım topluluğu birleşerek Google’ın desteğiyle bu
ücretsiz mobil işletim sistemini yarattı. Linux çekirdeğine kurulmuş olan işletim sisteminin Java ve
API C ile geliştirilerek bu hali aldığı biliniyor. Apache harmony üzerine hazırlanmış Java ile
uyumlu kütüphanelerle uygulamalar hazırlanarak kullanıcılara sunuluyor. Böylece Android işletim
sistemini kullanan mobil cihazlarda bu uygulamalar sayesinde daha daha fonksiyonel bir hale
geliyor.
Cep telefonu ya da tablet kullanacak insanlar için cihazın içinde mutlaka bir işletim sistemi
gerekmektedir. Cihazların içeriğini incelerken Android nedir ne işe yarar sorunlarını
yaşamaktadırlar. Ancak iOS gibi Android gibi işletim sistemleri olmadan mobil cihazların
çalışması söz konusu değildir. Kullandığımız cihazlarda çalıştırdığımız uygulamalar ve yaptığımız
işlemler tamamıyla Android çekirdeğinde yapılmaktadır.
Dosya uzantısı APK destekli olan sistemin tüm işletim sistemleriyle geliştirilebiliyor olması en
büyük avantajlarından biridir. SDK ismi verilen Android için yazılım geliştirme kiti olan uygulama
ile kolay bir biçimde uygulamalar tasarlanabiliyor. Dünyanın en fazla geliştiricisine sahip mobil
işletim sistemi olmasının sebeplerinden biriside açık kaynak kodlu olarak özgür yazılımcılara
destek sunuyor olması.
Android SDK Ne İşe Yarar?
Herkesin merak ettiği konulardan biriside Android SDK nedir. SDK teriminin açılımı Software
Development Kit yani Yazılım geliştirme kiti olarak tanımlanabilir. Android işletim sistemine sahip
bir cep telefonu, tablet yada cihaza uygulama geliştirebilmek için Android SDK şarttır. Aynı
zamanda kullandığımız işletim sistemine göre değişen farklı uygulamalara da ihtiyaç duyacağız.
Uygulama geliştirmek için Android SDK dışında hangi uygulamalara ihtiyacınız olduğunu sizler
için derledik.

JDK (Java Development Kit- Java Geliştirme Araçları)

Eclipse (Ücretsiz kullanımıyla dünyanın en çok kullanılan kabul görmüş geliştirme ara yüzü)

Eclipse ADT (Eclipse ile Android geliştirmesi yapabileceğiniz Android geliştirme araçları)
Birçok insan sürüm güncellemeyle Android SDK arasında bağ kurarak karışık bir algı
yaratabiliyor. Oysa Android güncelleme ne işe yarar sorusunun tek cevabı Android
sürümünüzün yükselmesiyle ilgilidir. Oysa ki Android SDK ile uyumlu uygulamalar ve programlar
yaratabiliyorsunuz.
İşe Yarar Android Uygulamaları
Yararlı uygulama bulabilmek konusunda Android marketi olan Google Play Store biraz pasif gibi
gözükse de, işe yarar Android uygulamaları da bulunabiliyor. Android sisteminde bulunan
widget’lar gerçekten harika bir kullanıcı deneyimini mümkün kılıyor. Çöp sayılabilecek birçok
uygulama olduğu için Android ne işe yarar, uygulamalar işe yaramıyor gibi söylemler ortaya
çıkıyor. Ancak işe yarar çok fazla Android uygulaması olduğunun altını çizmekte fayda var.
Bunlara örnek vermek gerekirse ;

Advanced Task Killer

Evernote

Shazam

Googles ve benzeri tüm Google servisleri

Picasa
Birçok kullanıcının temel kullanımında ihtiyaç duyduğu bu uygulamaların dışında haberleşme
uygulamaları, fotoğraf düzenleme uygulamaları, kayıt servisleri ve özelleştirme araçları
bulunuyor. Android için uygulamaları Google Play Store üzerinden indirebilirsiniz. Birçoğunu
ücretsiz edineceğiniz uygulamaların ücretlilerini ve daha kalitelerini bulabilmenizde mümkün.
Yararlı Android uygulamaları konusunda birçok kullanıcının memnuniyetsiz olduğunu
söyleyebiliriz. Diğer mobil işletim sistemleriyle kıyaslandığında ciddi anlamda geniş bir uygulama
yelpazesine sahip. En çok uygulamaya sahip olan işletim sistemi olmasının sebebi geliştiricileri
dışında kullanıcılardan da uygulama kabul etmesidir. Bu anlamda Android yararlı
uygulamalar konusunda biraz düşüş yaşıyor gibi algılanıyor.
Çünkü belirli firmalar mobil cihazlar için uygun uygulamalar üretiyor. Bunun haricinde özgür
geliştiricilerde aynı şekilde uygulamalar geliştiriyor. Birde bu uygulamaların daha fonksiyonel
olmayanları kullanıcılar tarafından yükleniyor. Bu durum çok sayıda uygulamaya sebep olsa da
işe yarar uygulama bulma konusunda birçok Android kullanıcısı problem yaşayabiliyor.
Mobil Programlamada Tercih Edilen 5 Dil
Mobil dünyadaki gelişmelere ayak uydurmak, iyi bir uygulama üreticisi olabilmek için mobil
programlama dillerine hakim olmak en önemli şart. Dışarıdan bakarsanız, mobil uygulama
üretmek kolay bir iş gibi görünebilir. Fakat tabi ki her işte olduğu gibi, mobil programlama
yapmak için de birçok ince nokta bulunuyor. Peki mobil uygulama oluşturmak için hangi
programlama dillerini bilmeniz gerek? İşte pazarda en çok kullanılan mobil programlama
dillerinden beş tanesi;
C Dilinde Mobil Programlama:
Dünyada en çok kullanılan programlama dillerinden biri olan C, 30 yıldan uzun bir geçmişe
sahip. Bugüne kadar üretilmiş birçok işletim sistemi ve mobil uygulamalar C dili ile
üretilmiştir. C dilini bilmenin en büyük artılarından biri, C++ ve Java gibi C’ye benzeyen
dillere daha sonra kolayca geçiş yapabilmenizdir. İlk başta bu dilin sentaksı biraz zor gibi
gelse de bir zaman sonra kodlama yaptıkça alışacaksınız. C bilen biri, nesne tabanlı
programlama olayını kavradıktan sonra diğer programlama dillerini de kullanabilmektedir.
C++Dilinde Mobil Programlama:
Low-levelling (düşük seviye) programlama dillerinden en popüler olanıdır. C’nin nesne
tabanlı çeşidi olarak da isimlendirebileceğimiz C++ da yine birçok işletim sistemi ve mobil
uygulamalarda kullanılmaktadır. Nesne tabanlı programlamanın sağladığı birçok kolaylığı
yanında getiren C++ ile üretilen mobil uygulamalar, gerekli olan optimizasyonun yapılması ile
beraber oldukça hızlı bir biçimde çalışmaktadır.
Objective-C Dilinde Mobil Programlama:
iPhone ve iPad gibi cihazlar için uygulama üretmek istiyorsanız Objective-C size en uygun
çözüm. C programlama diline benzeyen bir yapıda olan bu dille istediğiniz gibi iOS mobil
uygulamaları geliştirebilirsiniz. Öğrenmesi fazlasıyla kolay olan Objective-C de tıpkı C++ gibi
nesne tabanlı bir programlama dilidir.
Java Dilinde Mobil Programlama:
Bir kere yazın, her yerde çalıştırın mantığına sahip Java, kimi programcılar tarafından
“taşınabilir programlama dili” olarak da isimlendirilmektedir. Bir başka şekilde ifade etmek
gerekirse, platformdan bağımsız Java ile yazılan kodlar, lazım olan ortamın sağlanması
durumunda iOS, Linux, Mac OS, Windows, Android gibi işletim sistemlerinde çok bir
değişiklik kalmaksızın çalışabilir. Mobil dünyada şimdiye kadar en fazla kullanılan
programlama dili Java’ydu. Fakat akıllı telefonların gelişmesi, iOS ve Android işletim sistemli
mobil cihazların piyasadaki payının artmasıyla beraber Java’nın gücü de az da olsa azaldı.
Ancak tüm bu gelişmelere rağmen yine de Java hala en fazla kullanılan programlama dilleri
arasındadır.
HTML5 Dilinde Mobil Programlama:
Bir programlama dilinden çok bir işaretleme dili olarak tanımlanabilen HTML5 ile web
uygulamaları üretmek mümkündür. Diğer dillere oranla öğrenilmesi kıyasla daha kolay olan
HTML5 ile üretilen web uygulamaları, günümüz mobil teknolojilerin gelişmesiyle beraber artık
mobil cihazlarla da uyumlu bir biçimde çalışabilmektedir. Yani HTML5 ile yalnızca web
uygulamaları değil, ayrıca mobil uygulamalar da üretmek mümkün.
Android Studio'yu Tanıyalım
Google ve JetBrains'in desteğini arkasına alan Android Studio, henüz beta sürümünde
olmasına rağmen Android geliştiricilerinin işini kolaylaştıracak özelliklere sahip. Android
Studio çıkalı bir yıldan biraz fazla olmasına rağmen, kullanıcı sayısı hızla artmaya ve çok
daha stabil çalışmaya devam ediyor. Şu an beta ve bu haliyle bile Android için Eclipse’ten
daha iyi olduğu söyleyebilirim.
Gelin isterseniz Android Studio’nun neden Google tarafından el üstünde tutulduğunu ve gün
geçtikçe artan kullanıcı sayısının sebeplerini biraz detaylandıralım. Bunun içinde tabiki
Eclipse platformuyla karşılaştırma yapalım.
Geçtiğimiz yılın başına kadar çoğu yazılımcı, Eclipse IDE (Eclipse + ADT plugin) kullanarak
Android uygulamaları geliştiriyordu. Geldiğimiz noktada ise artık Android Studio ile
uygulama geliştirilmeye başlandı. Bunun en büyük sebebi de Google’ın I/O
2013 etkinliğinde duyurmasının yanı sıra Google I/O 2014 etkinliğinde de çok fazla önem
vermesi oldu.
Eclipse ile Android Studio arasındaki ilk ve bence en büyük fark dependency – library
ekleme kısmıyla ilgili. Android Studio, Gradle desteği sayesinde projede kullanılan
kütüphaneleri otomatik olarak indirip kurabiliyor. Tek yapmanız gereken projenizin kök
dizinindeki build.gradle dosyasına kullanacağınız kütüphanelere özgü bazı paket adı ve
sürüm bilgisini eklemek.
Son yazımda uygulamamıza Google’nin Zxing kütüphanesini dahil ederken ben de bu
rahatlıktan faydalandım. Ayrıca birçok sık kullanılan kütüphaneyi Android Studio içinden
kolaylıkla ekleyebilirsiniz. Diğer kütüphanelerin de Gradle’a uyumlu isimlerine ulaşmak
için küçük bir araştırma yapmanız yeterli olacaktır.
Eclipse’te Maven kullanarak kütüphanelerinizi bağımlılık bilgileriyle ekleyebilirsiniz ancak
bu işlem biraz zahmetli. Bunun yerine kısmen kolaya kaçıp projeleri tek tek biz indirip
projeye dahil ediyoruz.
İki IDE arasındaki diğer bir etkileyici fark “Layout Designer(Plan Tasarımı)” kısmında ortaya
çıkıyor. Android Studio, tasarım konusunda çok iyi. Tabi ki bunun en büyük sebebi
arkasında JetBrains Intellij IDEA(Java'da bilgisayar yazılımı geliştirmek için kullanılan bir
tümleşik geliştirme ortamı) olması. Kullanıcı Arayüzü yerleştirmelerinde bizi çok
rahatlatıyor. Android uygulama geliştiricilerinin en büyük sorunlarından birinin tasarım
olduğunu düşünürsek çok önemli bir artı diyebilirim.
Designer kısmında Eclipse’e bakarsak zayıflığı hissedeceğiz. Java uygulaması geliştirmede
bile GUI tasarımını Netbeans IDE ile yapıp Eclipse’e aktaran çok fazla arkadaş bilirim.
Arayüz yerleştirmeleri çok yetersiz. Daha önce Design işlerinin geliştiriciler için sıkıntılı
olduğundan bahsetmiştim. Sadece bu kısım bile Eclipse'ten Android Studio'ya göç etmek
için yeterli sebep olabilir.
Eclipse’ten Android Studio’ya geçiş ile ilgili örneğe geçmeden önce Android Studio’da
gördüğüm artıları ve eksileri belirtmek istiyorum.
Artılar:







JetBrains Intellij Idea üzerine kurulmuş (Java geliştirmede en rahat IDE’lerden biri. Hatta
en iyisi diyebilirim. Araştırmalar da bu görüşümü destekliyor sanırım)
Google tamamen bir Android geliştirme ortamı sağlamış. IDE içerisinden Google kendi
kütüphanelerini kolayca kullanmamızı sağlıyor.
SDK yönetimi içerisinde gömülü olarak geldiği için dışardan herhangi bir SDK Manager ile
uğraşmanıza gerek kalmıyor.
IDE sayesinde Refactor, Reflection vb. işlemleri çok rahat yapabiliyorsunuz.
Kod yazımı çok rahat. IntelliSense isterseniz hızlandırabiliyor ve her şeyi tamamlar hale
getirebiliyorsunuz.
Debugger ve Publish çok rahat, Gradle içerisinde gerekli konfigürasyonları yaparak her
build esnasında build sistemini yeniden çalıştırmayıp (Gradle’ı daemon olarak çalıştırmak)
işlemleri hızlandırabilirsiniz.
Logcat (android Studio'da uygulamaların log çıktılarını okuyup incelemenize yarayan basit bir
geliştirici aracıdır) sayesinde olup biten her şeyi (hataları,uyarıları) çok rahat
izleyebiliyorsunuz.
Eksiler:



Gradle bazen çok can sıkıcı olabilir, saçma sapan kitlenebiliyor.
R.java dosyası bulunamadığında bizi projeyi yeniden build etmeye zorlayabiliyor.
Cihaza ya da emülatöre deploy ederken beklemek çok can sıkıcı. (Bu engeli kendi
emülatörü ile değil de Genymotion ( android için program yazarken kullanılan çok hızlı,
basit ve etkili bir emülatör) ile halledebilirsiniz)
Eclipse'ten Android Studio'ya Geçiş
Halihazırda Eclipse ile geliştirme yapan ve Android Studio’ya geçiş yapmak isteyenleri
ilgilendiren bölümle yazımı sonlandırmak istiyorum. Bu aşamada örnek olması açısından
projemize bir kütüphane de ekleyelim.
Android Studio’yu indirip kurduktan sonra aşağıdaki adımları takip edebilirsiniz:
Android Studio’yu açılınca gelen ilk ekranda New Project diyoruz:
Gelen ekranda proje ve package ismini girip Next butonuna tıklıyoruz:
Minimum SDK’mızı istediğimiz gibi ayarlıyoruz:
Sonraki ekranda Activity türümüzü seçiyoruz:
Ana Activity ismimizi belirleyip Finish diyerek projemizi oluşturuyoruz.
Projemiz oluşturuldu. Şimdi ona basitçe Facebook Android SDK’yı ekleyelim. Öncelikle
File > Project Structure yolunu takip ediyoruz:
Açılan pencereden projemizdeki modül ismine (örneğimizde "app") tıklıyoruz ve ardından
da "Dependencies" sekmesine:
Hemen sağ üstte görülen + düğmesine basıp Library Dependency öğesini seçiyoruz:
Çıkan pencerede varsayılan olarak en çok kullanılan kütüphanelerin listesini
görüyorsunuz. Facebook Android SDK'yı eklemek için üstteki kutucuğa "facebook" yazıp
arama düğmesine basın:
Gördüğünüz gibi içinde facebook geçen ve Maven merkezi depoya kayıtlı yazılımlar
listeleniyor. İhtiyacımıza uygun facebook-android-sdk'yı seçiyoruz:
OK düğmesine bastıktan sonra Facebook Android SDK'sı projemizin build.gradle
dosyasına eklenecektir. Bir diğer deyişle, projemiz Gradle sayesinde Facebook Android
SDK'sını indirecek ve kullanıma hazır bulacak.
Android Studio bir yazıya sığmayacak kadar yenilik içeriyor. Kod yazımını kolaylaştırması,
Gradle desteği, kütüphane eklemedeki kolaylık bunlardan sadece bahsedebildiklerim.
Flexapp Nedir ?
Flexapp: Kod yazmadan mobil uygulama geliştirmenin yeni yoludur. Yani
Flexapp, Mobil Uygulama yaptırmak isteyen şirket veya kişilerin, Mobil Uygulama
Geliştiricileri ile buluştuğu noktadır.
Günümüzde kaliteli, hızlı ve uygun maliyetli mobil uygulama geliştirmek halen ciddi
bir sorun ve Flexapp.com bu sorunu çözmeyi hedefliyor, hem de kitlelerin gücünü
kullanarak.
Nesim Sezer tarafından Mart 2016’da kurulan Flexapp, altyapı çalışmaları 2009’a
kadar dayanan bir girişim. Kodlama bilgisi olmayanların da mobil uygulama
geliştirebileceği bir platform geliştirmek isteyen Sezer, son haline 3 yıl önce başladığı
Flexapp’in son haliyle Java tabanlı bir uygulama geliştirme programını
sonuçlandırmış. Şu anda Windows tabanlı sunulan programla hem Android hem
de iOS uygulamaları geliştirilebiliyor.
Bu platform; İşvereni ve Uygulama Geliştiricilerini bir araya getirerek, Proje Bitirme
Garantisini kendi sorumluluğuna alır ve ortaya harika uygulamalar çıkmasını sağlar.
7 yıllık araştırma ve geliştirme süreci sonunda Uygulama Geliştiricileri için
tasarlanan Flexapp Platformu, kod yazmanıza gerek kalmadan pratik bir şekilde
uygulama geliştirebilmenize olanak sağlar.
Flexapp’te uzmanlaşanlar için uygulama pazar yeri
Aldığımız bilgiye göre Flexapp, kurumlara lisans kiralama üzerinden gelir elde ediyor.
Bu pekala bilindik bir gelir modeli ancak bundan daha önemlisi Flexapp, kendi
üzerinde uygulama geliştirme konusunda uzmanlaşan herhangi bir kişiye de para
kazanma fırsatı sunuyor.
Flexapp, kendi platformunda uzmanlaşan bir kitle oluşturarak bu kitleyi uygulama
sahibi olmak isteyenlerle buluşturuyor. Müşteriler uygulama taleplerini yazıyor ve
Flexapp uzmanları da bu talepleri karşılıyor. Elbette Flexapp de bu pazar yerindeki
işlemlerden bir komisyon (yüzde 20 geliştiriciden, yüzde 20 proje sahibinden) alıyor.
App University açılacak
Şu anda 1262 üyeye ulaştığını öğrendiğimiz Flexapp, yakında açılması başlaması
planlanan Flexapp University çalışmasıyla kendine has uygulama geliştirci
ekosistemini hızla büyütmek niyetinde. Keza bu eğitimle lisans kiralama yapan
şirketlerin Flexapp’ten alacağı verimin de artırılması hedefleniyor.
Şu anda 5 kişilik bir ekiple yoluna devam ettiğini öğrendiğimiz Flexapp, yakında OS X
tabanlı geliştirme programını da kullanıcılara sunacak. OS X tarafındaki kullanıcıların
ne kadar istekli olacağı şimdilik bilinmezliğini koruyor.
Diğer yandan kod yazmadan mobil uygulama geliştirme pazarının hazır taslaklar
dışında çok sayıda başarılı örneği olmadığını biliyoruz. Zira hem bu tür platformların
yetenekleri hem de doğal uygulamalarla yapılan kıyaslamalar tartışma konusu olmayı
sürdürüyor. Bu noktada durup çapraz platform uygulama geliştirme konusundaki
sayılı girişimlerden Xamarin’in Microsoft tarafından satın alındığını da hatırlatmadan
geçmeyeyim.
Aşağıdaki videoda Flexapp ile bir hava durumu uygulamasını nasıl geliştireceğinizi
görebilir, eğer 64 bit ve Java JDK 64 bit 7 üzeri Windows işletim sistemi
kullanıyorsanız hemen Flexapp’i indirip uygulama geliştirmeye başlayabilirsiniz.
Kaynak Webrazzi.com
HAZIRLAYANLAR;
ÖZGÜR ÖZEK : 1514113076
FATİH KESKİN : 1514113070
ÖDEV ;
MOBİL CİHAZ PROGRAMLA ( ANDROİD STUDİO, FLEXAPP )
Download