Skip to content

Social Network Badges

Posts Tagged ‘iphone ’

3G vb. teknolojiler, yeni ve daha akıllı cihazlar, sektörün devlerinin pazar paylarını kaybetmemek adına yaptıkları donanım ve yazılım yatırımları mobil Internet’in hızla yayılmasına ve bir mobil yaşam tarzının oluşmasına sebep oldu. Sosyal ağların ve özellikle Facebook ve Twitter’in getirdiği sürekli merak ve takip isteği bu yaşam tarzını iyice yerleştirdi. Artık iş hayatı da, eğlence de avuç içi kadar ekranlarda yaşanıyor.

Yeni nesil akıllı telefonlar hayatımıza “mobil uygulama” kavramını da soktu. iPhone’un çıkışıyla yazılım dünyasının seyrini değiştiren mobil uygulamalar, geliştiricileri ve şirketleri radikal kararlar almaya zorladı. Mobil uygulama geliştirme firmaları kuruldu, binlerce geliştirici kariyerini mobil uygulamalara yönlendirdi, mobil uygulamalara yönelik projeleri yöneten ajanslar ortaya çıktı. Bir çok kurumsal şirket kullandığı finansal uygulamaların mobil sürümlerini geliştirme yolları aramaya başladı. Araştırma kuruluşlarının raporlarında 2015 yılı itibariyle 25 milyar dolarlık bir mobil uygulama ekonomisi oluşacağı tahmin ediliyor.

Serbest ekonominin bir sonucu olarak bu alanda da birden çok alternatif ortaya çıktı. Google’ın ücretsiz Android işletim sistemi telefon üreticilerince tercih edilince, pazar payı hızla Apple platformunun önüne geçti. Microsoft ve Nokia yerlerini kaybetmemek adına güçlerini birleştirip Windows Phone işletim sistemli cihazlar üretmeye başladı. RIM firması iş dünyasında lider olduğu Blackberry cihazlarının özelliklerini ve çeşitlerini arttırarak hakimiyetini koruma derdine düştü. Samsung’un Google’a bağımlı kalmamak adına geliştirmeye çalıştığı Bada işletim sistemi varolma mücadelesi veriyor.

Peki, mobil yazılım işinde yer almak istiyorsanız bunların hangisine uygulama geliştireceksiniz? Hepsine birden geliştirecekseniz; tek tek donanım ve yazılım yatırımları yapıp, her biri için işgücü mü yetiştireceksiniz?

Mobil telefonların yanında, dokunmatik tabletlerin özellikle iş dünyasında kullanımı hızla artıyor. Uygulama geliştirirken tabletlerin boyutlarını da dikkate almanız gerekiyor. Aynı uygulamanın hem telefon hem tablet sürümlerini mi geliştireceksiniz?

Bu sorular mobil işletim sistemi pazarına yeni oyuncular girdikçe daha çok artacak. Dolayısıyla kariyerini mobil alanda devam ettirmek isteyen yazılımcıların, yazılım şirketleri ve kurumsal kullanıcıların doğru yatırımları yapması önemli hale geliyor.

Önünüzde birkaç alternatif var:

  • Sadece bir platform için uygulama geliştirmek: Bireysel geliştiriciler ve küçük yazılım şirketleri için tercih edilebilir bir seçenek… Ama aynı uygulamanın farklı platform için geliştirme ihtiyacı olduğunda bir dezavantaj haline geliyor.
  • Her platform için ayrı uygulamalar geliştirmek: Bu seçenek, Apple iOS uygulamaları için Mac bilgisayarlara ve Objective C bilen elemanlara sahip olmak, Android uygulamaları için Java ve Android SDK bilmek, Windows Phone için C# yatırımı yapmak demek… Eğer işi mobil yazılım geliştirmek olan bir firmaysanız, tercih edilebilir seçeneklerden biri… Ancak maliyeti yüksek…
  • Tüm platformlar için ortak yazılım geliştirmek: Kulağa hoş gelen ancak kendi zorluklarını içinde barındıran bu seçeneğin önündeki en büyük engel, cihaz ve işletim sistemi üreticilerinin ortak bir paydada buluşmuyor olması. Örneğin, Apple 2010 yılı ortalarına kadar Objective C dışında yazılan uygulamaların App Store’da yer almasına onay bile vermiyordu. Ayrıca, cihazlardaki GPS, sensörler vb. donanım özelliklerinin hepsini ve cihaz farklılıklarını desteklemek başlı başına bir problem… Yine, ortak uygulamanın hangi teknoloji ve dillerle geliştirileceği de bir başka sorun…

Uygulama geliştirme yöntemini ve platformu seçmek tabiri caizse buzdağının görünen yüzü… Eğer oyun ve eğlence uygulamaları geliştirecekseniz, çok kapsamlı bir özellik listesine ihtiyacınız olmayacaktır. Ama iş dünyası ve kurumsal mobil uygulamalar için; normal fonksiyonların yanında Internet’e bağlı olunmayan zamanlar için offline depolama, güvenlik ve erişim yönetimi,  raporlama ve loglama, merkezi veritabanlarına bağlantı yönetimi, web servisleri gibi özellikleri de dikkate almanız gerekiyor.

Bir diğer süreç de geliştirilen uygulamaların yayınlanması… Apple, (kurumsal iç dağıtım hariç) iOS uygulamaları için App Store dışında kuruluma izin vermiyor. App Store’da bir uygulamanın yayınlanması ise ancak belli kriterleri sağlamak ve aşamaları geçmekle mümkün oluyor. Android uygulamaları için resmi mağazası Market dışında bir çok uygulama mağazası var. Ayrıca uygulamaları direkt olarak yüklemek de mümkün… Ama bu durum da versiyon yönetimi sorununu beraberinde getiriyor.

Yukarıda bahsettiğimiz alternatiflerden ilk ikisinden birini tercih edenler, üreticilerin kendi geliştirme araçlarını kullanarak bu sorunların üstesinden gelmeye çalışıyorlar. Daha farklı yöntemler arayanlara yardımcı olmak açısından bir sonraki yazıda “tek uygulama, çok platform” çözümünü sağlayacak uygulama geliştirme çatılarını (framework) inceleyeceğiz.

11 Kasım 2011

Internet | Programlama

iPhone üzerinde JavaYazılımcıların bitmeyen merakı ilginç sonuçlar doğuruyor. Şurada gösterdiği ve şurada uzun uzun anlattığına göre, iPhone üzerine bir Java sanal makinesi ve web server kurarak, cihazı mobil bir java sunucuna dönüştürmüşler.

JamVM çok küçük boyutlu ve açık kaynak kodlu bir Java sanal makinesi. Ufaklığına rağmen, çoklu thread yapısını ve hatta JNI destekliyor. Jetty de tamamen Java kodlu bir web server. Bu ikisini birleştirerek iPhone üzerinde java uygulamalar yazılabilecek bir ortam oluşturmuşlar.

Aslında iPhone’un klavyesi bile yok. Ama geniş bir ekranı ve sanal klavyesi var. Bu da bir programcıyı tetiklemeye yetiyor. 🙂

iPhone bazı uygulamaların bilgilerini SQLite veritabanında saklıyor. Proje ile uğraşanlar SQLite için JDBC sürücüsü kullanarak iPhone veritabanına erişen bir uygulama da yazmışlar.

18 Haziran 2008

Programlama