Uzmanlık

Android Yazılım Uzmanı

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.

Android yazılım uzmanı ne iş yapar?

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.

  • Mimariyi kurar. Katmanları (arayüz, iş mantığı, veri) ayırır; test edilebilir ve büyümeye açık bir yapı kurar.
  • Kotlin veya Java ile geliştirir. Yeni projelerde Kotlin varsayılan tercihtir; mevcut Java kod tabanlarında geçiş planı yapılır.
  • Cihaz çeşitliliğini yönetir. Farklı ekran boyutları, Android sürümleri, üretici eklentileri ve donanım farklılıklarını hesaba katar.
  • Çevrimdışı ve zayıf ağ senaryolarını çözer. Yerel veritabanı, kuyruk, tekrar deneme ve senkronizasyon çakışmaları.
  • Güvenliği kurar. Oturum yönetimi, cihazda şifreli saklama, imzalama, kod karartma ve uygulama bütünlüğü kontrolleri.
  • Google Play'e yayınlar ve sürdürür. Mağaza kuralları, sürüm notları, kademeli dağıtım ve yayın sonrası bakım.

Kotlin mi, Java mı?

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ı.

Native Android ne zaman doğru seçim?

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:

  • Derin donanım erişimi: kamera, Bluetooth, NFC, barkod okuyucu, sensörler veya özel cihaz entegrasyonları.
  • Performans sınırı: yoğun görüntü işleme, gerçek zamanlı ses/video veya büyük veri setleriyle çalışan ekranlar.
  • Platforma özgü davranış: arka plan servisleri, bildirim kanalları ve Android'in kendi yaşam döngüsüyle sıkı çalışan akışlar.
  • Mevcut Android ekibi ve kod tabanı: yatırımın korunması gereken kurumsal projeler.

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.

Android'de kaliteyi belirleyen başlıklar

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:

  • Pil ve arka plan işleri: gereksiz uyanma, konum takibi ve senkronizasyon sıklığı cihazı yormamalı.
  • Ağ davranışı: bağlantı kopunca ne olacağı, tekrar deneme sınırı ve kullanıcıya gösterilen durum.
  • Veri saklama: hassas verinin cihazda şifreli tutulması, oturum kapatıldığında temizlenmesi.
  • Güncelleme uyumu: yeni Android sürümlerinde davranış değişiklikleri ve izin modeli.
  • Mağaza uyumu: veri güvenliği formu, izin gerekçeleri ve sürüm reddi riskleri.
  • Gözlemlenebilirlik: çökme raporları, kritik akışlarda log ve sürüm bazında hata takibi.

Saha ve kurumsal uygulamalarda Android

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ı.

Bir Android projesi nasıl ilerler?

  1. Keşif ve teknik plan. Roller, ekranlar, entegrasyonlar ve kapsam dışı maddeler yazılır.
  2. Teknoloji ve mimari kararı. Kotlin/Java, native/Flutter ve mevcut sistemlerle konuşma biçimi netleşir.
  3. İskelet ve ilk akış. Çalışan, test edilebilir dikey bir dilim çıkarılır.
  4. Geliştirme ve test. Birim testleri, cihaz testleri ve kritik akışların otomasyonu.
  5. Yayın ve devir. Play Store süreci, kaynak kod, dokümantasyon ve bakım planı.

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.

Sık yapılan hatalar

  • Yalnızca tek cihazda test etmek. Sahada farklı üretici ve Android sürümleri çıkar.
  • Çevrimdışı senaryoyu sonraya bırakmak. Sonradan eklemek mimariyi baştan kurmayı gerektirir.
  • İzinleri gerekçesiz istemek. Hem kullanıcı güvenini hem mağaza onayını riske atar.
  • Güncelleme planı yapmamak. Android sürümleri ve mağaza kuralları sürekli değişir.
  • Log ve çökme takibini atlamak. Sorunlar kullanıcıdan duyulana kadar görünmez kalır.

Sık sorulan sorular

Android uygulaması için Kotlin mi Java mı kullanmalıyı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.

Native Android mi Flutter mı?

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.

Google Play yayını ne kadar sürer?

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.

Mevcut uygulamaya yeni özellik eklenebilir mi?

Evet. Önce mevcut kod tabanı ve mimari incelenir; riskli bölgeler belirlenir ve yeni özellik mevcut yapıyı bozmayacak şekilde eklenir.

Çevrimdışı çalışan bir saha uygulaması mümkün mü?

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.

Android uygulamasının bakımı nasıl yürü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.