Android dünyada en yaygın mobil işletim sistemi; ama uygulama yazmak ile ölçeklenen, güvenli ve bakımı sürdürülebilir bir Android ürünü çıkarmak aynı şey değil. Kotlin ve Java ile native geliştirme, cihaz çeşitliliği, çevrimdışı saha senaryoları ve Google Play süreçleri bu işin merkezinde.
Bir Android uygulaması; ekranlardan, iş mantığından, yerel veriden, ağ katmanından ve mağaza süreçlerinden oluşan bir bütündür. Android yazılım uzmanı bu bütünün hem teknik mimarisini hem de cihaz üzerindeki davranışını sahiplenir.
Bugün yeni bir Android projesine başlıyorsak cevap neredeyse her zaman Kotlin. Daha kısa kod, null güvenliği, coroutine ile asenkron işler ve Google'ın resmi önerisi bunu destekliyor.
Java ise eskiyen bir kod tabanı olan projelerde hâlâ gerçek. Burada karar "her şeyi yeniden yazmak" değil; yeni modülleri Kotlin'de yazarken eski kodu kademeli olarak taşımak. Uygulamayı bir gecede bozmadan ilerlemek, bu geçişin en kritik kısmı.
Her proje native olmak zorunda değil. Tek kod tabanı hedefi varsa Flutter çoğu zaman daha verimli olur. Native Android'in öne çıktığı durumlar şunlar:
Native ile çapraz platform arasındaki karar bir din meselesi değil; donanım ihtiyacı, ekip yapısı ve ürünün ömrüne göre verilen bir mühendislik kararı. İki yaklaşımı Flutter mı native mi yazısında ayrıntılı karşılaştırdım.
Bir Android uygulaması "çalışıyor" görünürken sahada sorun çıkarabilir. Bu yüzden şu başlıkları projenin başından itibaren takip ediyorum:
Android'in en güçlü olduğu alanlardan biri kurumsal saha operasyonları: ekip yönetimi, form toplama, sipariş, denetim ve stok sayımı. Bu senaryolarda uygulama çoğu zaman zayıf ağda, elde eldivenle, güneş altında ve uzun vardiyalarda kullanılır.
Açık Deniz Bilgi'nin FMCG saha ekibi için anket ve konum tabanlı raporlama uygulamaları geliştirdim; native Android, iOS ve Swift tarafında çalışan bu uygulamalar ERP entegrasyonu ve çevrimdışı devam edebilme yeteneğiyle sahada kullanıldı. DoktorAsistan'ın mobil tarafında ise kullanıcı akışları, bildirimler ve güvenli oturum yönetimi öne çıktı.
Aşamaların nasıl işlediğini iş neden aşama aşama yapılmalı yazısında anlattım; maliyet tarafını ise mobil uygulama fiyatları yazısında ele aldım.
Yeni projelerde Kotlin önerilir: daha kısa kod, null güvenliği ve modern asenkron yapılar sunar. Java, mevcut kod tabanı olan projelerde kademeli geçişle korunabilir.
Derin donanım erişimi, yüksek performans veya platforma özgü davranış gerekiyorsa native; iki platforma aynı anda çıkılacaksa ve özel donanım ihtiyacı yoksa Flutter genellikle daha verimlidir.
Teknik hazırlık tamamlandığında mağaza incelemesi genellikle birkaç gün sürer. İlk yayında hesap doğrulama, veri güvenliği formu ve izin gerekçeleri ek süre alabilir.
Evet. Önce mevcut kod tabanı ve mimari incelenir; riskli bölgeler belirlenir ve yeni özellik mevcut yapıyı bozmayacak şekilde eklenir.
Mümkün. Yerel veritabanı, işlem kuyruğu ve senkronizasyon çakışmalarını çözen bir katman gerekir. Bu, baştan planlanması gereken bir mimari kararıdır.
Mağaza kural değişiklikleri, yeni Android sürümleri ve güvenlik yamaları düzenli takip ister. Bakım planı; sürüm takvimi, çökme takibi ve kritik güncellemeleri kapsar.