PhoneGap ve Mobil Geliştirme

Herkese merhaba,

Geçenlerde bir projenin analizini yaparken ne kadar çok farklı mobil client desteklemek zorunda olduğumuzu fark ettim. Buna çözüm olarak da XHTML kullanmaya karar verdik. Fakat daha sonra XHTML in bile hangi mobil cihaz browserı kadar desteklediğinden emin olamadığımızın farkına vardık.

Sonrasında aslında uzun zamandan beri geliştirmelerine devam eden bir gruptan haberimiz oldu. Bu grup (Nitobi Software adında www.nitobi.com) PhoneGap isimli bir proje üzerinde çalışıyor. Peki nedir bu PhoneGap?

HTML 5 ve CSS3 ün ortama salınması ve über gelişmiş Javascript kütüphaneleri ile herkes biraz çalıştıktan sonra çok güzel görünen web uygulamaları yazabilir. Bunlar neredeyse dünyada en çok uyulan standartlar bildiğiniz üzere. Fikir basit: Biz oturuyoruz güzelce bir HTML/CSS/Javascript uygulaması (diğer bir deyişle web sitesi) yazıyoruz. Sonrasında adamların wrapper fonksiyonlarını kullanıyoruz ve bu yardımcı sınıf ve metodlar sayesinde uygulamamız istediğimiz (istediğimiz dediğim şimdilik IOS/Android/Symbian/Blackberry vs ile sınırlı) mobil ortamda çalışabilecek özellikleri kazanıyor.

Esasında çok temiz olan mevzu şu ki, adamlar native uygulama çalıştırıyorlar. Amaa, bu büyük bir ama, bu native uygulama esasen sadece cihazın native browser ını çağırıyor ve sonrasında orada sizin hazırladığınız HTML uygulamasını çalıştırıyor.

İşin enteresan kısmı başlamak  oldukça kolay olmasına rağmen, adamlar parayı support kısmından bulma fikrinde olduklarından, kaynak bulmakta oldukça zorlanıyorsunuz. Ben de bu yüzden Android kısmında bir Hello World nasıl çıkartılıyor, kısaca bahsedeyim..

İlk olarak projemizi normal bir şekilde oluşturuyoruz :

Daha sonra projenin kok dizininde /libs ve /assets/www klasörlerini oluşturuyoruz. Bu klasörlere phonegap ile ilgili kütüphane ve dosyaları atacağız. phonegap.js dosyası /assets/www klasörüne, phonegap.jar dosyası da /libs klasörünün altına atılıyor. Ayrıca xml klasörünü de res klasörünün altına kopyalamanız gerekiyor.

Sonraki adımlarınızda ilk olarak activity sınıfını extend etmistik, oradaki Activity sınıfı DroidGap sınıfı ile değiştirmeniz,

setContentView metod çağrısını “super.loadUrl(“file:///android_asset/www/index.html”);” ile değiştirmeniz,

import.com.phonegap.*; cümlesini eklemeniz ve karşılığında Activity sınıfı ile ilgili import cümlesini çıkarmanız gerekiyor. Son görüntünün şuna benzer bir şey olmuş olması gerekiyor :

javaSrc

Bundan sonrası biraz daha düz gideceğiniz bir kısım, AndroidManifest.xml dosyamızı açıyoruz ve aşağıdaki bilgileri versionName kısmından sonra giriyoruz :

 

manifest

 

Şimdi gerçekten kodumuzu yazacağımız yere geldik, demin oluşturduğumuz assets/www dizininde index.html dosyamızı oluşturuyoruz. HTML dosyasında istediğiniz herşeyi koymakta serbestsiniz ama üstünde çalıştığınız telefonun özelliklerine erişmek istiyorsanız phonegap in javascript kütüphanesini şu satırla eklemeniz gerekiyor :

<script type=”text/javascript” charset=”utf-8″ src=”phonegap.js”>

Bunu da tamamladıktan sonra geriye sadece Android uygulamasını emülatörde çalıştırmak kalıyor. İyi kodlamalar! (Bu blog girdisini yazmaya başladıktan hemen sonra Titanium framework ünü keşfettik. Bu elemanların kodlarını öğrenmek başta ne kadar da zor olsa, hem tüm görseller native nesnelere çeviriliyor ve hem sadece javascript kodlayarak geliştirme yapıyoruz, tek dezavantajımız şimdilik sadece İOS ve Android desteği mevcut. Kim sallar zaten Blackberry i : p)