Ana içeriğe atla

Native ve Hybrid Uygulama

HTML5 ve Javascript'in gücünün artışıyla native ve hybrid uygulama kavramlarını hayatımıza sokmuştur. Bu yazı dizisinde bunların genel tanımlarından ve aralarındaki farklardan bahsetmek istiyorum.

Native Uygulama: Donanım ve işletim sistemi üzerinde doğrudan çalışan uygulamalara verilen genel addır. Mobil tarafında bakıldığında örneğin; Android üzerinde bir uygulamanın çalışması sanal makine mantığına dayanmaktadır. O zaman bu tanımlamayı sanal makine üzerinde çalışan uygulamalar olarak destekleyebiliriz. Kısaca tanımı özetlemek gerekirse, söz konusu sistemin doğal diliyle yazılmış, cihazın donanım ve işletim sistemi özelliklerine erişebilen uygulamalara native uygulamalar denir. Örnek vermek gerekirse; Android için Java ile geliştirilen uygulamalar, WindowsPhone için C# ve IOS için Swift ile geliştirilen uygulamalar..

Hybrit Uygulama:Üzerinde çalışılan platformun doğal diliyle geliştirilmeyen uygulamalardır. Bunlarda 3'e ayrılmaktadır.
  • Cross Platform: Farklı mobil işletim sistemleri için aynı dil ve kütüphaneleri kullanarak uygulama geliştirilen platformdur. Bu platformda genellikle HTML5, CSS3 ve Javascript kütüphaneleri kullanılır. Bakıldığında cross platform uygulamalarının hybrid uygulamalarda sınırlı kalmadığı gözlemlenebilir. Mesela Java platformunun olduğu her yerde işletim sistemi farketmezsizin uygulama geliştirilebilmekte ve çalıştırılabilmektedir. Cross Platform için mobilde PhoneGap, Appcelerator, Mosync, Sencha, SmartFace gibi araçlar kullanılmaktadır. Burada yapılmış uygulamalar da native uygulamalar gibi offline olarak çalışabilmektedir.
  • Dedicated Mobile Web:Belirli mobil cihaz için yazılmış web tabanlı uygulamalardır. Bu uygulamalar offline olarak çalışmazlar. 
  • Generic Mobile Web: Dedicated uygulamaların aksine belirli cihazlar için tasarlanmamışlardır. Sadece görüntü açısında uyumluluk sağlanmaya çalışılmıştır. Bu uygulamalar bir cihaz üzerinden değil bir web sunucusu üzerinde çalışmaktadır. Bu da offline çalışmaya uygun olmadıklarını gösterir.
Peki ya Native mi Hybrid mi?
Bu geliştireceğiniz uygulamaya göre değişecektir. Eğer telefonun donanımsal işlevini kullandıracak offline çalışabilecek uygulamalar geliştiriyorsanız, native uygulamaları tercih etmelisiniz. Fakat yazdığınız uygulamaların tüm platformalara hitap etmesini istiyorsanız ve web uygulamaları şeklinde gelişecekse hybrid uygulamaları tercih etmelisiniz. Kısacası seçiminizi projenize göre karar vermelisiniz. Projeniz neye hitap ediyorsa ona göre yol almalısınız. 

Diğer yazılarımızda görüşmek dileğiyle..

Yorumlar

Bu blogdaki popüler yayınlar

Algoritma Kavramı, Sözde Kod ve Akış Diyagramı

Bu yazımda çoğumuzun amelelik gibi gördüğü fakat belki de en önemli konu hakkında kısaca bilgi vermek istiyorum. Bundan sonra küçük örneklerle kod yazmayı arttıracağız. Programlama dillerinden bahsetmiştik geçenlerde. Yüksek seviyeli veya düşük seviyeli diller olsun hepsinin arasında kullanım farkları haricinde çok bir farkılılık yoktur. Hayatımızda kullandığımız koca koca programları, programlama dilleri değil onları hazırlayan algoritma kaynağı oluşturur. Kısaca algoritma kavramını tanımlarsak; Algoritma, belli bir problemi çözmek veya belli bir amaca ulaşmak için çizilen yoldur. Algoritma proglamlamada kullanılan en güzel tekniktir. Neyi nasıl yapacağımızı planlamamızı sağlar. Algoritmayı oluşturanda sözde kod ve akış diyagramlarıdır. ALGORİTMA ÖRNEĞİ(resim1) Sözde Kod:Yapacağımız algoritmayı kısa olarak sözle tanımlama yöntemidir. Örneğin; İki sayının toplamını veren algoritmanın sözde kodunu yazınız. 1)BAŞLA 2)YAZ(“1.sayiyi giriniz:”) 3)OKU(S1) 4)YAZ(“2.sayiyi g...

Örnek Algoritmalar ve Örnek C++ Kodları

Örneklerimize bu başlığımız altında devam ediyoruz arkadaşlar. :) Yıl başına kadar C++ hakkında bildiğim tüm konuları ve yaptığım projeleri sizlerle paylaşacağım. Sorularınızı yorumlarda bekliyorum. Şimdiden kolay gelsin :) Algoritma 5: Yarıçapı klavyeden girilen kürenin yüzey alanını ve hacmini açıklayan algoritmanın C++ kodunu yazınız.(π=3) #include <iostream> using namespace std; int main() { float r,alan,hacim; cout<<“Yaricapi giriniz:”; cin>>r; alan=4*3*r*r; hacim=(4*3*r*r*r)/3; cout<<“Alan:”<<alan<<endl; cout<<“Hacim”<<hacim<<endl; } Algoritma 6: Katsayıları klavyeden girilen birinci dereceden denklemin kökünü bulan algoritmanın C++ kodunu yazınız. #include <iostream> using namespace std; int main() { int a,b,c,x; cout<<“Katsayilari giriniz:”; cin>>a>>b>>c; x=(c-b)/a; cout<<“Kok:”<<x; } Algoritma 7:Klavyeden yarıçapı ve dilim açısı girilen daire diliminin...

C++ ile Veri Yapıları

Bu yazımızda, bilgisayar dünyasının temel yapı taşı olan veri yapısı konusunu ele alacağız. Bu konu oldukça zor olmakla birlikte, gayet önemli ve eğlenceli yapıdır. Veri yapısını bilmek ve etkin kullanmak, hayatınızda yapacağınız projelerde size kolaylık sağlayacaktır. Veri yapısı genel olarak bakıldığınında hayatımızın her anında vardır. Konular ilerledikçe bu daha iyi anlaşılacaktır. Veri yapısını tanımlamak gerekirse, bilgisayar ortamında verilerin etkin olarak saklanması ve işlenmesi için kullanılır. Veri yapıları, verilerin düzenlenme biçimini belirleyen yapıtaşlarıdır. Bir yazılım değişkeni bile basit bir veri yapısı olarak kabul edilebilir. Değişik algoritmalarda verilerin diziler, listeler, yığıtlar, kuyruklar, ağaçlar ve çizgeler gibi veri modellerine uydurularak düzenlenmesi gerekebilir. Veri, yapı ve algoritma bir yazılımın birbirinden ayrılmaz bileşenleridir. Algoritması hazırlanmış her yapı için verilerin düzenli bir şekilde kullanımı önemlidir. Çünkü yapı iyi kurul...