SlideShare une entreprise Scribd logo
1  sur  61
MOBİL UYGULAMALAR
ve
GELİŞTİRİCİLER
Merve YILDIZ
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.
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
Mobil Uygulama Çeşitleri
1) Cross Platform
2) Native Uygulamalar
3) Hybrid Uygulamalar
4) HTML5 Uygulamalar
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
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.
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.
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.
 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.
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.
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.
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.
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
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.
1) Platform Tabanlı Native Uygulamalar
2) Cross-Platform Native Uygulamalar
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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 )
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.
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.
EN İYİ 5 HYBRİD PLATFORM ARAÇLARI
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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. )
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.
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.
İ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.
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.
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.
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.
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
•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.
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.
İhtiyaç duyulan çözüm, kullanıcı istek ve
deneyimlerini göz önünde bulundurarak,
uygulama gereksinimlerini karşılayacak
şekilde uygun seçimler yapmaktır.
Mobil  Uygulamalar ve Geliştiriciler

Contenu connexe

Tendances

Mobil Teknolojiler
Mobil TeknolojilerMobil Teknolojiler
Mobil TeknolojilerMuharrem Tac
 
Android Üzerinde Adobe Flex ve AIR ile Yazılım Geliştirme
Android Üzerinde Adobe Flex ve AIR ile Yazılım GeliştirmeAndroid Üzerinde Adobe Flex ve AIR ile Yazılım Geliştirme
Android Üzerinde Adobe Flex ve AIR ile Yazılım GeliştirmeMuharrem Tac
 
Mobil platformlarin karsilastirilmasi
Mobil platformlarin karsilastirilmasiMobil platformlarin karsilastirilmasi
Mobil platformlarin karsilastirilmasiNilgun Ozdamar
 
Hasan Yalçın - Mobil Uygulamalarda Tasarım Süreçleri
Hasan Yalçın - Mobil Uygulamalarda Tasarım SüreçleriHasan Yalçın - Mobil Uygulamalarda Tasarım Süreçleri
Hasan Yalçın - Mobil Uygulamalarda Tasarım Süreçleriindir.com
 
Perakende Gunleri - Mobil Ticaret
Perakende Gunleri - Mobil TicaretPerakende Gunleri - Mobil Ticaret
Perakende Gunleri - Mobil TicaretYagmur Anish
 
Mobil İşletim Sistemleri
Mobil İşletim SistemleriMobil İşletim Sistemleri
Mobil İşletim SistemleriNilgun Ozdamar
 
Erdem avni selcuk mayıs cozumpark windows 10 universal app
Erdem avni selcuk  mayıs cozumpark windows 10 universal appErdem avni selcuk  mayıs cozumpark windows 10 universal app
Erdem avni selcuk mayıs cozumpark windows 10 universal appErdem Avni Selçuk
 
Mobil uygulamalarda tasarım süreçleri - Devfest Sivas 15
Mobil uygulamalarda tasarım süreçleri - Devfest Sivas 15Mobil uygulamalarda tasarım süreçleri - Devfest Sivas 15
Mobil uygulamalarda tasarım süreçleri - Devfest Sivas 15Hasan Yalcin
 
Mobil platformlar ve uygulamalar
Mobil platformlar ve uygulamalarMobil platformlar ve uygulamalar
Mobil platformlar ve uygulamalarSuat Furkan ISIK
 

Tendances (13)

Android
AndroidAndroid
Android
 
Mobil Teknolojiler
Mobil TeknolojilerMobil Teknolojiler
Mobil Teknolojiler
 
Android Üzerinde Adobe Flex ve AIR ile Yazılım Geliştirme
Android Üzerinde Adobe Flex ve AIR ile Yazılım GeliştirmeAndroid Üzerinde Adobe Flex ve AIR ile Yazılım Geliştirme
Android Üzerinde Adobe Flex ve AIR ile Yazılım Geliştirme
 
Mobi̇l Teknoloji̇ler
Mobi̇l Teknoloji̇lerMobi̇l Teknoloji̇ler
Mobi̇l Teknoloji̇ler
 
A studio
A studioA studio
A studio
 
