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 )