x

Mobil uygulama geliştiriciler için kritik soru: ‘native’ mi ‘hybrid’ mi

Açıklama: Yazılımcılara Tavsiyeler başlıklı yazı dizimizde Türkiye internet sektörünün tecrübeli yazılım geliştiricilerini teker teker Webrazzi.com’da konuk edip, kendilerinden genç yazılım geliştiricilere olan tavsiyelerini ve tecrübelerini dinliyoruz.

Konuk yazarımız Altan Yılmaz; birçok büyük ölçekli portal ve web uygulaması projesinde front-end development yapmış olup şu an Yemeksepeti’nde JavaScript Developer olarak görev almaktadır.

html5-native-mobil-gelistirmeBilgiye 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 almak isteyen girişimcilerin yaratıcı fikirleri; mobil uygulama geliştiricileri yeni araçlar ve teknikler üzerinde çalışmalar yapma yolunda oldukça teşvik ediyor.

Bu hızla büyüyen pazarda kazanan taraf, kullanıcı ihtiyaçlarına en hızlı ve en kolay şekilde cevap vermek üzere doğru araçları ve teknikleri seçip kullanan geliştirici ve girişimciler olacaktır.

Mobil uygulama fikriniz için doğru aracı ve tekniği hangi kriterler belirler?

  • Stabilite
  • Performans
  • Görünüm ve etkileşim
  • Anlaşılabilirlik ve kullanılabilirlik
  • İleri Geliştirme ve Bakım Süreçleri
  • Kullanacağınız platform, arac(lar)ın eklenti desteği

Native ve hybrid mobil uygulamalar

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.

Hybrid mobil uygulama tekniği, temel olarak ‘write once, run everywhere’ yani tek bir kod çıktısı ile birden fazla platformda çalıştırılabilmek üzerine geliştirilmiştir.

HTML5, CSS3 ve JavaScript kombinasyonu farklı platformlarda, cihazlarda ve ekran çözünürlüklerinde rahatlıkla benzer uyumluluk ile çalıştırılabilmektedirler. Üstelik geliştirmesi zaman ve bütçe açısından az maliyetlidir. Öğrenme eğrisi ise oldukça düşüktür.

native-hybrid-web

Doğru seçim, hangi durumda?

Ancak unutulmamalıdır ki, uygulama konsepti ve gereksinimleri farklılıklar gösterebilir. Kullanılacak araç ve teknikler yukarıda listelediğimiz kriterler doğrultusunda, uygulama gereksinimlerine göre 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.

Hangi JavaScript çatısı seçilmeli?

Yukarıda listelediğimiz kriterlerin en büyük kısmını kapsayan konu doğru aracı seçmek. 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ştirebilirsiniz. Elbette tekerleği yeniden icat etmek için bolca vaktiniz varsa.

Uygulamanızın gereksinimleri doğrultusunda daha hızlı, esnek, genişleyebilir ve geliştirilebilir bir mimariye sahip olmak adına farklı mobil ekran çözünürlüklerinde, farklı platformlar ile benzer uyumu yakalamayı hedefleyen bir araç seçmek, geliştirmeye başlamadan önce en önemli adımdır.

Bu tip ya da daha farklı ihtiyaçlara cevap vermek adına geliştirilmiş araçlara;

gibi popüler araçlardan sadece birkaçı olan örnekler verebiliriz.

Kullanıcı-cihaz-uygulama etkileşimi üçgeni

altan-yilmaz

Altan Yılmaz

Her proje geliştirme sürecinde olduğu gibi, hybrid uygulama geliştirmenin de zorlukları ve özellikle cihaz-kullanıcı-uygulama etkileşimi üçgeninde gerektirdiği tecrübeler vardır.

Mobil hayat içerisinde özellikle aktif olarak kullanılan akıllı cep telefonları, farklı cihaz modelleri ve farklı ekran çözünürlüklerinde farklı kullanıcı deneyimleri gerektirebilir. Tek bir tasarım ve kod çıktısı ile birden çok cihazın kullanıcı deneyimini tatmin edici seviyede tutmak oldukça zorlaşabilir. Bu noktada, kullanıcı alışkanlığı halini almış reflekslerin incelenmesi ve uygulanması, uygulamanın kullanım rahatlığını oldukça arttıracaktır.