Mobil platformlarin karsilastirilmasi
Mobil platformlarin karsilastirilmasiMobil platformlarin karsilastirilmasi
Mobil platformlarin karsilastirilmasi
 
Hasan Yalçın - Mobil Uygulamalarda Tasarım Süreçleri
Hasan Yalçın - Mobil Uygulamalarda Tasarım SüreçleriHasan Yalçın - Mobil Uygulamalarda Tasarım Süreçleri
Hasan Yalçın - Mobil Uygulamalarda Tasarım Süreçleri
 
Letsgif Presentation
Letsgif PresentationLetsgif Presentation
Letsgif Presentation
 
Perakende Gunleri - Mobil Ticaret
Perakende Gunleri - Mobil TicaretPerakende Gunleri - Mobil Ticaret
Perakende Gunleri - Mobil Ticaret
 
Mobil İşletim Sistemleri
Mobil İşletim SistemleriMobil İşletim Sistemleri
Mobil İşletim Sistemleri
 
Erdem avni selcuk mayıs cozumpark windows 10 universal app
Erdem avni selcuk  mayıs cozumpark windows 10 universal appErdem avni selcuk  mayıs cozumpark windows 10 universal app
Erdem avni selcuk mayıs cozumpark windows 10 universal app
 
Mobil uygulamalarda tasarım süreçleri - Devfest Sivas 15
Mobil uygulamalarda tasarım süreçleri - Devfest Sivas 15Mobil uygulamalarda tasarım süreçleri - Devfest Sivas 15
Mobil uygulamalarda tasarım süreçleri - Devfest Sivas 15
 
Mobil platformlar ve uygulamalar
Mobil platformlar ve uygulamalarMobil platformlar ve uygulamalar
Mobil platformlar ve uygulamalar
 

Similaire à Mobil Uygulamalar ve Geliştiriciler

Yazılım Geliştirme Teknolojileri
Yazılım Geliştirme TeknolojileriYazılım Geliştirme Teknolojileri
Yazılım Geliştirme TeknolojileriYusuf AYTİN
 
Android Studio Kurulumu ve Native Uygulama Geliştirme - CEMAL ÇAĞATAY
Android Studio Kurulumu ve Native Uygulama Geliştirme - CEMAL ÇAĞATAYAndroid Studio Kurulumu ve Native Uygulama Geliştirme - CEMAL ÇAĞATAY
Android Studio Kurulumu ve Native Uygulama Geliştirme - CEMAL ÇAĞATAYSakarya Üniversitesi
 
Android İşletim Sistemi
Android İşletim SistemiAndroid İşletim Sistemi
Android İşletim Sistemi_aerdeger
 
Yazılım ve-yazılımcı-nedir- net-ve-net-platformu
Yazılım ve-yazılımcı-nedir- net-ve-net-platformuYazılım ve-yazılımcı-nedir- net-ve-net-platformu
Yazılım ve-yazılımcı-nedir- net-ve-net-platformuAhmet S.
 
IonicFramework
IonicFrameworkIonicFramework
IonicFrameworkierhalim
 
Android'e Giriş Eğitimleri 2_1
Android'e Giriş Eğitimleri 2_1Android'e Giriş Eğitimleri 2_1
Android'e Giriş Eğitimleri 2_1Univerist
 
Standardization Android Slide
Standardization Android SlideStandardization Android Slide
Standardization Android SlideAsude Sena Ölmez
 
Android & Vr & CardBoard - Muhammet ÇAĞATAY
Android & Vr & CardBoard - Muhammet ÇAĞATAYAndroid & Vr & CardBoard - Muhammet ÇAĞATAY
Android & Vr & CardBoard - Muhammet ÇAĞATAYMuhammet ÇAĞATAY
 
Visual studio 2010
Visual studio 2010Visual studio 2010
Visual studio 2010bykezza
 
Nokia Uygulama Geliştirme Platfornları
Nokia Uygulama Geliştirme PlatfornlarıNokia Uygulama Geliştirme Platfornları
Nokia Uygulama Geliştirme PlatfornlarıGorkem Ercan
 
Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)Cihan Özhan
 
Mobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim DökümanıMobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim DökümanıAhmet Gürel
 
