1. Bölüm Ders 5: 4. Mobil Uygulama Geliştirme Platformaları
Mobil endüstri, akıllı telefonlar ve tabletler gibi artan sayıda mobil cihazla hızla gelişmektedir. Günümüzde insanlar mobil cihazlardan her zamankinden daha fazla hizmet alıyor. Mobil çözümler işletmeleri, kuruluşları ve artan müşteri ve iş ortaklarını doğrudan etkiliyor. Artık çalışanlar bile mobil bir nehirde hizmetlere erişmeyi bekliyor.
Mobil uygulamalarda şu an için performans, görünüm ve etkileşim (kullanıcı dostu ara yüzler), uygulama güvenliği, anlaşıla bilirlik, stabilite, geliştirme, test ve bakım süreçleri, yeni geliştirmelere destek, kullanılacak platform ve eklenti desteği en önemli ölçütlerdir.
Mobil Platformlar | Programlama Dilleri | Uygulama mağazası |
Apple IOS | C, Objective C | Apple Store |
Google Android | Java | Google Play Store |
Windows Mobile | .NET, C# | Windows Store |
Window 7 Phone | .NET, C# | Windows Store |
Symbian | C, C++, Phyton, HTML/ CSS/JS | Nokia Store, Ovi store |
RIM BlackBerry | Java (J2ME) | BlackBerry App World |
HP Palm WebOS | HTML/CSS/JS | HP store |
Samsung Bada | C, C++, HTML/CSS/JS | Samsung Apps |
MeeGo | C++ | Apps for MeeGo |
Tablo 4. 1: Mobil Platforma Göre Bilmemiz Gereken Programlama Dilleri
Projenin yapısına göre uygulama geliştirme:
- Mobil Web Uygulaması
- Native (Yerel)
- Hybrid (Melez)
- Mobil web Uygulaması Geliştirme:
Uygulamanın HTML5, CSS3, Javascript gibi web teknolojileri ile yazılarak tarayıcılarda çalışacak halde sunulması işlemidir. Mobil cihazların tarayıcıları ile siteye girdiğimiz zaman tarayıcı istemciye göre (user agent) mobil tarayıcı olduğunu anlayıp ona göre web sitesi olarak değil de web uygulaması olarak açılması sağlanır. Responsive web site tasarımı ’da tercih edilebilmesi hem daha pratik hem de daha az maliyetli olmaktadır. Farkı uygulama mağazalarından indirilemeyip tarayıcılar vasıtası ile erişilmesidir.
2.Native (Yerel) Uygulama Geliştirme:
Günümüzde var olan mobil aygıtları incelediğimizde Apple IOS, Google Android, RIM BlackBerry ve Windows Mobile gibi mobil işletim sistemlerinin kullanıldığını görmekteyiz. Bu sistemler için geliştirilen uygulamalar ayrı ayrı mağazalarından erişilebilmekte. Mobil uygulamaların farklı özellikteki bu cihazlar için ayrı ayrı yazılmasına, yazılımsal ve donanımsal olanaklarına doğrudan erişmesine yerel (Native) uygulama geliştirme yöntemi denmektedir. Native uygulamalar cihazın kendi ana platformu tarafından desteklenmiş bir dil ile yazılır. Örneğin Java ile geliştirilen Android uygulamaları Objective C veya Swift ile geliştirilen iOS uygulamaları gibi.
3.Hybrid (Melez) Uygulama Geliştirme:
Tek kod ile yazılan ve birden fazla platformda (IOS, Android, Windows) çalışabilen uygulamalara Hybrid uygulamalar denir. Bu uygulamalar HTML5, CSS3 ve JavaScript‘in gücü ve yaygınlığı üzerine kurularak mobil cihazlarda tercih edilmektedir. Native uygulamalar gibi sistem kaynaklarına doğrudan değil de bir ara katman sayesinde erişir. Çarpraz (cross-platform) uygulama geliştirme paltformu olarakta bilinen bu geliştirme yönteminde, tüm platformlar için tek dil kullanarak native uygulamalar oluşturulur ve aynı sonuç üretilir.
Hybrid uygulama bir kez kod yazıp tüm platformlar için (iOS, Android, Windows) native uygulama geliştirebilme isteğidir. Uygulama bir kez yazılacak ve tüm platformlar için uygulama çalışır hale gelecek. Uygulama ileride güncellenmek istenirse yine aynı kod üzerinden geliştirmeye devam edip, tek bir kod ile tüm platformlara native uygulama hazırlanmış olur. Geliştirilen bu uygulama App Store, Google Play gibi tüm uygulama mağazalarına sunulabilir.
Native Uygulamalar | Hybrid Uygulamalar |
Platforma bağlı geliştirme | Platformlardan bağımsız geliştirme |
Yüksek performans | Sınırlı performans |
Geliştirme ve bakım maliyetlidir | Geliştirme ve bakım az maliyetlidir |
Uygulama geliştirme karmaşık ve zaman alır | Hızlı geliştirme ve bakım |
Her platformun kendine özgü dilini ve araçlarını öğrenmek zorundasın | HTML, CSS, JS bilmek yeterlidir |
Geliştirmiş olduğu platformdaki API’lere ulaşır | Cordova API ile cihaz özelliklerine erişme kullanma imkanı sağlar. |
Tablo 4.2: Native ve Hybrid Mobil Uygulamaların Karşılaştırılması
Peki, hangisini öğrenmek ya da hangisi ile uygulamamızı geliştirmek daha doğrusu? Kime sorsak kendi bildiği teknolojiyi savunmakta ve daha avantajlı olduğunu anlatmaktadır.
Mobil Web siteleri tam olarak bir mobil uygulama sayılmazlar. Mobil cihazların tarayıcıları üzerinden erişilen mobil uygulamalara benzetilmiş web site yapılarıdır. Zaten uygulama gibi indirilip kurulamazlar. Sadece tarayıcılar üzerinden erişilip cihaz özelliklerinin (sensör, kamera, veri tabanı) tamamını da kullanamazlar. İnternet bağlantısı olmayınca (çevrimdışı) zaten erişim olamaz. Bu yüzden Mobil web siteleri biraz daha konu dışındadır ve Mobil Web uygulaması yazmayı düşünenler daha çok Responsive site tasarımı üzerinde durmalıdır. Responsive site tasarımları sayesinde hem daha az maliyetli hemde web sitesinin tüm içeriğini sunan bir amaç hedeflenmiş olunur.
Bu ve devam edecek anlatımların tamamı ve sınavlar
alt domaininde yayındadır. Tezimi paylaşıma açıyorum. Alın teridir, lütfen paylaşırken kaynak belirtmeyi unutmayın.