Akıllı telefon alırken yaşadığınız “iOS mi Android mi” kararsızlığını alın, ikiyle çarpın. İşte size mobil yazılım geliştirmeye başlayacak geliştiricilerin içine bulunduğu durum: iOS mu Android mi kararsızlığı.
Vereceğiniz kararın Android olması halinde Android işletim sistemini kullanan tüm akıllı telefon ve tabletlere uygulama geliştirebiliyorsunuz. Hatta Google'ın Android'i arabalardan tutun da daha birçok cihaza daha entegre etme planlarının olduğunu hatırlatalım. Kararınızın iOS olması ise sadece iPhone ve iPad'lere değil, -ufak farklılıklarla birlikte- Mac OS X işletim sistemine de yazılım geliştirebilmeniz anlamına geliyor.
Apple'ın dokümantasyonu ve geliştirme araçları öne çıkıyor
Apple aşağıda bahsedeceğim başlangıç engellerini bir kenara koyacak olursak geliştirme araçları ve dokumantasyonu ile öne çıkıyor. Her ne kadar geliştiricileri Mac OS X işletim sistemi ve Xcode IDE'sine mahkum da bıraksa da hem bu geliştirme araçlarının başarısı hem de dokümantasyon Android'e nazaran daha başarılı. Android ise Eclipse (ve Netbeans) üzerinde geliştirme yapabilme imkanı sunuyor. Yalnız özellikle emülatör ve test araçlarının Apple'da olduğu kadar başarılı olmadığını hatırlatalım.
Bu noktada Android'in öne çıktığı yerse programlama dili olarak Java'nın kullanılıyor oluşu. Dünyanın en çok kullanılan dillerinden biri olan Java, tüm geliştiricilere daha yakın geliyor. Apple'ın kullandığı Objective-C'nin ise en büyük kullanım alanı iOS ve Mac OS. Ayrıca Objective-C'nin dünyanın ilk Nesne Tabanlı Programlama Dilleri'nden biri olmasından dolayı syn-tax'ına/söz dizimine alışmanın uzun sürmesi de dezavantaj.
iOS'un başlangıç engelleri
Bu iki platform arasındaki en büyük farklardan biri de Apple'in App Store'unu çok daha katı bir şekilde yönetmesi. 25 dolar ödeyip Google Developer Account üyeliğinizi başlattıktan sonra istediğiniz zaman herhangi bir incelemeye uğramadan uygulamızı Android Market'e koymanız mümkün. Aynı şekilde güncelleme yapmak da tamamen sizin elinizde.
App Store'da ise durum çok farklı. Sancılı bir ödeme süreciyle yıllık 100 dolar karşılığında App Store'a uygulama gönderebiliyorsunuz. Yalnız uygulamanız yayınlanmadan önce bir dizi incelemeden geçiyor. Apple'ın iş ortağı olan şirketlerin resmi uygulamalarını dahi incelemede kabul etmeyerek rezisyon talep etmesini, bu süreci ne kadar ciddiye aldıklarının bir göstergesi olarak görebiliriz. Yaklaşık 1 hafta süren inceleme dönemine güncellemelerde de maruz kalıyorsunuz.
Apple'ın yeni başlayan geliştiriciler için bir diğer engeli de Mac OS X işletim sistemini kullanan bir bilgisayara sahip olmanızı zorunlu kılması. Android de ise tüm işletim sistemlerinde çalışabilen Eclipse (ve Netbeans) üzerinde geliştirme yapabiliyorsunuz.
Çoklu platform yardımcı araçlar
Mobil pazar için en önemli etken kuşkusuz hız! Şirketler veya bireysel yazılımcılar için rekabet edebilme adına hız oldukça önemli bir faktör. PhoneGap ve Appcelerator gibi yazılımlar sayesinde yalnızca hızlı uygulama geliştirmekle kalmıyorsunuz, bu araçlar üzerinde yaptığınız geliştirmeden hem Android hem de iOS'ta çalışacak çıktılar alabiliyorsunuz.
PhoneGap ve Appcelerator gibi yazılımlar, geliştiricilerin büyük bir kısmının hakkında bilgi sahibi olduğu HTML, CSS, JavaScript gibi web teknolojilerini kullanıyor. Bu da halihazırda web uygulaması geliştiren herkesin mobil uygulamalar geliştirmesine olanak sağlıyor.
Yalnız dikkate alınması gereken bir diğer nokta da şu: PhoneGap ve Appcelerator gibi yazılımlarla aklınıza gelen tüm fikirleri mobil uygulama haline getirmeniz mümkün değil. Her iki yazılım da geliştiricilere sağladıkları API'larını gün geçtikçe geliştirseler de örneğin arkasında fizik motoru bulunan bir oyunu native yollarla yazmak gerekiyor. Bu ayrıma biraz daha vurgu yapabilmek adına PhoneGap ve Appcelerator'ın geliştiricilere sunduğu API'ların yeteneklerini sıralayalım: kamera kullanımı, telefon rehberine erişebilme, telefonların notification/bilgilendirme ekranlarını kullanabilme, ses dosyalarını kaydetme ve oynatma, cihazın lokasyon bilgilerine erişebilme, sosyal ağlar için eklentiler ve daha birçok detay.