Native uygulama mı? Hybrit uygulama mı?




Native uygulama mı? Hybrit uygulama mı?
 Native Uygulama Nedir?



Native uygulamalar üzerinde çalıştığı platformun yazılımsal ve donanımsal olanaklarına doğrudan erişebilen ,cihazın kendi ana platformu tarafından desteklenen bir dille yazılmış ve derlenmiş uygulamalara denir .Java ile geliştirilen Android  uygulamaları, ObjectiveC veya Swift ile geliştirilen IOS uygulamaları native uygulama örnekleridir.

Native uygulama demek sadece tek bir işletim sistemi için geliştirilen uygulama demektir.
Bir native uygulama yazdığımız zaman işletim sisteminin kaynaklarına erişebiliyoruz.Bunu donanımsal kaynaklar/yazılımsal kaynaklar olarak düşünebiliriz.Aynı şekilde var olan metotlara ,sınıflara erişip onlardan faydalanabiliriz.Örneğin native bir uygulamada 
telefonun /tabletin sahip olduğu kamera ,mikrafon gesture recognizer gibi input-output kaynakları kullanılabilir.Bunun yanı sıra  responsive bir web sayfasında sana hangi olanakları veriyorsa kullanıcı sadece onlarla yetinmek durumundadır. Native uygulama yazabilmek için işletim sisteminin çalıştıracağı dilde yazılması gerekiyor.Yani native uygulamalar sistemle aynı dilde yazılmış uygulamalardır.


Native uygulamalar belirli bir platform için yazıldığı için, işletim sistemi özellikleri ve genellikle yüklü olan diğer yazılımlardan yararlanabilirler
Native uygulamalar belirli bir platform için yazıldığından, işletim sistemi özellikleriyle ve bu platformda genellikle yüklü olan diğer yazılımlarla etkileşimde bulunabilir ve onlardan yararlanabilirler. Yerel bir uygulama, sürekli dediğimiz gibi “belirli bir cihaz ve işletim sistemi için” oluşturulduğundan, cihaza özel donanım ve yazılımları kullanma olanağı vardır.
Native bir uygulama doğrudan bir mobil cihaza yüklenir ve geliştiriciler her mobil cihaz için ayrı bir uygulama sürümü oluşturur. Native uygulamalarda veriler uzaktan depolanabilir ve native uygulama tarafından erişilebilse de, native uygulamayla ilişkili veriler de cihazda saklanır. Native uygulamaya bağlı olarak, aplikasyonların çalışması için internet bağlantısı gerekebilir yada gerekmeyebilir. Bu uygulamanın içeriği ile alakalıdır.
Daha anlaşılır ve kısaca söylemek gerekirse, native uygulamalar hızlı açılır, hızlı kapanır. İnternetli yada çevrimdışı çalışabilir.


Native uygulamaların avantajları şunlardır;
·        Mobil cihaz kullanıcılarına hızlı, güvenli ve istikrarlı çalışan uygulamalar sunulmasını sağlar.
·        Akıllı cihazların donanımsal ve yazılımsal tüm fonksiyonlarına ulaşılabilmesini sağlar.
·        Sürekli güncelleme gerektiren bu uygulamalar için cihazın kendi bildirim sisteminin kullanılması sağlanır.
·        Uygulamada daha fazla vakit harcanması sağlanır.
·        Native uygulamalar cihazdaki yeniliklere daha hızlı ayak uydurabilir.
·        Bu uygulamaları geliştirirken cihazın kendi tasarım şablonları da kullanabilirsiniz.



Native uygulamaların dezavantajları ise;
·        Sadece geliştirildikleri cihazda çalışmasıdır. Yani birden çok platformda desteklenen bir native uygulama geliştirmek imkansızdır. Ancak bütçeniz yetiyorsa kullanıcı deneyimini göz önünde bulundurarak native uygulama geliştirmek mantıklıdır
·        IOS uygulamaları Android’de çalışmaz ve tam tersi olarak Android uygulamaları IOS’da çalışmaz.Yani tek kaynak kodundan 2 platforma uygulama yapılmaz Ayrı ayrı yapılması gerekir.
·        Native uygulamalar genelliklle Hybrit uygulamalardan daha pahalıdır.
·        Başlattığınız her platform için bir kod tabanı yönetmeniz gerekir.


    Hibrit Uygulama Nedir?
