Artık Bilgisayarlarla beraber cep telefonları da oldukça popüler, hatta çok daha önemli bir yere sahip oldu. Akıllı telefonların gelişimiyle mobil uygulamalar da önem kazandı. Android, Windows ve iPhone, Huawei gibi mobil işletim sistemlerinde çalışabilen çeşitli uygulamalar geliştiriyor. Peki, bu platformlarda çalışabilen mobil uygulama nasıl hazırlanıyor?
Onlarca web sitesi ve program, kolayca mobil uygulama yapmanıza artık olanak tanıyor. Ancak bunlar birçoğu ya çok pahalı ya da reklam yayınlamaktadır. Ayrıca tüm platformlarda çalışabilen mobil uygulama hazırlamak da biraz zahmetli. Basit düzeyde bir mobil uygulamam olsun, Android, Windows ve iPhone dahil tüm platformlarda da kolayca ve sorunsuz çalışsın, diyorsan bu makaledeki bilgiler tam sana göre.
Özellikle Web tasarım uzmanlarının kendi mobil uygulamalarını hazırlamalarına yönelik önemli bilgiler vermeye özen gösterdim. HTML5, CSS3 ve Javascript dilleri ile kolayca mobil uygulaması nasıl hazırlayabiliriz? Onu birlikte ele alacağız.
Evvela şunu belirtelim. Belireteceğim bilgiler ışığında hazırladığınız mobil uygulama, IOS, Windows Phone ve Android dahil birçok mobil platformda kolayca ve sorunsuz çalışacaktır.
İçindekiler
Mobil Uygulama (APP) geliştirme konusunda zaman kadar bütçe de önemlidir. Kuşkusuz kurum sahibi ile beraber yazılımcı içinde zaman ve bütçe kısıtlı olması dikkate alınması gereken konudur. Yani her platform için ayrı birer mobil uygulama geliştirmek hem daha fazla zaman hem de daha fazla bütçe gerekli demektir. Bu tarz uygulamalara biz, Native Uygulama diyoruz. Evet, işlev ve performans konusunda oldukça etkilidir. Ancak temel düzey ve özellikle web site mobil uygulaması yapılacaksa native gerekli değildir. Bunun için HTML5, CSS3 ve JS dilleri ile hazırlanmış mobil uygulamalar gayet iş görecektir.
*** Sözcük israfı etmek yerine “HTML5, CSS3 ve Javascript” için “Üçlü” kavramını kullanalım mı? Çünkü çok sık bu programlama dillerini telaffuz edeceğiz. Tekrar tekrar yazmaya gerek yok.
Mevlüt Baki Tapan
Üçlü’nün (HTML5, CSS3 ve JS) Native Uygulamalara Göre Faydaları Nelerdir?
Birçok yazılımcı iyi bilir. Yazılım konusunda temel bir deyiş vardır; “Write one, use everywhere (Bir kez yaz, her yerde kullan).” Bu temel mantık eşliğinde Üçlü ile gayet basit mobil uygulama geliştirebiliriz.
Temel Mantık: Web site arayüz ve yazılım dilleri ile kodlama yapıyoruz. Sonra Framework (Kütüphane) ile de işlevselleştiriyoruz.
“Framework” (Kütüphane), Üçlü için olmazsa olmaz unsurlardandır. Çünkü bunlar sayesinde mobil uygulamamız tıpkı native uygulamalar gibi donanımlara erişebilmekte ve tasarımımızın daha bütüncül olması sağlanabilmektedir.
Üçlü (HTML5, CSS3 ve JS) için Önemli Frameworkler
- Sencha Touch
- PhoneGap
- Jquery
- jQueryMobile
- Cordova
- Titanium
- WorkLight
- Corona Labs
- Corona
- Enyo
- iOnic
- Lungo
- JQTouch
Biz, bu makale ve anlatımımızda “Cordova – PhoneGap” ile uygulama geliştirmeyi ele alacağız.
FrameWorke / Mobil Uygulama Geliştirme
Mobil APP geliştirmede 3 farklı yaklaşımla uygulama geliştirebiliyoruz.
- Yaklaşım: Native uygulama geliştirmek ve bu kapsamda her mobil platform için ayrı uygulama geliştirmektir.
- Yaklaşım: Web Teknolojilerini kullanmak; HTML5, CSS3, JS vb. Ayrıca PhoneGap tarzı araçlardan da destek almak ve yayınlamak.
- Yaklaşım: “Hybrid” uygulama geliştirmek. Her yaklaşımın hem avantaj, hem de birtakım dezavantajları var.
Native uygulamalar işlev bakımından çok daha iyi performans sağlar. Hızlıdır ve işlevselliği de yüksektir. Yerleşik özellikleri platform özelliğine gayet uygundur.
Facebook; “Diğer uygulama yaklaşımlaına göre Native uygulamaların daha performansı yüksek olduğunu söylüyor. Web temelli uygulamalara göre çok daha iyi ve tutarlı çözümler elde etmemiz mümkündür.”
Facebook.com
Ancak native mobil uygulamaların geliştirilmesi daha fazla zaman gerektiriyor. Çok daha pahalı ve yüksek bütçe gerektirmekte. Ayrıca her platform için ayrı birer native uygulama hazırlanması gerekir. Çünkü her platformda ayrı ortam kullanıyoruz. IOS için Swif ya da Objective-C dillerini kullanıyoruz. Android için ise genelde Java, C# vb. programlama dillerini kullanmaktayız. Kodlama süreci de ek zaman alır. Zamandan, paradan ve ek iş gücünden tasaruf etmek isteyenler için Hybrid – WebView ve Web Teknolojileri iyi bir alternatiftir.
Adobe PhoneGap
Hybrid – WebView ve Web Teknolojileriyle geliştirilen Mobil Uygulama konusunda en popüler ortamlardan birisi Apache Cordova Kütüphanesidir. Açık kaynak kodlu bir kütüphabedir. HTML5, CSS3 ve JS kullanılarak uygulama geliştirilebilmektedir. WebView mantığında çalışır ama oldukça zengin kütüphanesi sayesinde Native uygulamalar kadar güçlü performans gösterir. Cihazın GPS, ivmeölçer, kamera vb. donanımlarına erişeilmektedir. Kullanılmasına imkan tanır.
IONİC
Hybrid uygulamalar için oldukça popülerdir. Mobil gezinme, kaydırma listesi, açılır pencere gibi ek mobil bileşenler geliştirebiliriz. Angular JS kütüphanesi üzerine Angular Directive kullanılarak geliştirebiliyoruz. Tıpkı PhoneGap gibi Cordova üzerine inşa edilmiştir.
NativeScript
Hem Android, hem de IOS platformlarında çalışabilen uygulama hazırlamanıza imkan veren açık kaynak kodlu ortamdır. React native gibi yaklaşıma sahiptir. Cordova ortamının aksine HTML ve CSS ile oluşturulan WebView deneyimi sunmaz. Nativescript, JavaScriptCore ile cihazda çalışır. Bir nevi cihaz içerisinde çalışan ve işlev gösteren JavaScript programlamasıdır. Temeli Javascript programlama dilidir.
RectNative
Web teknolojilerini kullanarak mobil uygulama geliştirmemize olanak tanıyan ortamdır. Kaliteli mobil uygulaması oluşturmayı amaçlar. Yine birçok ortam gibi Javascript programlama dilini kullanırız. Ek olarak JSX ile arayüz tasarımı yapılmaktadır. Native mobil uygulamaları kadar iyi performans sağlar.
Diğer Gelişmiş, Kapsamlı Mobil Uygulama Geliştirme Ortamları
Yüzlerce, belki de binlerce platform ve ortam bulabiliriz.. Bunların her biri web site, program ve mobil uygulama geliştirebilmemiz için çeşitli çözümler sunuyor.
Unutmayın! Yazılım dünyasında ortaya koymak istediğiniz bir ürün veya özelliğin birden fazla yöntemi vardır. Tek bir yolu yoktur. Sizin yoğurt yeme şekliniz bunu belirler. Çok popüler diğer mobil uygulama geliştirme ortam ve teknolojilerinden bazılarına da değinelim.
Xamarin
Microsoft destekli ortamdır. C# programlama diliyle bütün mobil platformlara uygun mobil uygulama geliştirmek mümkündür. C# programlama dilini iyi düzeyde bilmek işleri daha kolaylaştıracaktır.
Flutter
Google tarafından tanıtılan açık kaynak kodlu mobil uygulama geliştirme SDK’sı olarak bilinir. Dart programlama dili ile yazılıp, hazırlanmıştır. Flutter ile de mobil uygulama geliştirmek mümkündür.
Jquery Mobil
HTML5 ile temellendirilmiş mobil uygulama kütüphanesi diyebiliriz. Böylece Mobil ve Tarayıcı uyumlu yüzlerce mobil uygulaması geliştirebilirsiniz.
Mobile Angular JS
Bootsrap ve Angular Kütüphanelerinin birleştirilmiş hali gibi diyebilirim. HTML5 temelli bir yazılım düşünelim. Hem mobil cihazlarda, hem de tarayıcılarda çalışıyor. İşte bu konuda farklı bir mobil uygulama çözümlerinden birisi de Mobile Angular JS, diyebiliriz.
Yazılım Mühendisleri Hangi Ortamı Tercih Ediyor?
Peki, yazılım uzmanlarının en fazla tercih ettiği ve mobil uygulama geliştirdiği ortamlar hangileridir?
React Native
Birçok yazılımcı mobil app geliştirme konusunda React Native ortamını tercih ediyor. Bunun için de en temel gerekçeleri şöyle;
- Proje devam özelliği,
- Birçok sayıda geliştiricinin olması,
- Açık kaynak kodlu olması,
- Javascript programlama diliyle temellendirilmesi,
Not: Javascript, günümüzde en hızlı ve kaliteli gelişen yazılım dillerindendir. En büyük atağı ise Node.js olarak bilinir.
İyi bir APP geliştirme konusunda sizlere nereden, nasıl başlayacağınız hususunda ön bilgiler vermeye çalıştım. Bu makale temel niteliğindedir. Bir sonraki konu ve makalede Apache Cordova ve PhoneGap ile Mobil APP geliştirmeyi anlatacağız. Ayrıca HTML5, JS ve CSS tabanlı bir uygulama tüm platformlarda çalışır düzeyde nasıl hazırlanır, bu konuya değineceğiz.
eski bir yazı..su an phoeGap artık kullanılamıyor..cordova da kurulum aşamasında bir çok hata veriyor..özellikle java konusunda..benim js jquery nodejs html css konusunda bilgim iyi fakat bu programları mobil hale getirmede sıkıntım var…yazdığım bu programları mobil uygulamaya çeviren bu konuda bana yardımcı olacak güncel bilgiye ihtiyacım var..güncel olarak önerilerinizi bekliyorum…saygılarımla