Mobil Uygulamalar ve Geliştiriciler

61
MOBİL UYGULAMALAR ve GELİŞTİRİCİLER Merve YILDIZ

Transcript of Mobil Uygulamalar ve Geliştiriciler

  1. 1. MOBL UYGULAMALAR ve GELTRCLER Merve YILDIZ
  2. 2. Bilgiye ve elenceye en kolay ulama yollarnn banda gelen mobil cihazlarn akl almaz bir hzla ilerledii ve hayatmza giren ekranlarn gitgide oald son yllarda, kullanclarn beklenti ve isteklerine karlk mobil pazarda hzl, esnek ve gl bir ekilde yer edinmek isteyen giriimcilerin yaratc fikirleri yer almaktadr. Mobil uygulama gelitiricileri yeni aralar ve teknikler zerinde almalar yapma yolunda olduka tevik etmektedirler.
  3. 3. Mobil uygulama fikri iin doru arac ve teknii belirleyen kriterler : Stabilite Performans Grnm ve etkileim Anlalabilirlik ve kullanlabilirlik leri gelitirme ve bakm sreleri Kullanlacak platform, aralarn eklenti destei
  4. 4. Mobil Uygulama eitleri 1) Cross Platform 2) Native Uygulamalar 3) Hybrid Uygulamalar 4) HTML5 Uygulamalar
  5. 5. Cross Platform birden fazla platformda alacak uygulamalarn gelitirilmesidir. Android iin yazlan kodlar iOS ya da Windows Phone platformlarnda almyorsa, her platform iin ayr ayr kod (native kod) yazmak yerine, Cross Platform un avantajlarndan yararlanlabilir Cross Platform
  6. 6. Kullanlan Cross Platform aracnn salad llerde tek bir programlama dili kullanarak ( Javascript, C# gibi.) birden fazla platformda uygulama gelitirilebilir. Bu ciddi lde zamandan tasarruf edilmesini salar. Fakat, Cross Platform uygulama gelitirirken gelitirilen uygulamann ierii kullanlan Cross Platform arac ile snrldr. Yani, native bir gelitirme kadar esnek ve rahat deildir.
  7. 7. Cross Platform rnekleri Programlama Dilleri Java: Java ile yazlm programlar zerinde JVM (Java Virtual Machine) bulunduran platformlarda yani Windows, Mac OS ve Linux iletim sistemlerinde alabilmektedir.
  8. 8. Oyun Motorlar Unity 3D: lk akla gelen oyun motoru phesiz Unitydir. Unity bir oyun motorudur. Javascript, C# ya da Boo dilleri ile yaklak olarak 10un zerinde platforma destek vermektedir. Bunlar masast (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 alannda hizmet veren bir Cross Platform aracdr.
  9. 9. Mobil Uygulama Gelitirme Aralar Smartface App Studio: iOS ve Android platformlarna destek veren mobil uygulamalar gelitirebileceiniz bir Cross Platformdur. Smatface de kullanlan dil ise Javascript dilidir. Xamarin: Mobil uygulama gelitirme alannda Cross Platform bir ara olan Xamarin, Android, iOS ve Windows Phone platformlarna destek vermektedir. Xamarin de uygulama gelitirmek iin C# dili kullanlmaktadr. Titanium Appcelearator: Bir baka mobil alanda Cross Platform arac ise Titaniumdur. Titanium SDK ile Javascript dilini kullanarak Android, iOS ve Windows Phone iin uygulamalar gelitirilebilmektedir.
  10. 10. Bu uygulamalar tek bir IDE ve tek bir dil kullanarak eitli platformlara ayn anda kt salarlar. Bu alanda en bilinen rnekler, Titanium , Xamarin ve Smartface App Studio gibi aralardr.
  11. 11. En byk avantaj; tek bir framework yaps, gelitirme ortam ve dilidir. Kalan btn ksmlar bu framework ler hallederler. Yine tek kaynak kodu zerinden ilerlendiinde gelitirme ve test maliyeti der. Dezavantajlar ise; platform tabanl gelitirmenin sunduu her olana sunamayabilirler. Bu sebeple plug-in destei olup olmad kontrol edilmelidir. Uygulamadan isteklerini iyi belirlemek ve doru arac semek ok nemlidir.
  12. 12. Appcelerator Titanium ile Xamarin Karlatrmas Maliyet : Appcelerator Titanium : cretsiz Xamarin : cretli ( $299 - $999 - $1899 ) Platform Destei : Appcelerator Titanium : OS, Android, Web (HTML5), Windows, Blackberry Xamarin : : OS, Android, MAC, Windows Phone Native API'lara Eriim : Her ikiside native ap eriimini destekliyor, os gncellemelerinden sonra hzl gncellemeler yapabiliyor ve iyi belgeleme olayna sahiptirler.
  13. 13. Performans : Appcelerator Titanium : Yava animasyonlar, gecikmeli kaydrma, yava srdrme Xamarin : Native kod ile performans fark yoktur. OS: AOT Compiler, Android : JIT compiler
  14. 14. Native Native Dille yazlm bir uygulama, belli bir platforma zel, genellikle platform salaycsnn belirtmi/retmi olduu platform SDK s, aralar ve programlama dili yardmyla gelitirilmi uygulamadr. rnein Objective-C programlama dilini kullanlarak iOS iletim sistemine zel ya da Java programlama dili ile Android iletim sistemine zel gelitirilen bir uygulama Native Uygulamadr. Native uygulamalar mobil cihazn kulland platforma, platformun aralarna ve diline zel yazlm uygulamalardr. iOS iin XCode IDE ve Objective-C dili kullanlmaktadr. Android iinse Eclipse IDE ve Java dili kullanlmaktadr.
  15. 15. 1) Platform Tabanl Native Uygulamalar 2) Cross-Platform Native Uygulamalar
  16. 16. 1) Platform Tabanl Native Uygulamalar Google, Android bir uygulamay Eclipse ortamnda Java kullanarak, Apple ise iOS uygulamasn Xcode ortamnda Objective-C kullanarak, Microsoft ise Windows Phone uygulamasn Visual Studio ortamnda C# kullanarak yazar. Bunlara Platform Tabanl Native uygulamalar denir. En byk avantaj; donanmn btn yeteneklerine eriilebilir, hz ve performans asnda kullancy mutlu edebilir.
  17. 17. 2) Cross-Platform Native Uygulamalar Tek bir IDE ve tek bir dil kullanarak eitli platformlara ayn anda kt salarlar. Bu alanda en bilinen rnekler Titanium, Xamarin ve Smartface App Studio gibi aralardr. En byk avantaj; bilinmesi gereken tek bir framework yaps, gelitirme ortam ve dilidir. Tek kaynak kodu zerinden ilerlendii iin gelitirme ve test maliyeti der. Dezavantajlar ise; platform tabanl gelitirmenin sunduu her olana sunamayabilirler. Bu sebeple plug-in destei kontrol edilmelidir. Uygulamadan isteklerini iyi belirlemek ve doru arac semek ok nemlidir.
  18. 18. Artlar: Native uygulamalar en iyi kullanc deneyimini sunmaktadrlar. Hzl ve akcdrlar. Cihaz zelliklerine en iyi eriimi salarlar. Yksek performansa sahiptirler. Native uygulamalar en iyi performansa sahiptirler ve performans artrmak iin donanm kaynaklar kullanrlar. Uygulamalar evrimd modunda alacaktr. Uygulamalar potansiyel kullanclara daha iyi bir grnrlk salayan App Store platformu araclyla datlmaktadr. Uygulamalarn en son API'lara serbest platformda eriimi olacaktr. Uygulamalar dillerde platformu destekler. Gelitirmek iin en iyi aralara IDE eriebilir. Bir projedeki debug olay hzldr. OS uygulamalar XCode zerinde Objective - C ile yaplr ve debug , arayz tasarm iin tm aralara sahiptir. Gerekli aralar kullanarak performansn kontrol edebilir.
  19. 19. Eksileri: Native uygulamalar daha fazla bir bteye ihtiya duyar. En azndan bir tane Objective-C ve Java gelitiricisi altrlmas gerekmektedir. Gelitirme sreleri daha uzundur. nemli marketlerin tm platformlarn desteklemesi iin yksek bteye ihtiyac vardr. App gncellemeleri kullanc tarafndan yklenmesi gerekiyor . Eer dzgn ve doru ekilde tasarlanmazsa web sunucusu zerinde Apps farkl srmlerini sonuna kadar srdrecektir.
  20. 20. Native her platform iin sfrdan bir tasarm salad iin bu bir avantajdr. Dezavantaj ise kodu bamsz olarak her platform iin gelitirilmi olmal ve birden ok dilde ayn uygulamay programlamak iin gerekli olacak olmasdr. Native mobil uygulamalar, gnmzde popler olan iOS ve Android gibi farkl platformlar iin farkl programlama dilleri ve gelitirme paketleri gerektirirler. Java, Objective-C gibi programlama dilleri bunlarn banda gelmektedir. Her platform, cihaz ve programlama dili birbirinden farkl dinamiklere sahip olduklarndan farkl uzmanlklar ve farkl dinamikler gerektirir.
  21. 21. Native uygulamalar en iyi kullanlabilirlik, en iyi zellikler ve en iyi tam anlaml mobil deneyimi kazanmay salar. Sadece native uygulamalarla ilgili baz eyler vardr : oklu dokunmatik - ift vuru ve dier UI hareketleri Hzl gafikler API - Native platformlar hzl grafik imkan salar . Sadece birka elemanyla statik bir ekran gsterecek olursak byk bir i olmayabilir ama ok fazla veri kullanlyor ve hzl bir yenileme gerekiyorsa bu byk bir pazarlk olabilir. Akc animasyonlar - Hzl grafik API ili balantl olarak akc bir animasyon yeteneine sahiptir. Fotoraf ve seslerin dntrlmesi iin youn hesaplama algoritmalar ya da interaktif raporlama oyunda olduka nemlidir. Dahili bileenler - Kamera, adres defteri, konum belirleme ve dier native ile ilgili zellikler mobil uygulamalara sorunsuzca entegre edilebilir. Kullanm kolayl - Native platform yaln kullanm iin daha kolay bir uygulama ortam sunar. Belgeleme - Yaklak 2500 kitapta,birok makalede, blok gnderilerde, StackOverflow gibi sitelerde ayrntl olarak OS ve Android geliimi ile ilgili teknik konular ele alnmtr.
  22. 22. Native uygulamalar genellikle entegre bir gelitirme ortam (IDE) kullanlarak gelitirilmitir. IDE'ler hata ayklama, proje ynetimi, srm kontrol, ve dier profesyonel gelitiriciler iin gerekli aralar salar. IOS ve Android uygulamalar farkl IDE ve dilleri kullanlarak gelitirilirken gelitirme ortamlarnda birok elii vardr ve farkllklara bavurmak iin bir sebep yoktur. Native uygulamalar aralara ihtiya duyarlar nk uygulama gelitirmeleri olduka zordur. Ayn ekilde gerekli tecrbe seviyesi dier gelime senaryolarndan daha yksektir. Sadece kes ve yaptr sistemi yoktur. alma ve emek n plandadr.Nitekim alma ekibinin de beceri ve ustalk bilgisi nemli bir husustur. Bu konuda profesyonel olmak iin API ve frameworklerde kendini kantlamaya ,varolan bileenlerden zel efektler yaratmaya gerek yoktur.
  23. 23. Mobil web uygulamalar HTML5, CSS3 ve Javascript gibi web teknolojileri kullanlarak gerekletirimi yaplr ve adndan anlalaca zere Web tabanldrlar. Mobil iletim sistemlerine zg retilmi mobil web tarayclar zerinde sorunsuz almalar iin optimize edilmilerdir. Web mobil uygulamalarn en ne kan zellii, web tabanl olduklar iin tek seferde gelitirilip, tm mobil platformda alabilir olmalardr. Native uygulamalar gibi farkl programlama dilleri kullanlarak ve her iletim sistemine zel olarak gelitirilmezler.
  24. 24. Native ve HTML5 uygulamalarn karlatrrsak farkllk olarak Internet balants zorunluluu olacaktr. Bir mobil web uygulamasnn cihaznzda almas iin ncelikle cihaznzn internet balantsna sahip olmas gerekmektedir. Native uygulamalarn bir ksm da internet balantsn kullanr ancak her uygulama iin zorunlu deildir. rnein bir haber sitesine ait native uygulamay atnzda, anlk gncel haberlere ulamak iin internete balanmanz gerekir. Ancak bir kamera uygulamas iin internete balanmanza gerek yoktur. Mobil web uygulamalar ounlukla internet balantsnn zorunlu olduu, haber, magazin, dergi ieriine sahip uygulamalardr.
  25. 25. Tek bir seferde yazlp her cihazda alabilen, annda gncellenebilen bir ierie sahip mobil web uygulamalar kulaa daha cazip ve hesapl gelebilir, ancak native uygulamalarn ok daha gvenilir ve performansl olduu gereini gz nnde bulundurmak gerekir.
  26. 26. Hybrid Hybrid mobil uygulama teknii, temel olarak tek bir kod kts ile birden fazla platformda altrlabilmek zerine gelitirilmitir. Hybrid uygulamalar iin HTML uygulamalar ve native uygulamalarn karm denebilmektedir. Sadece bir mobil/web uygulama gelitirip bunu btn platformlarda altrarak zaman ve paradan tasarruf salar. HTML5 Uygulamalar: Bu uygulamalar CSS, javascript, HTML5 gibi standart web teknolojilerini kullanrlar. Yazlan tek bir uygulama farkl platformlar ve cihazlarca desteklenmektedir.
  27. 27. Hybrid uygulamalar denince akla PhoneGap gelmektedir. PhoneGap, Adobenin ak kaynak bir aracdr. HTML, JScript, CSS gibi web dilleri, PhoneGapin belirledii kurallara/yntemlere gre kullanlmaktadr. PhoneGap salad eitli plug-in destekleriyle baz cihaz donanmlarna eriim olana salyor. Avantajlar da dezavantajlar da web uygulamalaryla benzer fakat en byk art baz cihaz yeteneklerine ulaabilmeniz ve cihaznzda uygulama gibi pozisyonlanmasdr. Cross-Platform Hybrid Uygulamalar
  28. 28. Hangi JavaScript ats Seilmelidir? ok fazla donanm ve etkileim ihtiyac iin gnmzde native gelitirme tercih edilirken, temel olarak daha dk donanm gerektiren ve veri yk daha az olan uygulamalarda hybrid gelitirme tercih edilmektedir. Hybrid mobil uygulama gelitirmek iin hi bir araca ihtiyacnz yoktur. Hibir yan ara kullanmadan sadece JavaScript, HTML5 ve CSS3 ile uygulama gelitirilebilmektedir.
  29. 29. Bir hybrid uygulama iin iki yol vardr: Local : Mobil uygulamalardaki HTML ve JavaScript kodlarn ikili paketleyebilirsiniz. Bu bir ekilde native uygulama yapsna benzer. Server : Alternatif sunucudan tam web uygulamas uygulayabilirsiniz. ( opsiyonel nbellekleme ile daha iyi performans iin )
  30. 30. Artlar: Tecrbeli bir web developer iin hzl bir gelitirme sreci Tm platformlar iin tek bir programlama dili Geni community ve dk gelitirme maliyetleri Bu uygulamalar platforma zel uygulama maazalarnda datlabilir. Hibrit uygulamalar HTML5 web uygulamalar ve native uygulamalarn her ikisinin de iyi ve kt ynlerini salamaktadr. Native katmanlarna eriebilirsiniz. Bu uygulamalar evrimd modda alabilir. Netflix tm cihazlara kar ayn kod tabannda alan gzel bir rnektir. Java gibi "tek bir kod kts ile birden ok platformda alabilme" prensibine sahiptir.
  31. 31. Eksileri: Platformu anlamak ve renmek uzun bir zaman almaktadr. Bugnn tabletleri de dahil olmak zere mobil cihazlar hybrid uygulamalar akc ve sorunsuz ekilde altramamaktadr. Bu uygulamalar daha fazla gce ihtiya duyar. Bu uygulamalarda yaplan dzeltmeler gelitirme srecinden bile fazla zaman almaktadr. Her platformdaki tarayclar son HTML zelliklerine sahip deildir. Uygulamanzn marketlerde banlanma riski daha yksektir. Hybrid uygulamalar iin gvenlik ciddi bir meseledir. Bu uygulamalar saldrlara daha ak durumdadr.
  32. 32. EN Y 5 HYBRD PLATFORM ARALARI
  33. 33. 1. Apache Cordova / PhoneCap Apache Cordove ("PhoneGap" olarak da bilinir) kullanclar tarafndan en st sraya tanmtr. Cordova / PhoneGap gelitiricileri HTML, JavaScript ve CSS kullanarak mobil uygulamalarn yazmaktadrlar. Bunlar hedef platform zerinde native bir container ierisinde "WebView" olarak alrlar. Bir web uygulamas bir native uygulama container iinde paketlenmitir. JavaScriptlerin cihaz seviyesinde API'lara eriimi vardr. Normal web uygulamalar olmayacaktr.
  34. 34. Artlar : Sunucu tarafnda platform ve dil deneyimi ne olursa olsun, gelitiricilerin nemli bir ksm HTML, JavaScript ve CSS ile deneyime sahiptirler. Apache Cordova gelitiricileri bu mevcut becerilerinin glenmesini salar. Bunu kabul etmeye hazr irketlerin piyasa tutumu gz ard edilemez. Cordova uygulamalar native bir uygulama gibi yklenir ve App Store kefedilebilirlii vardr. Cordova bir plugin yani eklenti mimarisini izler. Native cihaz API'larna eriim modler bir ekilde uzatlabilir. Cordova ak kaynak kodlu ve cretsizdir, bu yzden hibir lisans maliyeti yoktur.
  35. 35. Eksileri : Tabiki de baar garanti edilemez. Ak kaynak kodu olmas hem bir nimetken dier yandan da bir sorundur. zel bir Cordova / PhoneGap eklentisi ile uygulama gelitirmek gerekiyorsa hedef programlar desteklemiyor olabilir ya da gncel olmayabilir. Eer ihtiyacnz olan eklentileri bulabilirseniz eklenti mimarisi iyi alacaktr. Cordova/PhoneGap apps performans sk sk eletiriliyor. Native UI her zaman bir hibrit zmnden daha iyi performans verecektir. Cihaz donanm ve WebView uygulamalarndaki iyiletirmeler o boluu daraltmtr.
  36. 36. 2. Appcelerator Appcelerator Titanyum native platforma zg zelliklerle birletiinde (cihaz zerinden) bir JavaScript API salar. Artlar : Native UI bileenlerinin kullanlmas performans olarak kazandrr ve baz framework'leri UI across platformunda normalletirmeye alr. JavaScript kullanm kodunu normalletirmek iin birden ok hedef platformda mevcut becerilerini ortaya karmak iin across platformu salar. Eksileri : Gelitiriciler lokal hedef platform SDK'y ynetmek iin gereklidir. Bunun iin olduka kontroll bir ekip ortamnn kurulmas gerekmektedir.
  37. 37. 3. Adobe Air Adobe AIR (Adobe Integred Runtime) ile web iin kullandmz Markup dillerini (ActionScript, JavaScript, ASP, PHP, HTML, XML vb.) kullanarak masast uygulamalar gelitirebiliriz. Normal artlarda masast uygulama gelitirebilmek iin C# veya C++ dillerini renmek gerekmektedir. Bu hem zaman alan hem de zor bir sretir. Adobe AIR ile kullandmz yazlm dillerinden herhangi biri ile masast uygulama geliitirmemiz mmkn. Adobe Flash, Adobe Flash Builder ya da Adobe Dreamweaver programlarndan herhangi birini kullanarak var olan yazlm bilgisi ile masast uygulama gelitirilebilir.
  38. 38. Adobe AIRin en byk avantaj cross-platform almasdr. Yani gelitirilen uygulama hangi iletim sisteminde olursa olsun ekstra bir ilem yaplmasna gerek kalmadan sorunsuz bir ekilde alacaktr. AIR uygulamalar birer .zip dosyas gibi sktrlp, paketlenerek kullanlan dosyalar tek bir dosya ierisinde toplanr. Bu dosyann uzants .airdir. Bu dosya ierisine uygulama iin ihtiyacmz olan tm dosyalar ekleyebiliriz(XML, imaj dosyalar, ses ve video dosyalar vb.). Adobe AIR ile gelitirilen uygulamalar farkl iletim sistemlerinde altrlsalar bile ayn davran biimini sergiler. Bu oluturulan web sayfasnn Internet Explorer zerinde sorunsuz alrken dier tarayclarda sorun kartmas olarak dnlebilir. Web zerinde bu tip durumlarn nne geebilmek iin Adobe Flash kullanlr. Adobe AIR ise ayn zelliin masastne tanmasna olanak salar.
  39. 39. Adobe AIR ile uygulama gelitirirken verileri saklamak iin veritaban (SQLLite) kullanlabilir. Avantaj ise veritabannn almas iin ekstra bir yazlma ve herhangi bir sunucuya ihtiya duymamasdr. Bylece kullanc arkaplanda bir veritabannn altn ou zaman farketmeyecektir. Veritaban kullanc program yklediinde ya da ilk ilem yaptnda oluturulabilir.
  40. 40. Artlar : Cross platform almas en byk avantajdr. Adobe Air masast ve mobil cihazlar geni bir alanda alma imkan salar. Eer karmak bir UI planlyorsak (native bir yaklam kullanmay dnmyorsak ) HTML / JavaScript / CSS zerinden Air kullanm yardmc olacaktr. Eksileri : Air mobil gelitirme iin uzun vadeli bir strateji olmayabilir.
  41. 41. 4. Sencha Sencha Touch native uygulamalar gibi olmak ya da web uygulamalar oluturmak iin bir HTML5 mobil uygulama alandr. Yani bir frameworktr. Sencha Touch ile yaplan uygulamalar Apache Cordova/PhoneGap ve Sencha Touch'n native paketlerinde kullanlr.
  42. 42. Artlar : Sencha Touch bir MVC tarz mimari , UI bileenlerinin bir ktphanesi, dier zellikleri arasnda geniletilebilir API ve UI temalar sunuyor. Native paketleme Apache Cordova / PhoneGap veya Sencha SDK zerinden mmkndr. Eksileri : Sencha Touch ile yazlm mobil uygulamalar Cordova / PhoneGap uygulamalar ile ayn performans gstermeyebilir. Sencha Touch uygulamalarn ek olarak native API'larla geniletmek istiyorsak zel Apache Cordova / PhoneGap eklentilerini yazmak gerekir.
  43. 43. 5. QT Qt ("Cute") masast ve mobil platformlar iin bir apraz platform gelitirme aracdr. Artlar : Qt, a, animasyonlar ve daha fazlas gibi eyler iin sezgisel API'leri ieren ktphanelerin nemli bir kmesini salar. Eksileri : Maliyeti yksektir.
  44. 44. HTML5 UYGULAMALAR HTML5 uygulamalar HTML5,JavaScript ve CSS gibi standart web teknolojilerini kullanr. Tek bir kod kts ile birden ok platformda altrabilme yaklamyla gelitirilmi mobil gelitiriciler birok cihaz zerinde alan cross platformlu mobil uygulamalar oluturur. Gelitiriciler yalnzca HTML5 ve JavaScript kullanarak karmak uygulamalarn oluturabilmekle birlikte, oturum ynetimi,gvenli evrimd depolama ve ilevsel native eriim gibi baz nemli snrlamalarla kar karyadr. (kamera, takvim, corafi konum vb. )
  45. 45. Artlar : HTML5 normal bir web uygulamasna benzerdir, daha kk ekranda almak zere tasarlanmlardr. Bu uygulamalarn dalm ok kolaydr. Sadece web sunucusu zerinde web uygulamas datlabilir ve kullanclar kendi tarayclarndan eriebilirler. JQuery Mobile, Sencha Touch ve mgwt gibi ok iyi mobil UI framework'leri vardr. Mobil cihazlar iin eitli widget'lar salar. Onlar tarayclarda altndan beri bu uygulamalarla muhtemelen tm platformlarda dar ulaabilirsiniz ve tm akll telefonlar bir taraycya sahiptir. Bu uygulamalarn gelitirme ve test ksmlar takm destei varsa normal web uygulamalarna benzer olarak daha kolaydr.
  46. 46. Eksileri : Bu uygulamalarn native ilevselliine eriimi yoktur. Performans native uygulamalarla uyumamaktadr. Bu uygulamalar evrimd almaz. Aslnda evrimd modda alr ama native uygulamalarla uyumamaktadr.
  47. 47. OS letim Sistemi in Yeni Programlama Dili Swift IOS iin kullanlan IDE XCODE dur ve programlama dili Objective-c dir. Fakat getiimiz yl sonlarnda Apple artk yeni bir dil yani swifti kullanacan duyurdu. Swift gen bir dil olmas sayesinde Objective-Cye oranla daha yetenekli; gelitiriciler dier dillerde bulunan ve sevilen zellikleri bir araya toplam. Bir fonksiyondan birden ok deer dndrme (Tupple), deiken tanmlarken her seferinde tipini yazmaya gerek olmamas (Type Inference), Class-Struct- Enum ierisinde baka Class-Struct-Enum tanmlayabilme (Nested Types), +, -, *, / gibi standart operatrleri kendi tanmlarnn dnda kullanabilme (Operator Overloading) ve hatta kendi operatrn tanmlama gibi Objective-Cde olmayan pek ok zellik dile eklenmi. Swift kod yazma srasnda Objective-Cye gre ok daha esnek. Swift hem Objective-C ile uyumluyken hem de Objective-Cnin desteklemedii pek ok yeni zellii destekliyor, dolaysyla bu da programcya sz dizimi dnda da bir esneklik salyor. Buna en gzel rnek olarak generic kullanm verilebilir. Apple Swift iin baz dzenlemeler yapsa da ktphanelerinde genel olarak C, C++ ve Objective-C kullanyor.
  48. 48. SWFTN OBJECTVE-CDEN FARKLARI Komutlarn sonuna noktal virgl(;) koymanza gerek yoktur. Yalnz bir satrda birden fazla komut varsa komutlarn aralarna noktal virgn koymanz gerekir, Generic Programming Header dosyasna gerek yoktur, Fonksiyonlar birinci snf nesnelerdir, Operatrler snflar iin yeniden tanmlanabilir, Yeni operatrler yaratlabilir, Switch blogunda break kullanmaya gerek yoktur. Switch kullanmnda farkl olarak fallthrough ifadesi gelmitir, Yeni eklenen operatrler vardr, String deikenler Unicodeu tamamen desteklemektedir.
  49. 49. SWFT VE OBJECTVE-C BENZERLKLER Deiken tipleri (int, string, float vs) ayndr, Objective-cde kullanlan operatrler Swiftte de vardr, Grup ifadeler de ssl parantez { } kullanlr, Deiken tanmlamalar = iaretiyle yaplr ve karlatrma ilemi == eklinde yaplr. Kontrol deyimleri (if, while, for vs) kullanmlar ayndr, Array tanmlamalarnda keli parantez kullanlr.
  50. 50. FLASH 'n Mobil Cihazlardaki Hakimiyeti Accelerometer: Mobil cihazdaki ivmelerlerden alnan deerler ile uygulamalara yn verilebiliyor. Mesela kullanc telefonunu saa doru ediinde Flashta yer alan bir topu saa doru yuvarlayabiliriz. Geolocation: Cihazn anlk olarak GPS verilerini alabiliriz. Touch: Kullancnn ekran zerindeki dokunularn ayn Mouse ile tklama olayn algladmz gibi alglayabiliriz. MultiTouch: Kullancnn ekran zerindeki birden fazla dokunuunu alglayabiliriz. Geusture: Kullancnn eitli parmak dokunuu ve hareketlerini alglayabiliriz. Mesela kullanc ekranda bir alana parman koyup baka bir alana parman srdnde, kullancnn hangi eksende hangi dorultuda parman srdn alglayabiliriz. Kamera ve Mikrofon: Cihazn kamerasndan grnt veya video alp kaydedebiliriz. Ayn ekilde mikrofondan da ses alp kaydedebiliriz. SQLLite: SQLLite ile btn veritaban ilemlerimizi gerekletirebiliriz.
  51. 51. Flash Kullanmnn Avantajlar Flash ile gelitireceimiz uygulamalar hem browser zerinden, yani internet zerinden hem de direkt olarak cihaz zerinden alabilecektir. Bu avantaj sadece Flashta geerlidir. Bir uygulama gelitirirken bunu ok kolay bir ekilde webde yaynlamak zere de sunabilirsiniz. Hazrlayacanz aplikasyonlar kolaylkla hem Android hem de iOS iin yaynlayabilirsiniz. Dier SDKlar ve APIler gibi baka baka yazlmlar kullanmanza gerek kalmaz. Flash ile 3. parti yazlmlar ve APIleri kullanabilirsiniz. rnein; grafik dzenlemeleri iin Photoshop, 3D oyunlar gelitirmek iin Away3D, multiuser uygulamalar gelitirmek iin Cirsus (eski adyla Stratus) kullanabilirsiniz
  52. 52. Flash ile kullanacanz ActionScript 3.0 dilini kullanmak ok kolaydr ve Javadaki gibi ufak bir ilemi gerekletirmek iin sayfalarca kod yazmanz gerekmez. Mzik ve video gibi dosyalar Flash ile oynatmak ve stream kullanmak Flashta ok kolaydr. Flash ile XML kullanlabilir ve bu ekilde veri ak da ok kolaydr. Flash hzl alr, bataryay ve hafzay az kullanr. eitli optimizasyon yntemleri ile en dk boyut, en iyi performans ve en iyi grnt kalitesi aplikasyonlar oluturulabilir. Test, simlasyon ve debug aralar gelimitir. Flash, artk btn yazlm dnyasnn stnln kabul ettii ve her alanda uygulama gelitirmek iin kullanlan gl bir aratr.
  53. 53. Flash Kullanmnn Dezavantajlar Java'ya gre daha yava almaktadr Adobe rnlerinin pahal olmas ve srekli olarak yeni srm karlmas bir dezavantaj saylabilir.
  54. 54. htiya duyulan zm, kullanc istek ve deneyimlerini gz nnde bulundurarak, uygulama gereksinimlerini karlayacak ekilde uygun seimler yapmaktr.