Mobil Uygulama Geliştirme: Süreç, Teknoloji Seçimi ve Maliyet

Mobil uygulama geliştirmek ya da yaptırmak isteyenlerden en sık aynı üç soruyu alıyorum: kim yapar, hangi teknolojiyle yapılır ve süreç nasıl işler. Bu yazıda üçünü de kendi deneyimimden, sade bir dille anlatıyorum. Fiyat konusu ayrı bir yazı olduğu için onu mobil uygulama maliyeti ve fiyatları sayfasında topladım.
Mobil uygulamayı kim geliştirir?
Mobil uygulamayı bir yazılım firması, bağımsız çalışan bir mobil yazılımcı ya da bir ekip yapabilir. Kimin yaptığından çok, işin sonrasında nasıl destek alacağınız önemli. Uygulama yayına çıktıktan sonra hata da çıkar, yeni telefon ve işletim sistemi sürümü de çıkar. İşi başka birine devretmek ise sıfırdan başlamaya yakın bir iştir. O yüzden baştan doğru kişiyle ya da firmayla başlamak gerekiyor.
Çalışacağınız kişiden ya da firmadan şunları mutlaka isteyin:
- Yayında olan uygulamaları ve bunları gerçekten onun yaptığına dair doğrulanabilir bilgi
- Ne kadar zamandır mobil uygulama geliştirdiği
- Hangi yöntemi kullandığı (aşağıda anlattığım native ya da cross platform seçeneklerinden hangisi)
- Yayından sonra nasıl destek verdiği ve bunun sözleşmede yazılı olması
- Tasarımı da yapıp yapamadığı, yapamıyorsa kiminle çalıştığı
- Ek istek çıktığında nasıl fiyatladığı, yani adam/gün ücreti ve bir işin kaç gün süreceğini neye göre belirlediği
- Kaynak kodun ve tüm dokümanların teslim edilip edilmeyeceği
Mobil uygulama geliştirme yöntemleri
Bugün pratikte üç yaklaşım var ve seçim, uygulamanın ihtiyacına ve bütçeye göre yapılıyor.
Native geliştirme (iOS ve Android ayrı)
Apple için Swift ve Xcode, Android için Kotlin ya da Java ve Android Studio ile her platform ayrı yazılır. Cihaz özelliklerine en yakın, en esnek yoldur. Yeni bir telefon özelliği çıktığında hemen kullanabilirsiniz. Bedeli, iki ayrı kod tabanını geliştirmek ve bakımını yapmaktır. Kamera, Bluetooth, arka plan işleri ya da yüksek performans gibi platforma çok bağlı işlerde bu yol hâlâ en sağlamıdır. Bu alandaki deneyimimi iOS ve Android uzmanlık sayfalarımda ayrıntılı anlattım.
Flutter ile cross platform geliştirme
Flutter ile tek kod tabanından hem iOS hem Android uygulaması çıkıyor. Ekran çizimi kendi motoruyla yapıldığı için iki platformda da aynı görünüm ve tutarlı davranış elde edersiniz. Bütçesi ve süresi kısıtlı projelerde, iki mağazada birden yer almak isteyen girişimlerde ve yönetim paneli gibi standart ihtiyaçlarda çok iyi çalışıyor. Kendi projelerimde yoğun olarak kullanıyorum. Ayrıntılar için Flutter mobil uygulama hizmetime ve Flutter ile mobil uygulama geliştirme yazıma bakabilirsiniz.
React Native ve diğer yaklaşımlar
React Native de tek kod tabanıyla iki platform sunuyor ve web tarafında JavaScript bilen ekipler için doğal bir seçim. İki yaklaşımı yan yana koyduğum Flutter ve React Native karşılaştırmasını okuyabilirsiniz. Cordova gibi tarayıcı içinde çalışan çözümler basit işler için yeterli olabilir ama native hissi vermekte zorlanır, bu yüzden yeni bir proje için genelde önermiyorum.
Hangisini seçmeli?
Karar için kendinize şu soruları sorun:
- Tek platform mu, ikisi birden mi? Yalnızca biri gerekiyorsa native düşünülebilir. İkisi de gerekiyorsa cross platform hız ve bütçe kazandırır.
- Cihaz özelliklerine ne kadar bağımlı? Derin donanım ve sistem entegrasyonu native'i öne çıkarır.
- Ekibiniz ve süreniz ne kadar? Küçük ekip ve kısıtlı süre cross platform'u destekler.
- Uygulama kaç yıl yaşayacak? Uzun ömürlü ve çok kapsamlı ürünlerde mimarinin sağlamlığı daha çok önem kazanır.
- Bakımı kim yapacak? Seçtiğiniz teknolojide yazılımcı bulmanın kolay olması ileride size esneklik sağlar.
Doğru cevap projeye göre değişiyor. Net bir öneri için birkaç soruyla ihtiyacınızı konuşmak çoğu zaman yeterli oluyor.
Mobil uygulama geliştirme süreci
- İhtiyaç ve kapsam: Uygulamanın kimin için, hangi sorunu çözmek için yapıldığı netleşir. İlk sürümde olması gereken özellikler listelenir, geri kalanı sonraya bırakılır.
- Tasarım: Ekran akışları ve arayüz tasarlanır. Burada kullanıcı deneyimi ve Apple ile Google'ın mağaza kurallarına uygunluk da kontrol edilir.
- Yazılım: Uygulama ekranları ve gerekiyorsa sunucu tarafı (backend) ile yönetim paneli geliştirilir. Çalışan sürümlerin aşama aşama gösterilmesi, sürpriz yaşamamanın en iyi yoludur. Bunu işi neden aşama aşama yapmak gerektiği yazısında anlattım.
- Test: Farklı cihaz ve sürümlerde denenir, hatalar giderilir.
- Yayın: App Store ve Google Play hesapları, mağaza sayfası, gizlilik politikası ve inceleme süreci hazırlanır. İncelemeden geri dönüş gelirse düzeltilip yeniden gönderilir.
- Bakım ve gelişim: Yayından sonra hata düzeltmeleri, işletim sistemi uyumluluğu ve yeni özellikler devam eder. Uygulama yaşayan bir üründür.
Sürenin ve bütçenin neye bağlı olduğu
Süre ve fiyat, ekran sayısına, tasarımın ne kadar özel olduğuna, backend ve yönetim paneli ihtiyacına, üçüncü parti entegrasyonlara (ödeme, harita, bildirim vb.) ve iki platformun nasıl yapıldığına bağlı. Rakamı baştan uydurmak yerine kapsamı çıkarıp gün bazında hesaplamak daha sağlıklı. Bu hesabın nasıl yapıldığını ve bir teklifin nasıl okunacağını mobil uygulama maliyet hesaplaması yazısında kalem kalem anlattım. Yapay zekânın bu işi nasıl değiştirdiğini merak ediyorsanız mobil uygulama fiyatları ve yapay zekâ yazısı da var.
Sık sorulan sorular
Mobil uygulama yaptırmak için ne hazırlamam gerekir?
Uygulamanın amacını, hedef kullanıcıyı ve olmazsa olmaz özellikleri birkaç cümleyle yazmanız yeterli bir başlangıç. Örnek uygulamalar ve ekran çizimleri varsa çok iyi olur. Gerisini birlikte netleştiririz.
iOS ve Android'i aynı anda yaptırmak mantıklı mı?
Kullanıcılarınız iki platformda da varsa evet. Bu durumda Flutter gibi tek kod tabanlı bir yöntem maliyeti ve süreyi belirgin biçimde düşürür. Ayrı native geliştirme ancak platforma özel ihtiyaç varsa tercih edilir.
Mobil uygulama geliştirme ne kadar sürer?
Basit bir uygulama haftalar, backend ve yönetim paneli olan kapsamlı bir uygulama aylar sürebilir. Net süre ancak ekran listesi ve özellikler çıkarıldıktan sonra verilebilir.
Yayından sonra destek gerekir mi?
Evet. İşletim sistemleri ve kütüphaneler sürekli güncelleniyor. Sözleşmede bir ücretsiz destek süresi ve sonrasında bakım koşulları yazılı olmalı.
Uygulamanın kaynak kodu bana mı ait olur?
Olması gerekir. Çalışacağınız kişiyle bunu sözleşmeye yazın.
Projenizi konuşalım
Mobil uygulama yaptırmayı düşünüyorsanız fikrinizi ve bütçe beklentinizi kısaca anlatın, size hangi yöntemin uygun olduğunu ve işin hangi aşamalarla ilerleyeceğini söyleyeyim. İletişim formundan ya da WhatsApp'tan yazabilirsiniz. Android için Android uygulama yaptırma yazımı ve mobil uygulama uzmanlık sayfamı da inceleyebilirsiniz.