Cordova ile Hibrit Mobil Uygulamalara Giriş

RageUnseen

Adanmış Üye
29 Ağu 2015
6,882
240
İstanbul


Web programlama dünyasından gelip native bir dil ile mobil uygulama geliştirmek biraz can sıkıcı ve baş ağrıtıcı bir durum. Uygulamayı optimize edebilmek adına sadece bir liste yapmak için bile türlü türlü Adapter‘lar oluşturup list_item.xml‘lerde boğulmayı hangi geliştirici ister? Halbuki web programlama dünyasında ul ve li tag’leri ile birlikte hızlı bir şekilde listeler oluşturulabilir, tadından yenmez görsellikler katılabilir. Apache Cordova gibi kütüphaneler sayesinde hem web programlamanın nimetlerini kullanabiliyor hem de ince ayrıntılarına kadar optimize edilmiş kullanışlı mobil uygulamalar geliştirebiliyoruz.

Bu yazı, Cordova ile mobil uygulama geliştirme için temel bilgileri size aktaracak bir yazı serisinin ilk yazısı olacak. Cordova’yı yakından tanıyıp sonraki yazılarda da Cordova ile nasıl uygulama geliştirebileceğimize bakacağız. İlk olarak kısa bir Cordova tarihçesi.

Tarihçe

İlk kez 2009 yılında San Francisco’daki iPhoneDevCamp etkinliğinde PhoneGap adıyla ortaya çıktı. Aynı yıl O’Reilly Media Web 2.0 Konferansında People’s Choice ödülünün sahibi oldu ve birçok uygulamanın geliştirilmesinde kullanıldı. PhoneGap’in popüleritesine duyarsız kalmayan Apple, 2010 tarihli 3.3.1 sürümündeki lisans sözleşmesini ihlal etmediğini duyurdu. PhoneGap çatısının kullanıldığı uygulama motoru furyasına Monaca, appMobi, Convertigo, ViziApps, ve IBM Worklight gibi birçok mobil uygulama geliştirme platformları katıldı.

2011 yılı ekim ayında Adoube’un, PhoneGap’i geliştiren Nitobi Software firmasını satın aldığını duyurması ile proje, Adobe PhoneGap adını aldı. Bu sırada, PhoneGap kodu Apache Software Foundation‘a dahil edildi ve projenin Apache Cordova olarak ayrı bir dalda ilerlemesinin yolu açılmış oldu.

Mimarisi

Bir Cordova uygulamasında çeşitli birçok bileşen bulunmaktadır. Aşağıdaki diyagram, Cordova uygulamalarının mimarisini göstermektedir:



Peki Neden Cordova?

Hızlı uygulama geliştirimi ve prototipleme için tam bir biçilmiş kaftan. Arkasında Web’in gücünü alması ile halihazırda bulunan JS ve CSS kütüphanelerinin avantajını kullanarak oldukça zengin ve görsel uygulamalar oluşturmak mümkün.

Çoklu platform desteği ile her telefonda aynı şekilde çalışan uygulamaların geliştirilmesine olanak sağlıyor. Çalışan kod JavaScript kodu olduğu için eğer tüm mobil tarayıcılarda çalışacak şekilde kodlanırsa (ES6 gibi özel versiyonlar kullanılmazsa) uygulama da aynı şekilde tüm platformlarda çalışıyor. Native bileşenler için geniş yelpazedeki plugin desteği mevcut.

Tarayıcı üzerinden geliştirime olanak vermesi. Android native geliştiriminde olduğu gibi mobil cihaza ikide bir apk dosyasının gönderilmesini beklemek yerine, modern bir internet tarayıcısı üzerinden hızlı yanıtlar almak mümkün.

Öğrenim maliyeti az. Uygulama geliştirmek için diğer platformlarda gereken Java, Objective-C, Swift, C# gibi dillerin ayrı ayrı öğrenilmesi yerine temel web bilgileri yeterli. Zaten web bilen geliştiricileriniz varsa maliyet neredeyse 0.

Geliştirici maliyeti düşük. Her platform için ayrı ayrı personel maliyetinin olması yerine tek bir personel ile tüm platformlara destek verilebilir.

OTA güncellemelerine izin vermesi. Native’de kod yazan arkadaşlar bilirler. Uygulamayı store başvurusu yaptıktan sonra tırnakların yendiği bir kabul sürecinin ardından küçük bir değişiklikte bile güncelleme için tekrar store başvurusu yapılması gerekir. Fakat Microsoft CodePush sayesinde store başvurusu yapmadan ilgili güncellemeyi kullanıcılara iletmek mümkün.

Peki ya uygulama performansı?

60 FPS’te akıcı oyun geliştirimi yapmak tabi ki afakî olabilir. Bunun yerine Unity‘i kullanabilirsiniz. Fakat liste elemanlarının scroll performansı gibi kısımlarda oldukça başarılı . Detaylı JS animasyonları oluşturmak yerine basit CSS3 animasyonları ile performanslı ve etkileşimli uygulamalar yapmak mümkün.



Kısacası CRUD işlemlerinin yoğun olarak gerçekleştiği form bazlı mobil uygulamalar için oldukça uygun bir geliştirme çatısı sunuyor. Daha da ileri gitmek isterseniz, plugin’leri kullanarak müzik oynatıcısı uygulaması dahil her türlü mobil uygulama geliştirimi için benzersiz bir nimet niteliğinde.

Alıntıdır
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.