Kısaca

İşin “doğrusu” ne native ne de hybrid uygulama geliştirmektir. İhtiyaç duyulan çözüm, kullanıcı istek ve deneyimlerini göz önünde bulundurarak, uygulama gereksinimlerini karşılayacak şekilde uygun seçimler yapmaktır.

Kısaca önemli olan doğru veya yanlış seçim değil, uygun seçimi yapmaktır.

En yukarıdaki görsel kaynak: Venturebeat.com

Yorumlar (9)

  1. Söylenenlerin hepsine tamamiyle katılıyorum, önemli olan teknolojinin kendisi değil, hangi amaç için kullanılacağıdır. Güzümüzde hangi programla dili iyidir gibi tartışmalar hala sürüyor, ben bunları gereksiz görüyorum çünkü önemli olan, bilinen programlama dili değil aksine asıl önemli olan olan yapılmak isten işin kendisidir. İlk önce yapılmak istenilen analiz edilmeli, sonra ona uygun teknoloji seçilmelidir. Örneğin, sunucu tabanlı (server-side) bir yazılımı, ön yüz (front-end) bir programlama diliyle yapılamayacağı ya da masaüstü çalışacak bir uygulamayı web programa dilleriyle yapmaya çalışmak gibi.

    Cevapla
  2. mert meriç |

    bir de böyle şeyler var, Türk oldukları için bunun linkini vereyim sadece, çok başarılı bir platform: http://www.giderosmobile.com/

    Farklı işletim sistemleri için native kod üretiyor, siz yine tek kod yazıyorsunuz, o gerisini hallediyor… Özellikle girişimciler denemeli…

    Cevapla
  3. Hibrit uygulama geliştirme ortamı olarak geçenlerde intel XDK yayınlandı ve oldukça hoşuma gitti. Ben bu işte tecrübeli arkadaşlara şunu sormak istiyorum. Kodlarındaki algoritmanın gizli olmasını istediğim bir uygulama fikrim var. Bunu html5 ile yapsam kodları açıp görebilirler mi? Bu html5 ile yapılan uygulamalar aynen mi yayınlanıyor yoksa bundle edilip kodları kapatılarak *.apk olarak mı yayınlanıyor?

    Cevapla
  4. ali ardıç |

    Çok geniş ve ayrıntılı bir konu için yüzeysel bir yazı olmuş. Bir yazılım geliştirici zaten bunları araştırıp bulabilir önemli olan bu konuda neler yapılmalı neler yapılmamalı onları paylaşmak.

    Cevapla
  5. Bu yazı serileri her ne kadar değerli ve açık olsa da genelde yazı serilerindeki anlatılan konular daha çok bilgi ve detayla anlatılmalı diye düşünüyorum.

    Cevapla
  6. Yazılan Framework’lere bakıldığında Titanium’un burada olması çok da mantıklı gelmiyor. Zira diğer tüm framework’ler HTML çıktı verirken Titanium “Native” çıktı vererek diğerlerine göre daha performanslı çalışmaktadır.

    Cevapla
  7. Proje ve çözümün gerektirdiği unsurları sunabilen özelliklerin tercih edilmesinden yanayım. Fikre odaklı olmak ve en kısa yoldan somutlaştırıcı adımlar atabilmek çok önemli. Konu ile ilgili olması açısında Telerik (http://techcrunch.com/2014/01/28/telerik-launches-new-development-platform-for-web-hybrid-and-native-apps/) yeni platformunu duyurdu!

    Cevapla
  8. Matematik konusunda koordinat sistemini kullanarak etkileşimli aktif öğrenme ortamı oluşturmak için hangi framework ü tavsiye edersiniz? Yoksa php nin grafik kütüphanesini mi kullansam daha iyi olur?

    Cevapla

Bir Cevap Yazın