2. Bilgiye ve eğlenceye en kolay ulaşma yollarının başında
gelen mobil cihazların akıl almaz bir hızla ilerlediği ve
hayatımıza giren ekranların gitgide çoğaldığı son yıllarda,
kullanıcıların beklenti ve isteklerine karşılık mobil pazarda
hızlı, esnek ve güçlü bir şekilde yer edinmek isteyen
girişimcilerin yaratıcı fikirleri yer almaktadır. Mobil
uygulama geliştiricileri yeni araçlar ve teknikler üzerinde
çalışmalar yapma yolunda oldukça teşvik etmektedirler.
3. Mobil uygulama fikri için doğru aracı ve tekniği belirleyen kriterler :
•Stabilite
•Performans
•Görünüm ve etkileşim
•Anlaşılabilirlik ve kullanılabilirlik
•İleri geliştirme ve bakım süreçleri
• Kullanılacak platform, araçların eklenti desteği
5. Cross Platform birden fazla platformda çalışacak uygulamaların
geliştirilmesidir. Android için yazılan kodlar iOS ya da Windows Phone
platformlarında çalışmıyorsa, her platform için ayrı ayrı kod (native kod) yazmak
yerine, Cross Platform’ un avantajlarından yararlanılabilir
Cross Platform
6. Kullanılan Cross Platform aracının sağladığı ölçülerde tek bir programlama
dili kullanarak ( Javascript, C# gibi.) birden fazla platformda uygulama
geliştirilebilir. Bu ciddi ölçüde zamandan tasarruf edilmesini sağlar. Fakat,
Cross Platform uygulama geliştirirken geliştirilen uygulamanın içeriği
kullanılan Cross Platform aracı ile sınırlıdır. Yani, native bir geliştirme kadar
esnek ve rahat değildir.
7. Cross Platform Örnekleri
Programlama Dilleri
Java: Java ile yazılmış programlar üzerinde JVM (Java Virtual Machine)
bulunduran platformlarda yani Windows, Mac OS ve Linux işletim
sistemlerinde çalışabilmektedir.
8. Oyun Motorları
Unity 3D: İlk akla gelen
oyun motoru şüphesiz
Unity’dir. Unity bir oyun
motorudur. Javascript, C# ya
da Boo dilleri ile yaklaşık
olarak 10’un üzerinde
platforma destek vermektedir.
Bunlar masaüstü (Windows,
Mac OS, Linux..),
web (firefox, chrome..), oyun
konsolları (ps4, xbox,
nintendo..), mobil (android,
ios..) gibi…
Corona SDK: Corona oyun
motoru ise daha çok mobil
alanında hizmet veren bir
Cross Platform aracıdır.
9. Mobil Uygulama Geliştirme Araçları
Smartface App Studio: iOS ve Android platformlarına destek veren mobil
uygulamalar geliştirebileceğiniz bir Cross Platformdur. Smatface de
kullanılan dil ise Javascript dilidir.
Xamarin: Mobil uygulama geliştirme alanında Cross Platform bir araç olan
Xamarin, Android, iOS ve Windows Phone platformlarına destek
vermektedir. Xamarin de uygulama geliştirmek için C# dili kullanılmaktadır.
Titanium Appcelearator: Bir başka mobil alanda Cross Platform aracı ise
Titanium’dur. Titanium SDK ile Javascript dilini kullanarak Android, iOS ve
Windows Phone için uygulamalar geliştirilebilmektedir.
10. Bu uygulamalar tek bir IDE ve tek bir dil kullanarak çeşitli platformlara
aynı anda çıktı sağlarlar. Bu alanda en bilinen örnekler, Titanium
, Xamarin ve Smartface App Studio gibi araçlardır.
11. En büyük avantajı; tek bir framework yapısı, geliştirme ortamı ve
dilidir. Kalan bütün kısımları bu framework’ ler hallederler. Yine tek
kaynak kodu üzerinden ilerlendiğinde geliştirme ve test maliyeti
düşer.
Dezavantajları ise; platform tabanlı geliştirmenin sunduğu her
olanağı sunamayabilirler. Bu sebeple plug-in desteği olup olmadığı
kontrol edilmelidir. Uygulamadan isteklerini iyi belirlemek ve doğru
aracı seçmek çok önemlidir.
12.
13. Appcelerator Titanium ile Xamarin Karşılaştırması
Maliyet :
Appcelerator Titanium : Ücretsiz
Xamarin : Ücretli ( $299 - $999 - $1899 )
Platform Desteği :
Appcelerator Titanium : İOS, Android, Web (HTML5), Windows, Blackberry
Xamarin : : İOS, Android, MAC, Windows Phone
Native API'lara Erişim :
Her ikiside native apı erişimini destekliyor, os güncellemelerinden
sonra hızlı güncellemeler yapabiliyor ve iyi belgeleme olayına
sahiptirler.
14. Performans :
Appcelerator Titanium : Yavaş animasyonlar, gecikmeli kaydırma,
yavaş sürdürme
Xamarin : Native kod ile performans farkı yoktur. İOS: AOT Compiler,
Android : JIT compiler
15. Native
Native Dille yazılmış bir uygulama, belli bir platforma özel, genellikle platform
sağlayıcısının belirtmiş/üretmiş olduğu platform SDK’ sı, araçları ve
programlama dili yardımıyla geliştirilmiş uygulamadır. Örneğin Objective-C
programlama dilini kullanılarak iOS işletim sistemine özel ya da Java
programlama dili ile Android işletim sistemine özel geliştirilen bir uygulama
Native Uygulamadır.
Native uygulamalar mobil cihazın kullandığı platforma, platformun araçlarına ve
diline özel yazılmış uygulamalardır. iOS için XCode IDE ve Objective-C dili
kullanılmaktadır. Android içinse Eclipse IDE ve Java dili kullanılmaktadır.
17. 1) Platform Tabanlı Native Uygulamalar
Google, Android bir uygulamayı Eclipse ortamında Java
kullanarak, Apple ise iOS uygulamasını Xcode ortamında
Objective-C kullanarak, Microsoft ise Windows Phone
uygulamasını Visual Studio ortamında C# kullanarak yazar.
Bunlara Platform Tabanlı Native uygulamalar denir. En büyük
avantajı; donanımın bütün yeteneklerine erişilebilir, hız ve
performans açısında kullanıcıyı mutlu edebilir.
18. 2) Cross-Platform Native Uygulamalar
Tek bir IDE ve tek bir dil kullanarak çeşitli platformlara aynı anda
çıktı sağlarlar. Bu alanda en bilinen örnekler Titanium,
Xamarin ve Smartface App Studio gibi araçlardır.
En büyük avantajı; bilinmesi gereken tek bir framework yapısı,
geliştirme ortamı ve dilidir. Tek kaynak kodu üzerinden ilerlendiği
için geliştirme ve test maliyeti düşer.
Dezavantajları ise; platform tabanlı geliştirmenin sunduğu her
olanağı sunamayabilirler. Bu sebeple plug-in desteği kontrol
edilmelidir. Uygulamadan isteklerini iyi belirlemek ve doğru aracı
seçmek çok önemlidir.
19. Artıları:
•Native uygulamalar en iyi kullanıcı deneyimini sunmaktadırlar. Hızlı ve
akıcıdırlar.
•Cihaz özelliklerine en iyi erişimi sağlarlar.
•Yüksek performansa sahiptirler.
•Native uygulamalar en iyi performansa sahiptirler ve performansı artırmak
için donanım kaynakları kullanırlar.
•Uygulamalar çevrimdışı modunda çalışacaktır.
•Uygulamalar potansiyel kullanıcılara daha iyi bir görünürlük sağlayan App
Store platformu aracılığıyla dağıtılmaktadır.
•Uygulamaların en son API'lara serbest platformda erişimi olacaktır.
•Uygulamalar dillerde platformu destekler. Geliştirmek için en iyi araçlara
IDE erişebilir. Bir projedeki debug olayı hızlıdır. İOS uygulamalar XCode
üzerinde Objective - C ile yapılır ve debug , arayüz tasarımı için tüm araçlara
sahiptir. Gerekli araçları kullanarak performansını kontrol edebilir.
20. Eksileri:
•Native uygulamalar daha fazla bir bütçeye ihtiyaç duyar. En
azından bir tane Objective-C ve Java geliştiricisi çalıştırılması
gerekmektedir.
•Geliştirme süreçleri daha uzundur.
•Önemli marketlerin tüm platformlarını desteklemesi için
yüksek bütçeye ihtiyacı vardır.
•App güncellemeleri kullanıcı tarafından yüklenmesi
gerekiyor . Eğer düzgün ve doğru şekilde tasarlanmazsa web
sunucusu üzerinde Apps farklı sürümlerini sonuna kadar
sürdürecektir.
21. Native her platform için sıfırdan bir tasarım sağladığı için bu bir
avantajdır. Dezavantajı ise kodu bağımsız olarak her platform için
geliştirilmiş olmalı ve birden çok dilde aynı uygulamayı
programlamak için gerekli olacak olmasıdır.
Native mobil uygulamalar, günümüzde popüler olan iOS ve Android
gibi farklı platformlar için farklı programlama dilleri ve geliştirme
paketleri gerektirirler. Java, Objective-C gibi programlama dilleri
bunların başında gelmektedir.
Her platform, cihaz ve programlama dili birbirinden farklı
dinamiklere sahip olduklarından farklı uzmanlıklar ve farklı
dinamikler gerektirir.
22. Native uygulamalar en iyi kullanılabilirlik, en iyi özellikler ve en iyi tam anlamlı
mobil deneyimi kazanmayı sağlar. Sadece native uygulamalarla ilgili bazı
şeyler vardır :
•Çoklu dokunmatik - Çift vuruş ve diğer UI hareketleri
•Hızlı gafikler API - Native platformlar hızlı grafik imkanı sağlar . Sadece birkaç
elemanıyla statik bir ekran gösterecek olursak büyük bir iş olmayabilir ama
çok fazla veri kullanılıyor ve hızlı bir yenileme gerekiyorsa bu büyük bir
pazarlık olabilir.
•Akıcı animasyonlar - Hızlı grafik API ili bağlantılı olarak akıcı bir animasyon
yeteneğine sahiptir. Fotoğraf ve seslerin dönüştürülmesi için yoğun
hesaplama algoritmaları ya da interaktif raporlama oyunda oldukça önemlidir.
•Dahili bileşenler - Kamera, adres defteri, konum belirleme ve diğer native ile
ilgili özellikler mobil uygulamalara sorunsuzca entegre edilebilir.
•Kullanım kolaylığı - Native platform yalın kullanım için daha kolay bir
uygulama ortamı sunar.
•Belgeleme - Yaklaşık 2500 kitapta,birçok makalede, blok gönderilerde,
StackOverflow gibi sitelerde ayrıntılı olarak İOS ve Android gelişimi ile ilgili
teknik konular ele alınmıştır.
23. Native uygulamalar genellikle entegre bir geliştirme ortamı (IDE)
kullanılarak geliştirilmiştir. IDE'ler hata ayıklama, proje yönetimi,
sürüm kontrolü, ve diğer profesyonel geliştiriciler için gerekli
araçları sağlar. IOS ve Android uygulamaları farklı IDE ve dilleri
kullanılarak geliştirilirken geliştirme ortamlarında birçok eşliği
vardır ve farklılıklara başvurmak için bir sebep yoktur.
Native uygulamalar araçlara ihtiyaç duyarlar çünkü uygulama
geliştirmeleri oldukça zordur. Aynı şekilde gerekli tecrübe seviyesi
diğer gelişme senaryolarından daha yüksektir. Sadece kes ve
yapıştır sistemi yoktur. Çalışma ve emek ön plandadır.Nitekim
çalışma ekibinin de beceri ve ustalık bilgisi önemli bir husustur. Bu
konuda profesyonel olmak için API ve frameworklerde kendini
kanıtlamaya ,varolan bileşenlerden özel efektler yaratmaya gerek
yoktur.
24.
25. Mobil web uygulamaları HTML5, CSS3 ve Javascript gibi web
teknolojileri kullanılarak gerçekleştirimi yapılır ve adından
anlaşılacağı üzere “Web” tabanlıdırlar.
Mobil işletim sistemlerine özgü üretilmiş mobil web tarayıcıları
üzerinde sorunsuz çalışmaları için optimize edilmişlerdir.
Web mobil uygulamaların en öne çıkan özelliği, web tabanlı oldukları
için tek seferde geliştirilip, tüm mobil platformda çalışabilir
olmalarıdır.
Native uygulamalar gibi farklı programlama dilleri kullanılarak ve her
işletim sistemine özel olarak geliştirilmezler.
26. Native ve HTML5 uygulamalarını karşılaştırırsak farklılık olarak
Internet bağlantısı zorunluluğu olacaktır. Bir mobil web
uygulamasının cihazınızda çalışması için öncelikle cihazınızın
internet bağlantısına sahip olması gerekmektedir.
Native uygulamaların bir kısmı da internet bağlantısını kullanır
ancak her uygulama için zorunlu değildir. Örneğin bir haber
sitesine ait native uygulamayı açtığınızda, anlık güncel haberlere
ulaşmak için internete bağlanmanız gerekir. Ancak bir kamera
uygulaması için internete bağlanmanıza gerek yoktur.
Mobil web uygulamaları çoğunlukla internet bağlantısının zorunlu
olduğu, haber, magazin, dergi içeriğine sahip uygulamalardır.
27. Tek bir seferde yazılıp her cihazda çalışabilen, anında
güncellenebilen bir içeriğe sahip mobil web uygulamaları kulağa
daha cazip ve hesaplı gelebilir, ancak native uygulamaların çok daha
güvenilir ve performanslı olduğu gerçeğini göz önünde bulundurmak
gerekir.
28. Hybrid
Hybrid mobil uygulama tekniği, temel olarak tek bir kod çıktısı ile
birden fazla platformda çalıştırılabilmek üzerine geliştirilmiştir.
Hybrid uygulamalar için HTML uygulamalar ve native
uygulamaların karışımı denebilmektedir. Sadece bir mobil/web
uygulama geliştirip bunu bütün platformlarda çalıştırarak zaman
ve paradan tasarruf sağlar.
HTML5 Uygulamalar: Bu uygulamalar CSS, javascript, HTML5 gibi
standart web teknolojilerini kullanırlar. Yazılan tek bir uygulama farklı
platformlar ve cihazlarca desteklenmektedir.
29. Hybrid uygulamalar denince akla PhoneGap gelmektedir.
PhoneGap, Adobe’nin açık kaynak bir aracıdır.
HTML, JScript, CSS gibi web dilleri, PhoneGap’in belirlediği
kurallara/yöntemlere göre kullanılmaktadır. PhoneGap sağladığı
çeşitli plug-in destekleriyle bazı cihaz donanımlarına erişim olanağı
sağlıyor. Avantajları da dezavantajları da web uygulamalarıyla
benzer fakat en büyük artışı bazı cihaz yeteneklerine ulaşabilmeniz
ve cihazınızda uygulama gibi pozisyonlanmasıdır.
Cross-Platform Hybrid Uygulamalar
30. Hangi JavaScript Çatısı Seçilmelidir?
Çok fazla donanım ve etkileşim ihtiyacı için günümüzde native geliştirme
tercih edilirken, temel olarak daha düşük donanım gerektiren ve veri yükü
daha az olan uygulamalarda hybrid geliştirme tercih edilmektedir.
Hybrid mobil uygulama geliştirmek için hiç bir araca ihtiyacınız yoktur.
Hiçbir yan araç kullanmadan sadece JavaScript, HTML5 ve CSS3 ile
uygulama geliştirilebilmektedir.
31.
32. Bir hybrid uygulama için iki yol vardır:
Local : Mobil uygulamalardaki HTML ve JavaScript kodlarını ikili
paketleyebilirsiniz. Bu bir şekilde native uygulama yapısına benzer.
Server : Alternatif sunucudan tam web uygulaması uygulayabilirsiniz. (
opsiyonel önbellekleme ile daha iyi performans için )
33. Artıları:
•Tecrübeli bir web developer için hızlı bir geliştirme süreci
•Tüm platformlar için tek bir programlama dili
•Geniş community ve düşük geliştirme maliyetleri
•Bu uygulamalar platforma özel uygulama mağazalarında dağıtılabilir.
•Hibrit uygulamalar HTML5 web uygulamaları ve native uygulamaların her ikisinin
de iyi ve kötü yönlerini sağlamaktadır.
•Native katmanlarına erişebilirsiniz.
•Bu uygulamalar çevrimdışı modda çalışabilir.
•Netflix tüm cihazlara karşı aynı kod tabanında çalışan güzel bir örnektir.
•Java gibi "tek bir kod çıktısı ile birden çok platformda çalışabilme" prensibine
sahiptir.
34. Eksileri:
•Platformu anlamak ve öğrenmek uzun bir zaman almaktadır.
•Bugünün tabletleri de dahil olmak üzere mobil cihazlar hybrid
uygulamaları akıcı ve sorunsuz şekilde çalıştıramamaktadır. Bu
uygulamalar daha fazla güce ihtiyaç duyar.
•Bu uygulamalarda yapılan düzeltmeler geliştirme sürecinden bile
fazla zaman almaktadır.
•Her platformdaki tarayıcılar son HTML özelliklerine sahip değildir.
•Uygulamanızın marketlerde banlanma riski daha yüksektir.
•Hybrid uygulamalar için güvenlik ciddi bir meseledir. Bu uygulamalar
saldırılara daha açık durumdadır.
36. 1. Apache Cordova / PhoneCap
Apache Cordove ("PhoneGap" olarak da bilinir) kullanıcılar
tarafından en üst sıraya taşınmıştır. Cordova / PhoneGap
geliştiricileri HTML, JavaScript ve CSS kullanarak mobil
uygulamalarını yazmaktadırlar. Bunlar hedef platform üzerinde
native bir container içerisinde "WebView" olarak çalışırlar.
Bir web uygulaması bir native uygulama container içinde
paketlenmiştir. JavaScriptlerin cihaz seviyesinde API'lara erişimi
vardır. Normal web uygulamaları olmayacaktır.
37.
38. Artıları :
•Sunucu tarafında platform ve dil deneyimi ne olursa olsun,
geliştiricilerin önemli bir kısmı HTML, JavaScript ve CSS ile
deneyime sahiptirler. Apache Cordova geliştiricileri bu mevcut
becerilerinin güçlenmesini sağlar. Bunu kabul etmeye hazır
şirketlerin piyasa tutumu göz ardı edilemez.
•Cordova uygulamalar native bir uygulama gibi yüklenir ve App
Store keşfedilebilirliği vardır.
•Cordova bir plugin yani eklenti mimarisini izler. Native cihaz
API'larına erişim modüler bir şekilde uzatılabilir.
•Cordova açık kaynak kodlu ve ücretsizdir, bu yüzden hiçbir lisans
maliyeti yoktur.
39. Eksileri :
•Tabiki de başarı garanti edilemez. Açık kaynak kodu olması hem
bir nimetken diğer yandan da bir sorundur. Özel bir Cordova /
PhoneGap eklentisi ile uygulama geliştirmek gerekiyorsa hedef
programları desteklemiyor olabilir ya da güncel olmayabilir.
•Eğer ihtiyacınız olan eklentileri bulabilirseniz eklenti mimarisi iyi
çalışacaktır.
•Cordova/PhoneGap apps performansı sık sık eleştiriliyor. Native
UI her zaman bir hibrit çözümünden daha iyi performans
verecektir. Cihaz donanımı ve WebView uygulamalarındaki
iyileştirmeler o boşluğu daraltmıştır.
40.
41. 2. Appcelerator
Appcelerator Titanyum native platforma özgü özelliklerle birleştiğinde
(cihaz üzerinden) bir JavaScript API sağlar.
Artıları :
•Native UI bileşenlerinin kullanılması performans olarak kazandırır ve
bazı framework'leri UI across platformunda normalleştirmeye çalışır.
•JavaScript kullanım kodunu normalleştirmek için birden çok hedef
platformda mevcut becerilerini ortaya çıkarmak için across platformu
sağlar.
Eksileri :
•Geliştiriciler lokal hedef platform SDK'yı yönetmek için gereklidir.
Bunun için oldukça kontrollü bir ekip ortamının kurulması
gerekmektedir.
42. 3. Adobe Air
Adobe AIR (Adobe Integred Runtime) ile web için kullandığımız
Markup dillerini (ActionScript, JavaScript, ASP, PHP, HTML, XML vb.)
kullanarak masaüstü uygulamalar geliştirebiliriz. Normal şartlarda
masaüstü uygulama geliştirebilmek için C# veya C++ dillerini
öğrenmek gerekmektedir. Bu hem zaman alan hem de zor bir süreçtir.
Adobe AIR ile kullandığımız yazılım dillerinden herhangi biri ile
masaüstü uygulama gelişitirmemiz mümkün. Adobe Flash, Adobe
Flash Builder ya da Adobe Dreamweaver programlarından herhangi
birini kullanarak var olan yazılım bilgisi ile masaüstü uygulama
geliştirilebilir.
43. Adobe AIR’in en büyük avantajı cross-platform çalışmasıdır. Yani
geliştirilen uygulama hangi işletim sisteminde olursa olsun ekstra bir
işlem yapılmasına gerek kalmadan sorunsuz bir şekilde çalışacaktır.
AIR uygulamaları birer .zip dosyası gibi sıkıştırılıp, paketlenerek
kullanılan dosyalar tek bir dosya içerisinde toplanır. Bu dosyanın
uzantısı .air’dir. Bu dosya içerisine uygulama için ihtiyacımız olan tüm
dosyaları ekleyebiliriz(XML, imaj dosyaları, ses ve video dosyaları
vb.).
Adobe AIR ile geliştirilen uygulamalar farklı işletim sistemlerinde
çalıştırılsalar bile aynı davranış biçimini sergiler. Bu oluşturulan web
sayfasının Internet Explorer üzerinde sorunsuz çalışırken diğer
tarayıcılarda sorun çıkartması olarak düşünülebilir. Web üzerinde bu
tip durumların önüne geçebilmek için Adobe Flash kullanılır. Adobe
AIR ise aynı özelliğin masaüstüne taşınmasına olanak sağlar.
44. Adobe AIR ile uygulama geliştirirken verileri saklamak için
veritabanı (SQLLite) kullanılabilir. Avantajı ise veritabanının
çalışması için ekstra bir yazılıma ve herhangi bir sunucuya ihtiyaç
duymamasıdır. Böylece kullanıcı arkaplanda bir veritabanının
çalıştığını çoğu zaman farketmeyecektir. Veritabanı kullanıcı
programı yüklediğinde ya da ilk işlem yaptığında oluşturulabilir.
45. Artıları :
•Cross platform çalışması en büyük avantajıdır.
•Adobe Air masaüstü ve mobil cihazlar geniş bir alanda çalışma
imkanı sağlar. Eğer karmaşık bir UI planlıyorsak (native bir yaklaşım
kullanmayı düşünmüyorsak ) HTML / JavaScript / CSS üzerinden Air
kullanımı yardımcı olacaktır.
Eksileri :
•Air mobil geliştirme için uzun vadeli bir strateji olmayabilir.
46. 4. Sencha
Sencha Touch native uygulamalar gibi olmak ya da web
uygulamaları oluşturmak için bir HTML5 mobil uygulama alanıdır.
Yani bir frameworktür. Sencha Touch ile yapılan uygulamalar
Apache Cordova/PhoneGap ve Sencha Touch'ın native paketlerinde
kullanılır.
47. Artıları :
•Sencha Touch bir MVC tarzı mimari , UI bileşenlerinin bir
kütüphanesi, diğer özellikleri arasında genişletilebilir API ve UI
temaları sunuyor.
•Native paketleme Apache Cordova / PhoneGap veya Sencha SDK
üzerinden mümkündür.
Eksileri :
•Sencha Touch ile yazılmış mobil uygulamalar Cordova /
PhoneGap uygulamaları ile aynı performansı göstermeyebilir.
•Sencha Touch uygulamalarını ek olarak native API'larla
genişletmek istiyorsak özel Apache Cordova / PhoneGap
eklentilerini yazmak gerekir.
48. 5. QT
Qt ("Cute") masaüstü ve mobil platformlar için bir çapraz platform
geliştirme aracıdır.
Artıları :
•Qt, ağ, animasyonlar ve daha fazlası gibi şeyler için sezgisel
API'leri içeren kütüphanelerin önemli bir kümesini sağlar.
Eksileri :
•Maliyeti yüksektir.
49. HTML5 UYGULAMALAR
HTML5 uygulamaları HTML5,JavaScript ve CSS gibi standart web
teknolojilerini kullanır. Tek bir kod çıktısı ile birden çok platformda
çalıştırabilme yaklaşımıyla geliştirilmiş mobil geliştiriciler birçok cihaz
üzerinde çalışan cross platformlu mobil uygulamaları oluşturur.
Geliştiriciler yalnızca HTML5 ve JavaScript kullanarak karmaşık
uygulamalarını oluşturabilmekle birlikte, oturum yönetimi,güvenli
çevrimdışı depolama ve işlevsel native erişim gibi bazı önemli
sınırlamalarla karşı karşıyadır. (kamera, takvim, coğrafi konum vb. )
50. Artıları :
•HTML5 normal bir web uygulamasına benzerdir, daha küçük ekranda
çalışmak üzere tasarlanmışlardır.
•Bu uygulamaların dağılımı çok kolaydır. Sadece web sunucusu üzerinde
web uygulaması dağıtılabilir ve kullanıcılar kendi tarayıcılarından
erişebilirler.
•JQuery Mobile, Sencha Touch ve mgwt gibi çok iyi mobil UI
framework'leri vardır. Mobil cihazlar için çeşitli widget'lar sağlar.
•Onlar tarayıcılarda çalıştığından beri bu uygulamalarla muhtemelen
tüm platformlarda dışarı ulaşabilirsiniz ve tüm akıllı telefonlar bir
tarayıcıya sahiptir.
•Bu uygulamaların geliştirme ve test kısımları takım desteği varsa
normal web uygulamalarına benzer olarak daha kolaydır.
51. Eksileri :
•Bu uygulamaların native işlevselliğine erişimi yoktur.
•Performansı native uygulamalarla uyuşmamaktadır.
Bu uygulamalar çevrimdışı çalışmaz. Aslında çevrimdışı modda çalışır
ama native uygulamalarla uyuşmamaktadır.
52.
53. İOS İşletim Sistemi İçin Yeni Programlama Dili Swift
IOS için kullanılan IDE XCODE dur ve programlama dili Objective-c dir. Fakat
geçtiğimiz yıl sonlarında Apple artık yeni bir dil yani swifti kullanacağını duyurdu.
Swift genç bir dil olması sayesinde Objective-C’ye oranla daha yetenekli;
geliştiriciler diğer dillerde bulunan ve sevilen özellikleri bir araya toplamış.
Bir fonksiyondan birden çok değer döndürme (Tupple), değişken tanımlarken
her seferinde tipini yazmaya gerek olmaması (Type Inference), Class-Struct-
Enum içerisinde başka Class-Struct-Enum tanımlayabilme (Nested Types), +, -, *,
/ gibi standart operatörleri kendi tanımlarının dışında kullanabilme (Operator
Overloading) ve hatta kendi operatörünü tanımlama gibi Objective-C’de
olmayan pek çok özellik dile eklenmiş.
Swift kod yazma sırasında Objective-C’ye göre çok daha esnek. Swift hem
Objective-C ile uyumluyken hem de Objective-C’nin desteklemediği pek çok yeni
özelliği destekliyor, dolayısıyla bu da programcıya söz dizimi dışında da bir
esneklik sağlıyor. Buna en güzel örnek olarak generic kullanımı verilebilir. Apple
Swift için bazı düzenlemeler yapsa da kütüphanelerinde genel olarak C, C++ ve
Objective-C kullanıyor.
54. SWİFT’İN OBJECTİVE-C’DEN FARKLARI
•Komutların sonuna noktalı virgül(;) koymanıza gerek yoktur. Yalnız bir
satırda birden fazla komut varsa komutların aralarına noktalı virgün
koymanız gerekir,
•Generic Programming
•Header dosyasına gerek yoktur,
•Fonksiyonlar birinci sınıf nesnelerdir,
•Operatörler sınıflar için yeniden tanımlanabilir,
•Yeni operatörler yaratılabilir,
•Switch blogunda break kullanmaya gerek yoktur. Switch kullanımında
farklı olarak fallthrough ifadesi gelmiştir,
•Yeni eklenen operatörler vardır,
•String değişkenler Unicode’u tamamen desteklemektedir.
55. SWİFT VE OBJECTİVE-C BENZERLİKLERİ
•Değişken tipleri (int, string, float vs) aynıdır,
•Objective-c’de kullanılan operatörler Swift’te de vardır,
•Grup ifadeler de süslü parantez { } kullanılır,
•Değişken tanımlamalar = işaretiyle yapılır ve
karşılaştırma işlemi == şeklinde yapılır.
•Kontrol deyimleri (if, while, for vs) kullanımları aynıdır,
•Array tanımlamalarında köşeli parantez kullanılır.
56. FLASH 'ın Mobil Cihazlardaki Hakimiyeti
Accelerometer: Mobil cihazdaki ivmeölçerlerden alınan değerler ile
uygulamalara yön verilebiliyor. Mesela kullanıcı telefonunu sağa doğru
eğdiğinde Flash’ta yer alan bir topu sağa doğru yuvarlayabiliriz.
Geolocation: Cihazın anlık olarak GPS verilerini alabiliriz.
Touch: Kullanıcının ekran üzerindeki dokunuşlarını aynı Mouse ile tıklama
olayını algıladığımız gibi algılayabiliriz.
MultiTouch: Kullanıcının ekran üzerindeki birden fazla dokunuşunu
algılayabiliriz.
Geusture: Kullanıcının çeşitli parmak dokunuşu ve hareketlerini algılayabiliriz.
Mesela kullanıcı ekranda bir alana parmağını koyup başka bir alana parmağını
sürdüğünde, kullanıcının hangi eksende hangi doğrultuda parmağını sürdüğünü
algılayabiliriz.
Kamera ve Mikrofon: Cihazın kamerasından görüntü veya video alıp
kaydedebiliriz. Aynı şekilde mikrofondan da ses alıp kaydedebiliriz.
SQLLite: SQLLite ile bütün veritabanı işlemlerimizi gerçekleştirebiliriz.
57. Flash Kullanımının Avantajları
•Flash ile geliştireceğimiz uygulamalar hem browser üzerinden, yani internet
üzerinden hem de direkt olarak cihaz üzerinden çalışabilecektir. Bu avantaj
sadece Flash’ta geçerlidir.
•Bir uygulama geliştirirken bunu çok kolay bir şekilde web’de yayınlamak üzere
de sunabilirsiniz.
•Hazırlayacağınız aplikasyonları kolaylıkla hem Android hem de iOS için
yayınlayabilirsiniz.
•Diğer SDK’lar ve API’ler gibi başka başka yazılımlar kullanmanıza gerek kalmaz.
•Flash ile 3. parti yazılımları ve API’leri kullanabilirsiniz. Örneğin; grafik
düzenlemeleri için Photoshop, 3D oyunlar geliştirmek için Away3D, multiuser
uygulamalar geliştirmek için Cirsus (eski adıyla Stratus) kullanabilirsiniz
58. •Flash ile kullanacağınız ActionScript 3.0 dilini kullanmak çok kolaydır
ve Java’daki gibi ufak bir işlemi gerçekleştirmek için sayfalarca kod
yazmanız gerekmez.
•Müzik ve video gibi dosyaları Flash ile oynatmak ve stream kullanmak
Flash’ta çok kolaydır.
•Flash ile XML kullanılabilir ve bu şekilde veri akışı da çok kolaydır.
•Flash hızlı çalışır, bataryayı ve hafızayı az kullanır.
•Çeşitli optimizasyon yöntemleri ile en düşük boyut, en iyi performans
ve en iyi görüntü kalitesi aplikasyonlar oluşturulabilir.
•Test, simülasyon ve debug araçları gelişmiştir.
•Flash, artık bütün yazılım dünyasının üstünlüğünü kabul ettiği ve her
alanda uygulama geliştirmek için kullanılan güçlü bir araçtır.
59. Flash Kullanımının Dezavantajları
• Java'ya göre daha yavaş çalışmaktadır
Adobe ürünlerinin pahalı olması ve sürekli olarak yeni
sürüm çıkarılması bir dezavantaj sayılabilir.
60. İhtiyaç duyulan çözüm, kullanıcı istek ve
deneyimlerini göz önünde bulundurarak,
uygulama gereksinimlerini karşılayacak
şekilde uygun seçimler yapmaktır.