Kazanimlar:
- Yapay zekanın mobil geliştirmenin neresinde (kalıp kod, taslak, öğrenme) gerçek hız kazandırdığını, neresinde (mimari, izin, güvenlik, yayın) kararın insana kaldığını görev risk düzeyine göre ayırt edebilme
- Her yapay zeka çıktısını derle-çalıştır, test et ve gözden geçir adımlarıyla doğrulayan bir disiplin uygulayabilme
- Kişisel veri ve gizli anahtarları yapay zekaya vermeden koruyan ve güçlü, bağlam dolu istemler yazan bir alışkanlık edinebilme
Mobil uygulama geliştirme, dünyanın en yoğun rekabetli yazılım alanlarından biridir. Milyarlarca cihazda çalışan, güncelleme döngüsü mağaza onayına bağlı, kullanıcının cebinde her an ölçülen bir üründen söz ediyoruz. Yapay zeka (YZ — insan gibi metin, kod ve çözüm üretebilen yazılım sistemleri) bu alana iki koldan girdi: birincisi geliştirme sürecini hızlandıran bir yardımcı olarak (kod üretimi, hata ayıklama, test yazımı), ikincisi de uygulamanın içine gömülen bir yetenek olarak (cihaz üzerinde çalışan görüntü tanıma, sohbet asistanı, öneri motoru). Bu modül her ikisini de uçtan uca öğretir. Ama en baştan tek bir cümleyi çivileyelim: YZ mobil geliştiricinin yerine geçmez; onun üretkenliğini ve kapsamını büyütür. Yayınlanan her satır koddan, istenen her izinden, kullanıcı verisiyle yapılan her işlemden sorumlu olan sizsiniz.
Bu ünitede YZ'nin mobil geliştirmenin neresinde gerçek değer ürettiğini, nerede insana teslim olması gerektiğini, her çıktının nasıl doğrulanacağını ve gizlilik-güvenlik disiplininin neden pazarlık konusu olmadığını göreceğiz.
YZ mobil geliştirmenin neresinde işe yarar
Mobil geliştirme, birçok tekrarlı ve kalıp içeren işten oluşur: ekran (view) kodu yazmak, ağ isteği (network request — uygulamanın internetten veri çekmesi) katmanı kurmak, veri modeli tanımlamak, test senaryosu üretmek, hata mesajını çözmek. YZ bu kalıpları çok hızlı üretir. Buna karşılık mimari kararlar, kullanıcı deneyimi tercihleri, güvenlik sınırları ve iş mantığının doğruluğu insanın yetki alanıdır.
Görevleri risk düzeyine göre üç kovaya ayırmak faydalıdır:
Görev türü
YZ'nin rolü
İnsanın rolü
Kalıp kod (boilerplate), örnek ekran, dönüştürme
Taslağı üretir, hızlandırır
Gözden geçirir, entegre eder
İş mantığı, veri akışı, API entegrasyonu
Öneri ve taslak sunar
Doğrular, test eder, onaylar
Mimari, izin talebi, güvenlik, yayın kararı
Seçenek ve gerekçe listeler
Kararı verir ve sorumluluğu taşır
Bu tablo modül boyunca pusulamız olacak. Sağ sütun asla YZ'ye devredilmez.
İpucu: YZ'yi "çok hızlı ama deneyimsiz bir stajyer" gibi düşünün. Ona net görev verir, çıktısını okur, teste sokar ve sorumluluğu siz alırsınız. Stajyerin ürettiği kodu okumadan production'a (canlı ortama) göndermezsiniz; YZ için de aynı kural geçerlidir.
Doğrulama disiplini: üç adım
YZ metni akıcıdır ve emin görünür; ama akıcılık doğruluk değildir. YZ bazen var olmayan bir kütüphane fonksiyonu uydurur (buna halüsinasyon denir — modelin gerçekte olmayan bir şeyi kendinden emin biçimde üretmesi). Bir mobil geliştiricinin her YZ çıktısına uyguladığı üç adımlı süzgeç şudur:
- Derle ve çalıştır. Kod gerçekten derleniyor mu, uygulama açılıyor mu? YZ'nin önerdiği API gerçekten SDK'da (yazılım geliştirme kiti — platformun sunduğu hazır araç seti) var mı?
- Test et. Beklenen davranışı otomatik veya elle test edin. "Çalışıyor gibi görünüyor" yetmez; sınır durumlarını (boş veri, ağ yok, izin reddi) deneyin.
- Gözden geçir ve gerekçelendir. Kodun neden böyle yazıldığını anlıyor musunuz? Anlamadığınız kodu yayınlamayın. YZ'ye "bu satır ne yapıyor, neden gerekli?" diye sorun.
Dikkat: YZ'nin verdiği sürüm numaraları, kütüphane isimleri ve API imzaları eskimiş veya uydurma olabilir. Bilgi kesme tarihinden (modelin eğitildiği son tarih) sonra çıkan güncellemeleri bilemez. Kritik bir bağımlılığı her zaman resmi belgeden (Apple Developer, Android Developers) doğrulayın.
Üç mini vaka
Vaka 1 — Hızlanan ekran geliştirme. Bir e-ticaret ekibi, ürün detay ekranını Jetpack Compose (Android'in modern arayüz araç seti) ile YZ yardımıyla taslakladı. Normalde 2 gün süren ilk taslak 3 saatte çıktı. Ama ekip, YZ'nin ürettiği fiyat biçimlendirmesinin kuruş yuvarlamasını yanlış yaptığını testte yakaladı: 19,99 TL bazı cihazlarda 20 TL görünüyordu. Doğrulama olmasaydı bu hata canlıya giderdi. Kazanç gerçek, ama denetim şart.
Vaka 2 — Halüsinasyon yakalandı. Bir geliştirici YZ'den iOS'ta konum izni istemek için kod aldı. YZ, requestPreciseLocationOnce() diye bir fonksiyon önerdi. Böyle bir API yoktu; doğrusu requestWhenInUseAuthorization() idi. Derleme hatası bunu anında ortaya çıkardı. Ders: derleyici, YZ'nin en dürüst denetçisidir.
Vaka 3 — Gizlilik tuzağı. Bir ekip, kullanıcı hata raporlarını YZ'ye yapıştırıp çözüm istedi. Raporlarda kullanıcıların e-posta ve cihaz kimlikleri vardı. Bu, kişisel verinin üçüncü taraf bir servise sızması demekti ve KVKK (Kişisel Verilerin Korunması Kanunu) açısından ihlaldi. Çözüm: veriyi YZ'ye vermeden önce kişisel alanları temizlemek (maskelemek).
Zayıf prompt / Güçlü prompt
Aynı iş için verilen iki istem (prompt — YZ'ye verilen talimat) arasındaki fark, çıktının kalitesini belirler.
Zayıf prompt:"Bana bir login ekranı yaz."
Güçlü prompt:"Android için Jetpack Compose kullanarak bir giriş ekranı üret.Gereksinimler:- E-posta ve şifre alanı; e-posta format doğrulaması, şifre en az 8 karakter- 'Giriş yap' butonu yükleniyor durumunda devre dışı ve spinner göstersin- Hata mesajları alan altında kırmızı metinle çıksın- MVVM mimarisi: ViewModel'de state, Composable sadece UI- Kotlin, Material 3, minSdk 24Sadece kodu ver, sonra her bölümü 1 cümleyle açıkla."
İkinci istem platformu, aracı, mimariyi, sınırları ve çıktı biçimini söyler. YZ'nin tahmin etmesi gereken hiçbir şey bırakmaz; bu yüzden çok daha kullanışlı ve doğrulaması kolay bir sonuç verir.
Kopyalanabilir başlangıç şablonları
Aşağıdaki şablonları kendi bağlamınızla doldurup kullanın.
Rol ve bağlam şablonu:"Sen kıdemli bir [iOS/Android/Flutter] geliştiricisisin.Projem: [uygulama türü], hedef platform [sürüm], mimari [MVVM/Clean].Görev: [ne istediğin]. Kısıtlar: [dil, kütüphane, sürüm].Önce planı 3 maddede özetle, sonra kodu üret, sonra riskleri listele."
Kod inceleme şablonu:"Aşağıdaki [dil] kodunu incele. Şunları belirt:1) Hatalar ve çökme riskleri2) Bellek/performans sorunları3) Güvenlik ve gizlilik açıkları4) Daha basit yazılabilecek yerlerHer madde için satır numarası ve düzeltme öner.[kod]"
Öğrenme şablonu:"[Kavram, örn. Swift'te async/await] konusunu mobil geliştiricigözüyle anlat. Basit bir örnek ver, sık yapılan 3 hatayı söyle,ve bunu ne zaman kullanmamam gerektiğini belirt."
Doğrulama şablonu:"Bu API/fonksiyonu önerdin: [isim]. Şunu doğrula:Hangi SDK sürümünde geldi, hangi izni gerektirir, deprecated mi?Emin değilsen 'emin değilim, resmi belgeden kontrol et' de."
Sık yapılan hatalar
- Çıktıyı okumadan yapıştırmak. En yaygın ve en tehlikeli hata. Derlense bile mantık yanlış olabilir.
- Gizli veriyi YZ'ye vermek. API anahtarı, kullanıcı verisi, imza sertifikası asla isteme yapıştırılmaz.
- Sürüm ve API'yi doğrulamamak. YZ eskimiş veya uydurma API önerebilir; resmi belge son sözü söyler.
- Mimari kararı YZ'ye bırakmak. "En iyi mimari hangisi?" sorusunun cevabı projenize bağlıdır; YZ genel geçer cevap verir, siz bağlamı bilirsiniz.
- Tek dev prompt yazmak. Karmaşık işi tek istemle çözmeye çalışmak; küçük, doğrulanabilir adımlara bölmek daha güvenlidir.
- İzinleri "her ihtimale karşı" istemek. YZ bazen gereğinden fazla izin ekler; her izin mağaza onayında ve kullanıcı güveninde risktir.
Özetle
YZ mobil geliştirmede iki rol oynar: geliştirme sürecini hızlandıran yardımcı ve uygulamaya gömülen yetenek. Kalıp kod, taslak ve öğrenme için muazzam hızlanma sağlar; ama mimari, güvenlik, izin ve yayın kararları insanındır. Her çıktı üç adımla doğrulanır: derle-çalıştır, test et, gözden geçir. Gizli veri ve kişisel bilgi asla YZ'ye verilmez. Güçlü istem platformu, aracı, kısıtları ve çıktı biçimini net söyler. Bu disiplin modülün geri kalanının temelidir.
Uygulama görevi
Kendi mobil projenizden (yoksa hayali bir "not alma uygulaması") bir ekran seçin. Yukarıdaki "Rol ve bağlam şablonu" ile o ekran için bir istem yazın. YZ'nin ürettiği kodu bir projede derlemeyi deneyin ve üç adımlı doğrulama süzgecinden geçirin: derlendi mi, beklendiği gibi çalıştı mı, her satırını anlıyor musunuz? Bulduğunuz en az bir hatayı veya uydurma API'yi not edin.
Kontrol listesi
- [ ] Görevi risk düzeyine göre üç kovadan hangisine girdiğini belirledim
- [ ] İstemde platform, sürüm, mimari ve kısıtları belirttim
- [ ] Çıktıyı derledim ve çalıştırdım
- [ ] Sınır durumlarını (boş veri, ağ yok, izin reddi) test ettim
- [ ] Her satırı anladığımdan emin oldum
- [ ] YZ'ye hiçbir kişisel veri veya gizli anahtar vermedim
- [ ] Kritik API'leri resmi belgeden doğruladım