Mobil platformlar ve uygulamalar rapor
Mobil platformlar ve uygulamalar raporMobil platformlar ve uygulamalar rapor
Mobil platformlar ve uygulamalar raporSuat Furkan ISIK
 
TensorflowJS - Devnot Summit 2019
TensorflowJS - Devnot Summit 2019TensorflowJS - Devnot Summit 2019
TensorflowJS - Devnot Summit 2019Yavuz Kömeçoğlu
 
10 Soruda Adobe Flex
10 Soruda Adobe Flex10 Soruda Adobe Flex
10 Soruda Adobe Flexzehra doruk
 

Similaire à Mobil Uygulamalar ve Geliştiriciler (20)

Yazılım Geliştirme Teknolojileri
Yazılım Geliştirme TeknolojileriYazılım Geliştirme Teknolojileri
Yazılım Geliştirme Teknolojileri
 
Android Studio Kurulumu ve Native Uygulama Geliştirme - CEMAL ÇAĞATAY
Android Studio Kurulumu ve Native Uygulama Geliştirme - CEMAL ÇAĞATAYAndroid Studio Kurulumu ve Native Uygulama Geliştirme - CEMAL ÇAĞATAY
Android Studio Kurulumu ve Native Uygulama Geliştirme - CEMAL ÇAĞATAY
 
Android İşletim Sistemi
Android İşletim SistemiAndroid İşletim Sistemi
Android İşletim Sistemi
 
Yazılım ve-yazılımcı-nedir- net-ve-net-platformu
Yazılım ve-yazılımcı-nedir- net-ve-net-platformuYazılım ve-yazılımcı-nedir- net-ve-net-platformu
Yazılım ve-yazılımcı-nedir- net-ve-net-platformu
 
C Sharp ve .NET
C Sharp ve .NETC Sharp ve .NET
C Sharp ve .NET
 
C Sharp ve .NET
C Sharp ve .NETC Sharp ve .NET
C Sharp ve .NET
 
IonicFramework
IonicFrameworkIonicFramework
IonicFramework
 
Android'e Giriş Eğitimleri 2_1
Android'e Giriş Eğitimleri 2_1Android'e Giriş Eğitimleri 2_1
Android'e Giriş Eğitimleri 2_1
 
Standardization Android Slide
Standardization Android SlideStandardization Android Slide
Standardization Android Slide
 
Android & Vr & CardBoard - Muhammet ÇAĞATAY
Android & Vr & CardBoard - Muhammet ÇAĞATAYAndroid & Vr & CardBoard - Muhammet ÇAĞATAY
Android & Vr & CardBoard - Muhammet ÇAĞATAY
 
Visual studio 2010
Visual studio 2010Visual studio 2010
Visual studio 2010
 
Nokia Uygulama Geliştirme Platfornları
Nokia Uygulama Geliştirme PlatfornlarıNokia Uygulama Geliştirme Platfornları
Nokia Uygulama Geliştirme Platfornları
 
Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)
 
Mobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim DökümanıMobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim Dökümanı
 
Android
AndroidAndroid
Android
 
Android
AndroidAndroid
Android
 
.Net Core sunum
.Net Core sunum.Net Core sunum
.Net Core sunum
 
Mobil platformlar ve uygulamalar rapor
Mobil platformlar ve uygulamalar raporMobil platformlar ve uygulamalar rapor
Mobil platformlar ve uygulamalar rapor
 
TensorflowJS - Devnot Summit 2019
TensorflowJS - Devnot Summit 2019TensorflowJS - Devnot Summit 2019
TensorflowJS - Devnot Summit 2019
 
10 Soruda Adobe Flex
10 Soruda Adobe Flex10 Soruda Adobe Flex
10 Soruda Adobe Flex
 

Mobil Uygulamalar ve Geliştiriciler

  • 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
  • 4. Mobil Uygulama Çeşitleri 1) Cross Platform 2) Native Uygulamalar 3) Hybrid Uygulamalar 4) HTML5 Uygulamalar
  • 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.
  • 16. 1) Platform Tabanlı Native Uygulamalar 2) Cross-Platform Native Uygulamalar
  • 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.
  • 35. EN İYİ 5 HYBRİD PLATFORM ARAÇLARI
  • 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.