Günümüzde hemen hemen herkesin elinden düşürmediği akıllı cep telefonları sayesinde (ya da yüzünden) masaüstü programları, uygulamaları geri planda kalmıştır. Hatta o kadar ki, artık internet sitelerine de daha az rağbet gösterilmektedir. Bunun çeşitli nedenleri var elbette. Mobil uygulamaların çevrimdışı, yani internet olmadan da kullanılabilirlik sunması, kamera, mikrofon, adım sayar ve bunun gibi cihaz donanımlarının rahatlıkla kullanılabilmesi gibi bazı nedenler sayabiliriz. Hal böyle olunca, mobil programcılığın gelişmesi de gayet makul şekilde açıklanabilir ve anlaşılabilirdir.
Bugün Android, iOS, Windows gibi işletim sistemlerine sahip cep telefonlarında veya tabletlerde ilgili marketlerden indirilerek kullanılabilen sayısız program, uygulama önümüze serilmiş durumda. A'dan Z'ye her ama her alanda bir uygulama bulmak çok zor değil. Bazı türler için ise seçenekler o kadar fazla ki hangi uygulamayı indireceğimiz konusunda kararsız dahi kalabiliyoruz.
Kısa bir güncel bilgi denizine daldıktan sonra, gelelim biraz mobil uygulamaların tarihçesine.
Mobil uygulamalar 90'lı yıllara dayanır aslında. Yaşı yeten okuyucularımızın gülümsemeyle anımsayacağı Nokia 3310'larla Yılan, Tetris gibi oyunlar, mesajlaşma uygulaması mobil uygulama piyasasına giriş yapılacağının göstergesidir. O yıllarda günden güne gelişen teknoloji sayesinde cep telefonlarının hafızası artırılmış olsa da bu cep telefonlarına henüz bir uygulama indirilememekteydi. O günlerin cep telefonlarında SymbianOS kullanılırdı ve herhangi bir uygulama mağazası mevcut değildi. Uygulama marketi tabiri, iOS ve Android'in ortaya çıkışıyla kuvvetlendi. 2007'de iOS, 2008'de Android işletim sistemleri piyasaya sürülerek ve bununla beraber uygulama marketleri geliştirilerek, ileride milyonlarca uygulamanın yer alacağı bir havuz oluşturuldu.
Zamanın 1 birim, teknolojinin ise 3-5 birim ilerlediği bir döneme girilmişken, basit ihtiyaçlarımızı rahatlıkla karşılayabileceğimiz uygulamalar geliştirildi. Hesap makinası, not defteri, ajanda, alarm ve bunun gibi küçük ama etkili uygulamalar bir furyanın temellerini atmıştı. Teknoloji geliştikçe ihtiyaçlar arttı, ihtiyaçlar arttıkça da mobil uygulama sayısı arttı. Özellikle internetin varlığıyla daha interaktif, daha geniş kitlelere hitap edebilecek uygulamalar piyasaya sürüldü. Arama ve mesajlaşmanın tek bir yerden yapılabildiği uygulamalar, harita ve konum servisleri kullanılarak geliştirilen uygulamalar fotoğraf, video gibi medya ürünlerinin yüklenebildiği, paylaşılabildiği platform uygulamaları bir hayli popülerlik kazandı.
Son yıllarda ise az önce bahsettiğimiz uygulama marketleri; Play Store, App Store, Windows Store gibi marketlerde her nefes alıp verişimizde dahi onlarca yeni uygulamaya ev sahipliği yaparak bu süreci takip etmemizin zorlaştığını ifade etmek isteriz.
Kısmen teorik bilgilerden sonra mobil uygulama geliştirme konusunda ne yapılmalı, nereden başlanmalı konularına değinelim.
Öncelikle Android ve iOS mobil uygulamaların bu sektöre hakim olduğunu belirtelim. Bu yüzden yoğunlaşılması gereken hedef, Android ve iOS mobil uygulama geliştirme olacaktır.
"Bunlar da nedir?" diye sormakta haklısınız. Native mobil uygulama, React Native'i hariç tutarak (daha sonra bahsedilecektir.) Android mobil uygulamanın Java programlama dilinde, iOS mobil uygulamanın Objective C veya Swift programlama dilinde geliştirilen uygulamalardır. Şöyle örnekleyelim; bir uygulama fikriniz var ve bunu mobil uygulamaya dönüştürmek istiyorsunuz. Hem Android hem iOS için ayrı ayrı kodlama yapmanız gerekmektedir. Olumlu tarafları olduğu kadar olumsuz tarafları da var elbette. Başka bir makalede Native ile Hybrid uygulama tiplerinin kıyaslamasını yapacağız.
Hybrid mobil uygulama ise şöyle özetlenebilir; web sitesi geliştirmede kullanılan HTML, CSS, JavaScript gibi yapıların kullanılarak ve tek bir editörden ve neredeyse bir taşla iki kuş vurarak, tek kodla iki uygulama geliştirmektir. "E ne güzel işte, neden ayrı ayrı kodlama yapayım, hatta neden iki dil birden öğreneyim ki?" diye sorabilirsiniz. Kısmen haklısınız ancak bu sizin ne tür projeler geliştireceğinize bağlı aslında. Eğer siz, cihaz donanımlarını ağırlıkla kullanacak, büyük ölçekli projeler geliştirmek istiyorsanız Hybrid pek tercih edilmemelidir. Kendi dillerinde Android ve iOS native mobil uygulamalar sizin kurtarıcınız olacaktır. Ancak 3-5 sayfalık, çok karmaşık yapılara sahip olmayan uygulamalar geliştirmeyi hedefliyorsanız Hybrid uygulamalar da mantıklı. Üstelik bir de HTML, CSS, JavaScript gibi yapılara hakimseniz ne Java'ya ne Swift veya Objective C'ye bulaşmadan da mobil uygulama geliştirebilirsiniz.
Bir de React Native demiştik. Son yıllarda Facebook tarafından geliştirilen bir sistemdir. Hem Hybrid hem Native özellikleri barındırır diyebiliriz. Yani, native mobil uygulama gibi çalışır, hybrid mobil uygulama gibi geliştirilir dersek yanılmayız. Bu da, vaktin nakit olduğu devirde zaman maliyetini neredeyse yarıya indirerek daha çok proje, daha çok iş, daha çok mobil uygulama geliştirmenizi sağlayacaktır.
Bu makalemizi burada sonlandırırken, sonraki makalelerimizde Android mobil uygulama geliştirme, iOS mobil uygulama geliştirme, Hybrid, Native, React Native, gerekli stüdyolar, donanımlar ve benzeri konularını özel olarak ele alacağız ve daha detaylı bilgileri kendi deneyimlerimizle sizlere aktaracağız.
Sonraki makalelerimizde görüşmek dileğiyle.