Hybrid uygulama ise tek kod ile yazılan ve birden fazla platformda çalışabilen uygulamalardır.Bu hibrit uygulamalar;
HTML,CSS ve JS ile tasarlanabilirler . Native uygulamalar gibi mobil cihazların fonksiyonlarına erişmek açısından cihazın kendi yazılım donanım özelliklerini kullanabilirler Farklı işletim sistemleri için farklı yazılım ihtiyacı duymadıklarından her uygulama marketinde yayınlayabilme özelliğine sahiptirler

Hybrid uygulama ise tek kod ile yazılan ve birden fazla platformda çalışabilen uygulamalardır. Bu uygulamalar HTML5CSS3 ve JavaScript‘in gücü üzerine inşa edilerek cihazlarda çalıştırılır. Native uygulamalar gibi sistem kaynaklarına doğrudan değil de bir ara katman ile erişir. Aynı zamanda cross-platform(çarpraz platform) uygulama geliştirme olarak da adlandırılan bu yaklaşımda, tüm platformlar için aynı sonuç üretilir ve tek bir dil kullanarak native benzeri bir uygulama oluşturmak hedeflenir.
Özetlemek gerekirse;  hybrid uygulama bir kez kod yazıp tüm platformlar için(iOS, Android, Windows) native uygulama geliştirebilme çabasıdır.  Eğer uygulamayı ileride güncellemek gerekirse yine aynı kod üzerinden geliştirmeye devam edebilir, tek bir kod ile tüm platformlara native uygulama hazırlayabiliriz. Ve bu geliştirdiğiniz uygulama App Store, Google Play gibi uygulama mağazalarından indirilebilecek.
Böyle baktığımız zaman Hybrit uygulama kullanmak gayet mantıklı geliyor ama uygulamanın performansında gözle görülür yavaşlıklar olabilir. Hybrid uygulamalar gün geçtikçe performans açığını kapatıyor, ama yine de bu konuda native uygulamaların gerisinde.

Hybrit uygulama ilk bakışta oldukça cazip geliyor. Fazlaları var gibi, peki eksiği ve olumsuz yönleri yok mudur? Ya da neden çoğu kurum bunun yerine native uygulama geliştirmeyi tercih ediyor?
Native uygulama geliştiriyorsanız, örneğin eğer native bir iOS uygulaması geliştiriyorsak, Apple’ın bize sunduğu ve iOS işletim sistemine uygulama geliştirmek için bilmemiz gereken bir uygulama geliştirme dilini öğrenmemiz gerekiyor. Bu uygulama geliştirme dili Objective C veya Swift olacaktır. Eğer Android için native uygulama geliştirmek istiyorsak bilmemiz gereken dil ise Java. Ayrıca yine bu dilleri kullanarak uygulamayı geliştirebileceğimiz bir IDE lazım. iOS için bu IDE’nın ismi Xcode, Android için Android Studio(veya EclipseNetbeans). Bitti mi? Hayır! Eğer iOS geliştirmek istiyorsanız muhakkak bir Mac OSX işletim sistemli bir bilgisayarınız olması lazım. Gördüğünüz gibi Hybrid uygulama geliştirmeye kıyasla çok daha fazla “maddi” kaynak ve insan gücü gerekiyor.
Bunlar olumsuz yönler, tabii ki native uygulamaların birçok olumlu yönü de var. Performans, görsel olarak işletim sistemine tam uyumlu arayüzler, kontroller kullanabilme olanağı, işletim sistemine tam uyumlu olması ve açık olan tüm kaynaklara doğrudan erişme vardır.


