Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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ı...
Mobil uygulama fikri için doğru aracı ve tekniği belirleyen kriterler :
•Stabilite
•Performans
•Görünüm ve etkileşim
•Anla...
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 Wi...
Kullanılan Cross Platform aracının sağladığı ölçülerde tek bir programlama
dili kullanarak ( Javascript, C# gibi.) birden ...
Cross Platform Örnekleri
Programlama Dilleri
 Java: Java ile yazılmış programlar üzerinde JVM (Java Virtual Machine)
bul...
Oyun Motorları
 Unity 3D: İlk akla gelen
oyun motoru şüphesiz
Unity’dir. Unity bir oyun
motorudur. Javascript, C# ya
da ...
 Mobil Uygulama Geliştirme Araçları
Smartface App Studio: iOS ve Android platformlarına destek veren mobil
uygulamalar g...
Bu uygulamalar tek bir IDE ve tek bir dil kullanarak çeşitli platformlara
aynı anda çıktı sağlarlar. Bu alanda en bilinen ...
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 hallede...
Appcelerator Titanium ile Xamarin Karşılaştırması
Maliyet :
Appcelerator Titanium : Ücretsiz
Xamarin : Ücretli ( $299 - $9...
Performans :
Appcelerator Titanium : Yavaş animasyonlar, gecikmeli kaydırma,
yavaş sürdürme
Xamarin : Native kod ile perfo...
Native
Native Dille yazılmış bir uygulama, belli bir platforma özel, genellikle platform
sağlayıcısının belirtmiş/üretmiş ...
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 uyg...
2) Cross-Platform Native Uygulamalar
Tek bir IDE ve tek bir dil kullanarak çeşitli platformlara aynı anda
çıktı sağlarlar....
Artıları:
•Native uygulamalar en iyi kullanıcı deneyimini sunmaktadırlar. Hızlı ve
akıcıdırlar.
•Cihaz özelliklerine en iy...
Eksileri:
•Native uygulamalar daha fazla bir bütçeye ihtiyaç duyar. En
azından bir tane Objective-C ve Java geliştiricisi ...
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 p...
Native uygulamalar en iyi kullanılabilirlik, en iyi özellikler ve en iyi tam anlamlı
mobil deneyimi kazanmayı sağlar. Sade...
Native uygulamalar genellikle entegre bir geliştirme ortamı (IDE)
kullanılarak geliştirilmiştir. IDE'ler hata ayıklama, pr...
Mobil web uygulamaları HTML5, CSS3 ve Javascript gibi web
teknolojileri kullanılarak gerçekleştirimi yapılır ve adından
an...
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
...
Tek bir seferde yazılıp her cihazda çalışabilen, anında
güncellenebilen bir içeriğe sahip mobil web uygulamaları kulağa
da...
Hybrid
Hybrid mobil uygulama tekniği, temel olarak tek bir kod çıktısı ile
birden fazla platformda çalıştırılabilmek üzeri...
Hybrid uygulamalar denince akla PhoneGap gelmektedir.
PhoneGap, Adobe’nin açık kaynak bir aracıdır.
HTML, JScript, CSS gib...
Hangi JavaScript Çatısı Seçilmelidir?
Çok fazla donanım ve etkileşim ihtiyacı için günümüzde native geliştirme
tercih edil...
Bir hybrid uygulama için iki yol vardır:
Local : Mobil uygulamalardaki HTML ve JavaScript kodlarını ikili
paketleyebilirsi...
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
•Ge...
Eksileri:
•Platformu anlamak ve öğrenmek uzun bir zaman almaktadır.
•Bugünün tabletleri de dahil olmak üzere mobil cihazla...
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...
Artıları :
•Sunucu tarafında platform ve dil deneyimi ne olursa olsun,
geliştiricilerin önemli bir kısmı HTML, JavaScript ...
Eksileri :
•Tabiki de başarı garanti edilemez. Açık kaynak kodu olması hem
bir nimetken diğer yandan da bir sorundur. Özel...
2. Appcelerator
Appcelerator Titanyum native platforma özgü özelliklerle birleştiğinde
(cihaz üzerinden) bir JavaScript AP...
3. Adobe Air
Adobe AIR (Adobe Integred Runtime) ile web için kullandığımız
Markup dillerini (ActionScript, JavaScript, ASP...
Adobe AIR’in en büyük avantajı cross-platform çalışmasıdır. Yani
geliştirilen uygulama hangi işletim sisteminde olursa ols...
Adobe AIR ile uygulama geliştirirken verileri saklamak için
veritabanı (SQLLite) kullanılabilir. Avantajı ise veritabanını...
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
...
4. Sencha
Sencha Touch native uygulamalar gibi olmak ya da web
uygulamaları oluşturmak için bir HTML5 mobil uygulama alanı...
Artıları :
•Sencha Touch bir MVC tarzı mimari , UI bileşenlerinin bir
kütüphanesi, diğer özellikleri arasında genişletileb...
5. QT
Qt ("Cute") masaüstü ve mobil platformlar için bir çapraz platform
geliştirme aracıdır.
Artıları :
•Qt, ağ, animasyo...
HTML5 UYGULAMALAR
HTML5 uygulamaları HTML5,JavaScript ve CSS gibi standart web
teknolojilerini kullanır. Tek bir kod çıktı...
Artıları :
•HTML5 normal bir web uygulamasına benzerdir, daha küçük ekranda
çalışmak üzere tasarlanmışlardır.
•Bu uygulama...
Eksileri :
•Bu uygulamaların native işlevselliğine erişimi yoktur.
•Performansı native uygulamalarla uyuşmamaktadır.
Bu uy...
İOS İşletim Sistemi İçin Yeni Programlama Dili Swift
IOS için kullanılan IDE XCODE dur ve programlama dili Objective-c dir...
SWİFT’İN OBJECTİVE-C’DEN FARKLARI
•Komutların sonuna noktalı virgül(;) koymanıza gerek yoktur. Yalnız bir
satırda birden f...
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örl...
FLASH 'ın Mobil Cihazlardaki Hakimiyeti
Accelerometer: Mobil cihazdaki ivmeölçerlerden alınan değerler ile
uygulamalara yö...
Flash Kullanımının Avantajları
•Flash ile geliştireceğimiz uygulamalar hem browser üzerinden, yani internet
üzerinden hem ...
•Flash ile kullanacağınız ActionScript 3.0 dilini kullanmak çok kolaydır
ve Java’daki gibi ufak bir işlemi gerçekleştirmek...
Flash Kullanımının Dezavantajları
• Java'ya göre daha yavaş çalışmaktadır
Adobe ürünlerinin pahalı olması ve sürekli olara...
İhtiyaç duyulan çözüm, kullanıcı istek ve
deneyimlerini göz önünde bulundurarak,
uygulama gereksinimlerini karşılayacak
şe...
Mobil  Uygulamalar ve Geliştiriciler
Mobil  Uygulamalar ve Geliştiriciler
Mobil  Uygulamalar ve Geliştiriciler
Mobil  Uygulamalar ve Geliştiriciler
Mobil  Uygulamalar ve Geliştiriciler
Mobil  Uygulamalar ve Geliştiriciler
Mobil  Uygulamalar ve Geliştiriciler
Upcoming SlideShare
Loading in …5
×

Mobil Uygulamalar ve Geliştiriciler

3,557 views

Published on

education

Published in: Technology
  • Dating for everyone is here: ♥♥♥ http://bit.ly/36cXjBY ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Mobil Uygulamalar ve Geliştiriciler

  1. 1. MOBİL UYGULAMALAR ve GELİŞTİRİCİLER Merve YILDIZ
  2. 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. 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. 4. Mobil Uygulama Çeşitleri 1) Cross Platform 2) Native Uygulamalar 3) Hybrid Uygulamalar 4) HTML5 Uygulamalar
  5. 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. 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. 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. 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. 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. 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. 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. 12. 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.
  13. 13. 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
  14. 14. 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.
  15. 15. 1) Platform Tabanlı Native Uygulamalar 2) Cross-Platform Native Uygulamalar
  16. 16. 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.
  17. 17. 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.
  18. 18. 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.
  19. 19. 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.
  20. 20. 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.
  21. 21. 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.
  22. 22. 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.
  23. 23. 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.
  24. 24. 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.
  25. 25. 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.
  26. 26. 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.
  27. 27. 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
  28. 28. 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.
  29. 29. 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 )
  30. 30. 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.
  31. 31. 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.
  32. 32. EN İYİ 5 HYBRİD PLATFORM ARAÇLARI
  33. 33. 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.
  34. 34. 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.
  35. 35. 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.
  36. 36. 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.
  37. 37. 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.
  38. 38. 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.
  39. 39. 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.
  40. 40. 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.
  41. 41. 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.
  42. 42. 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.
  43. 43. 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.
  44. 44. 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. )
  45. 45. 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.
  46. 46. 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.
  47. 47. İ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.
  48. 48. 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.
  49. 49. 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.
  50. 50. 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.
  51. 51. 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
  52. 52. •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.
  53. 53. 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.
  54. 54. İhtiyaç duyulan çözüm, kullanıcı istek ve deneyimlerini göz önünde bulundurarak, uygulama gereksinimlerini karşılayacak şekilde uygun seçimler yapmaktır.

×