Daha önce mobile adım atmak isteyen yazılım geliştiricilere başvuru kaynağı olabilecek bir yazıya Webrazzi'de yer vermiştik. Benzer şekilde Android ve iOS platformlarını kullanıcı deneyimi açısından da kıyaslamış, iOS'un belirli üstünlüklerine değinmiştik.
Bugün ise alanında uzman 5 tane mobil geliştiriciye mobil yazılım tecrübelerini, diğer geliştiricilere tavsiyelerini sorduk; kullanılabilirlik açısından iOS ve Android platformlarını karşılaştırmalarını istedik. Bu uzun ve geliştiriciler için faydalı olacağına inandığımız yazıda konuklarımız ise Facebook'dan Sarp Centel, sizlere daha önce tanıttığımız Press'den Jordan ve Jay, bir eBay şirketi olan StubHub'dan Selim Bebek ve Udemy'den Burak Oğuz.
Şimdi yavaş yavaş mobil geliştiricilerin verdiği yanıtlara geçelim, not almak için online/offline araçlarınızı hazırlayın, keyifli okumalar. :)
Burak Oğuz - Udemy (iOS)
Çalıştığınız şirket ve ünvanınız nedir. Mobil yazılım geliştirme geçmişinizden kısaca bahseder misiniz?
Şu an Udemy.com'da Senior Software Engineer olarak çalışıyorum. Daha önce birçok değişik platformda çalışmış olmama rağmen Udemy'de ilk mobil uygulama geliştirme tecrübemi edinme şansını elde ettim. Şu an Udemy iOS uygulamasını diğer geliştirici arkadaşlarım, UX ve tasarımcılarımız ile bir ekip şeklinde ilerletmeye devam ediyoruz.
Size göre Android ve iOS platformları kullanılabilirliği yüksek uygulamalar yazmak için kıyaslandığında hangisi daha çok öne çıkıyor, aradaki farklar ne?
Tahmin edileceği üzere iki platformun da kendisine göre avantajları ve dezavantajları bulunuyor. Bir iOS geliştiricisi olarak, Android ile çok vakit geçirmemiş bir kişi olarak, iOS'in geliştirici bakış açısından en büyük avantajının üzerinde çalıştığınız fiziksel aygıtın ve işletim sistemin tek bir noktadan geliştiriliyor olması. Yani fiziksel aygıt özelliklerinin (kamera, sensörler, touchscreen, gps gibi) belirli olması, uygulamanın üzerinde çalıştığı işletim sisteminin tek bir üretici tarafından geliştirilmesi önemli bir avantaj. Özellikle bu durum yüksek kullanılabilirlik bakış açısından iOS'in bir adım önde olmasını sağlıyor.
Bunun yanında, iki platformun da iyi dökümante edilmiş olması ve gerek kendi içlerinde gerekse de 3. kişiler tarafından hazırlanan bileşenler barındırması geliştiriciler için çok faydalı. Tasarım konusunda hem iOS hem de Android'in hazırlamış olduğu resmi belgeleri incelemek faydalı olacaktır. Ayrıca uygulamanızda kullanacağınız gerek kendinizin tasarladığı gerekse de dışarıdan alacağınız bileşenlerin, bu platformladaki diğer bileşenlerin davranışlarına veya tasarımlarına benzer olması da hem Android hem de iOS için hali hazırda oluşmuş olan kullanıcı deneyiminin, uygulmalarınızda da devam etmesine olanak sağlayacaktır.
Kendi tecrübelerinizden yola çıkarak mobil geliştirme konusunda diğer geliştiricilere neler tavsiye edersiniz?
Mobil geliştirme konusu oldukça olgunluğa ulaşmış durumda. Ancak, her yazılım geliştirme tecrübesinde yaşandığı gibi gizli tuzaklar bulunuyor. Bunların bazılarını şu şekilde listeleyebiliriz:
- Özellikle iOS uygulamalarına, yayınlanmadan önce yapılan değerlendirme birçok açıdan geliştiricilerin dikkat etmesi gereken bir süreç. Eğer Apple'ın yayınlamış olduğu kullanıcı deneyimi ve uygulama kuralları listesine dikkat etmeden uygulamanızı geliştirirseniz, uygulamanızın değerlendirmeden geçmemesi ve yayınlanmaması durumu oluşabilir. Bu yüzden iOS uygulamalarınızı geliştirirken test ve QA aşamalarına oldukça yüksek bir önem verilmesi gerekmektedir.
- Testflight gibi beta dağıtım kanallarını kullanarak, uygulamanızın yayınlanmadan önce mutlaka daha fazla test kullanıcısı tarafından denenmesini sağlayın.
- Mobil uygulamanızdaki analytics ihtiyaçlarını belirlerken, eğer aynı işi yapan bir web sayfanız varsa onun hazırdaki analytics sistemiyle bütünleştirmeyi deneyin. Bu durum kullanıcılarınızın uygulamanız içerisindeki hareketlerini takip edebileceğiniz bir geri besleme mekanizması oluşturmanıza da yardımcı olacaktır.
- Kullanıcılarınızın, uygulamanız ile yapacağı iletişimde hem kişisel bilgilerin hem de uygulama ile bilgilerin korunmasına ve güvenliğinin sağlanmasına dikkat etmek gerekmektedir. Hem aygıt üzerine yazdığınız dosyalarda, hem de eğer bir API kullanıyorsanız yapacağınız iletişimde güvenlik gereksinimlerinin göz önünde bulundurulması faydalı olacaktır.
- Testlerinizi yaparken üzerine uygulama geliştirdiğiniz platformun desteklediğiniz her sürümünde denemeyi ihmal etmeyin.
- Gelişen teknolojileri yakından takip etmek, yeni çıkan sürümleri, aygıtları ve diğer uygulamaları takip etmek sizin de yeteneğinizi geliştirecektir.
Yakın gelecekte mobil yazılım geliştirme konusunda ne gibi şeyler öngörüyorsunuz?
Mobil dünyası, gelişmeye oldukça açık bir alan. Üretici firmalar arasındaki rekabetin artması ile fiyatların düşmesiyle her geçen gün dünyadaki akıllı telefon sayısının artması ve mobil internet erişim kalitesindeki artış, sektörü ilerlemeye yönelik sürekli olarak destekliyor. Bir diğer açıdan henüz reklam ağlarının satüre olmamış olması da marketi rekabet açısından daha erişilebilir hale getirdi. Bu durum geliştiriciler açısından daha yeni teknolojilerin ve aktörlerin de bu piyasaya gireceğinin göstergesi. En son Canonical'ın 'Ubuntu for Smartphones'u açıklaması bu açıdan çok şaşırtıcı bir durum değil. Bunun yanında HTML5 gibi cross-platform standartların da güçleneceğini görmek gerekir.
Selim Bebek - Stubhub/ebay (iOS)
Çalıştığınız şirket ve ünvanınız nedir. Mobil yazılım geliştirme geçmişinizden kısaca bahseder misiniz?
Yaklaşık 4 yıldır mobil uygulama geliştiriyorum. San Francisco ebay'de iPhone ve Android application developer olarak çalışıyorum. Bu aralar ebay'ın ürünlerinden biri olan "Stubhub" uygulaması üzerinde çalışıyorum.
Size göre Android ve iOS platformları kullanılabilirliği yüksek uygulamalar yazmak için kıyaslandığında hangisi daha çok öne çıkıyor, aradaki farklar ne?
iOS'in SDK'sı daha olgun ve Apple tarafından çok iyi bir şekilde tasarım ve debug edilmiş, dökümantasyon çok iyi, developerlar için oluşturulan forumlarda her türlü sorunun yanıtını bulmak mümkün, Xcode ve iOS Simulator sayesinde uygulama geliştirme hızlı ve kolay, kötü tarafı ise uygulamanızın her versiyonunun 1-2 hafta süren bir review sürecinden geçmesi. Android'de biraz daha özgürsünüz, Apple'daki sınırlamaların bir çoğu Android'de yok, kötü tarafı onlarca farklı cihaz olması ve bu cihazların herbirini desteklemek ve test etmenin zorluğu, Android emulator ve development tool'ların yavaş ve bug'lı olması.
Kendi tecrübelerinizden yola çıkarak mobil geliştirme konusunda diğer geliştiricilere neler tavsiye edersiniz?
Belli bir platforma bağlı kalmamalarını, her gün yeni birşey öğrenmelerini, sürekli bir yada birden fazla yan proje üzerinde çalışmalarını tavsiye ederim.
Yakın gelecekte mobil yazılım geliştirme konusunda ne gibi şeyler öngörüyorsunuz?
Önümüzdeki bir iki sene içerisinde mobil web kullanımının PC web kullanımını geçeceği biliniyor, dolayısıyla mobil şu anda tüm teknoloji firmalarının en önem verdiği konu haline geldi. Tabletler evdeki PC'lerin yerini aldı. Bunun artarak devam edeceğini, zamanla PC ve laptopların yerini tamamen akıllı telefon ve tabletlerin alacağını düşünüyorum.
Jordan Beck ve Jay Ohms - Press (Android)
Çalıştığınız şirket ve ünvanınız nedir. Mobil yazılım geliştirme geçmişinizden kısaca bahseder misiniz?
Ben Jordan Beck, TwentyFive Squares'in kurucu ortağıyım. Mobil yazılım dünyasına ilk olarak iOS ile adım attım, ardından Android'e geçtim. Genel olarak yazılım anlamında Java ile tecrübem var. Press ilk uygulamamız.
Ben de Jay Ohms, TwentyFive Squares'in diğer kurucu ortağıyım. Android geliştirmeye lisede başladım. Press ile beraber daha çok hobi olarak gördüğüm Android'i kariyerimin bir parçası haline getirdim.
Android’deki farklı cihaz ve çözünürlük konusu ne derece büyük bir sıkıntı, bu konuda ne düşünüyorsunuz?
Bu konu kesinlikle önemli bir nokta. Örneğin biz iki kişiyiz ve piyasadaki tüm Android cihazları satın alarak test edecek bir vakit ya da bütçemiz yok. Bu sebepten dolayı Android'in 4.0 ve üzeri versiyonlarını destekliyoruz. Bu arada Google'ın Ice Cream ile beraber önemli iyileştirmeleri de mevcut. Diğer yandan bu durum farklı çözünürlükteki cihazlar için farklı özellikler eklenerek avantaja da dönüştürülebilir. Böylelikle ortaya heyecan verici uygulamalar çıkabilir.
Size göre hangi platform daha kullanılabilir ve "şık" mobil uygulama geliştirmek için daha müsait?
İyi tasarıma sahip uygulamalar yalnızca belirli bir platformdan çıkabilir fikrinden sonra artık insanlar üzerinde bir illüzyon olduğunu düşünmeye başladım. Tasarım tasarımdır ve hangi platformda icra edildiğinin de bir önemi yoktur. iOS'un daha güzel gözüken uygulamalar yaratmak için daha "eğilimli" olduğu gerçeği yakın bir zamana kadar vardı ama artık Android'de de geliştiriciler için çok sayıda yenilik var. Şahsen biz Android üzerinde çalıştığımız için çok memnunuz.
Yakın gelecekte mobil yazılım geliştirme konusunda ne gibi şeyler öngörüyorsunuz?
Kısa vadede şunu şöyleyebiliriz: uygulama geliştiriciler çok ama çok daha fazla yaratıcı olmak zorunda olacak. Mobil uygulama marketlerde neredeyse tüm fikirler "alınmış" durumda. Dolayısıyla yalnızca yaratıcı olmak değil, bu ortamda fikir üretebilir, çalışabilir olmak da gerekiyor. Uzun vadede ise teknolojisi çok hızlı değişiyor, biz de ileride neler olacağını merakla bekliyoruz. :)
Sarp Centel - Facebook (Android)
Çalıştığınız şirket ve ünvanınız nedir. Mobil yazılım geliştirme geçmişinizden kısaca bahseder misiniz?
Facebook'ta yazılım mühendisi olarak çalışıyorum, Android için Instagram uygulamasını geliştiriyorum. Son 3 yıl içerisinde Facebook'un satın aldığı Lightbox şirketinde ve Turkcell Teknoloji'de mobil uygulamalar geliştirdim.
Android’deki farklı cihaz ve çözünürlük konusu ne derece büyük bir sıkıntı, bu konuda ne düşünüyorsunuz?
Farklı çözünürlükleri desteklemek tasarım ve geliştirme sürecini uzatıyor, fakat Android platformu bunu kolaylaştırmak için gerekli altyapıyı sağlıyor. Cihazlar arasındaki farklılıklardan en çok kamera ve OpenGL gibi donanım özelliklerini kullanan uygulamalar etkileniyor. Bu yüzden uygulamayı çok sayıda cihaz ile test etmek geliştirme sürecinin önemli bir adımı.
Kendi tecrübelerinizden yola çıkarak mobil geliştirme konusunda diğer geliştiricilere neler tavsiye edersiniz?
Mobil uygulamanızda olmasını istediğiniz bütün özelliklerin listesini çıkartın. Bu listenin yarısını silin. Kalan listenin de yarısını silin. Küçük ekrana sığdırabilecekleriniz sınırlı.
Uygulamanızı geliştirmeden önce basın bülteninizi yazın. Size hangi özelliklerin önemli olduğunu gösterecektir.
Kendinize mobil uygulama satın almak için aylık bir bütçe ayırın, diğer uygulamaların arayüzlerini inceleyin. Kendinizi geliştirmek için kitap okur gibi kaynak kodu okuyun.
Yakın gelecekte mobil yazılım geliştirme konusunda ne gibi şeyler öngörüyorsunuz?
Android ve iOS uygulama geliştirilen ana platformlar olmaya devam edecek, şirketlerin her iki platform için kaynak ayırması gerekiyor. Mobil uygulama geliştiricilerinin hayatını kolaylaştırmaya yönelik ürünler üreten startupların başarılarını duyacağız.