Hibrit Uygulamaların Avantajları
·        Kodu bir defa yaz, aynı uygulama her platformda çalışır. 
·        Bakım ve güncelleme maliyeti daha düşük. Dili veya ortamı bilen tek yazılımcı ile tüm platformlarda uygulama yayınlayabilme olanağı
·        Daha kısa zamanda uygulama yapma imkanı. Tek kod, tek tasarım, tek proje, dolayısıyla daha hızlı geliştirme, ürün çıkarma ve kullanıcılara daha hızlı ulaşma olanağı.
Hibrit Uygulamaların Dezavantajları
·        Daha kısa zamanda uygulama yapma imkanı. Tek kod, tek tasarım, tek proje, dolayısıyla daha hızlı geliştirme, ürün çıkarma ve kullanıcılara daha hızlı ulaşma olanağı.
·        Görsel olarak native uygulamanın verdiği hazdan uzak kalması. Tek arayüz geliştirdiğiniz için buton, input vb. kontrollerin dizilimi, yerleri, görünümleri kullanıcıya biraz yabancı gelebiliyor. Sonuçta iOS ve Android uygulamalarının kendine has ekran özellikleri var. Tasarım sizin için çok önemliyse hybrid uygulama seçimini gözden geçirmelisiniz.
·        Apple ve Google’ın çıkaracağı her yeni sürümde ortaya çıkan uyuşmazlıkların firmalar tarafından hızlıca çözüm bulunamaması. İşletim sistemi güncellemeleri ve yamalar bazen uygulama arayüzüne ve davranışına etki edebiliyor. Bu durum native uygulamalara çok yansımazken, hybrit uygulamalarda uyuşmazlıklar çıkabiliyor.


·        Native kadar hızlı değildir, performansı düşüktür web site gibi çalışıyor olmasından kaynaklanarak, tüm kütüphanelere erişim yoktur bunu her hybrid uygulama geliştiren framework’ler kendilerine göre sağlamaya çalışmaktadır
Hibrit ve Native arasındaki fark nedir ?




Bir uygulama  Native ve hybrit arasındaki farkı anlamak oldukça güçtür .Ancak ikisi karşılaştırldığındahibrit uygulama çok daha caziptir .Çünkü her işletim sistemine uyan uygulamalar geliştirilmesini sağlar.

Hibrit uygulama native uygulamaya göre performans olarak daha yavaş çalışır.Bu yavaşlık büyük projelerde çok açık bir şekilde görünür.Platform yazılımın yeni bir sürümü çıktığında uygulamanın çalışmasında bozukluklar oluşabilir. Örnegin platformun yeni sürümünde kamera gps gibi özelliklere erişim yönteminin değişmesi sonucu uygulamanızda bunlardan birini kullanıyorsanız uygulamanızda bu özellikler çalışmayabilir.

Bir uygulama  Native ve hybrit arasındaki farkı anlamak oldukça güçtür .Ancak ikisi karşılaştırldığındahibrit uygulama çok daha caziptir .Çünkü her işletim sistemine uyan uygulamalar geliştirilmesini sağlar. 

Hibrit uygulamanın avantajlı yönleride vardır. Uygulamanızın zaman olarak daha hızlı çıkması ve compile etme süresi native göre hızlı olması en önemli avantajlarındandır. Hibrit uygulamaların maliyeti native uygulamaya göre daha düşük maliyetli ve öğrenilmesi daha kolaydır.



Bir uygulama geliştirmeden önce yapacağımız uygulamanın gereksinimlerine göre analiz yapıp native olarak mı hibrit olarak mı yapacağınıza bu analizler sonucunda karar vermeniz daha doğru olacaktır. Native ,hibrit tercihi yaparken  uygulamanın performans olarak sıkıntı yaşatmayacaksa hibrit , hibrit uygulamanın sağlıklı olmacağı sonucuna varırsanız da native uygulama tercih edilmelidir.

Comments

Popular posts from this blog

Firebase Nedir?, Nasıl Kullanılır Ve Özellikleri Nelerdir?

ANDROİD İLE FRAGMENT KAVRAMI

GÖRÜNTÜ İŞLEME