Ünite 11 / 11

Uçtan Uca Proje, Sorumlu Yapay Zeka Kullanımı ve Meslekte Yol Haritası

Kazanimlar:

  • Bir mobil özelliği tasarım, kod, yapay zeka entegrasyonu, gizlilik, test, hata ayıklama, performans ve yayın adımlarında uçtan uca ve doğrulanabilir biçimde geliştirebilme
  • Şeffaflık, doğrulama-sorumluluk ve adalet-zarar vermeme ilkeleriyle sorumlu ve etik yapay zeka kullanımı çerçevesi kurabilme
  • Yapay zekanın güçlü ve zayıf olduğu alanları ayırt edip son kararı insanda tutarak sürdürülebilir bir meslek pratiği oluşturabilme

Bu modül boyunca yapay zekayı mobil geliştirmenin her aşamasında kullandık: kod üretimi, arayüz, cihaz üzeri ve bulut YZ entegrasyonu, test, hata ayıklama, performans, gizlilik ve mağaza yayını. Bu son ünitede tüm bu parçaları tek bir uçtan uca akışta birleştireceğiz, sorumlu ve etik YZ kullanımının çerçevesini netleştireceğiz ve bu becerileri sürdürülebilir bir meslek pratiğine nasıl dönüştüreceğinizi konuşacağız. Ana mesaj değişmedi ama şimdi tam anlamıyla oturuyor: YZ, yetkin bir mobil geliştiriciyi çarpan bir güçtür; onun yerine geçen bir ikame değil. Ürünün kalitesinden, güvenliğinden ve kullanıcıya verdiği sözden sorumlu olan insandır.

Uçtan uca bir özellik: parçaları birleştirmek

Gerçek bir özelliği baştan sona YZ destekli geliştirmek, öğrendiğimiz her üniteyi bir zincirde birleştirir. Örnek: "fişten gider ekleme" özelliği. Akış şöyle işler:

  1. Tasarım (Ünite 3). YZ ile ekranı ve dört durumu (yükleniyor/boş/hata/dolu) taslakla, erişilebilirliği baştan iste.
  2. Kod (Ünite 2). MVVM ile kamera, veri modeli ve ViewModel'i katman katman ürettir; her katmanı doğrula.
  3. Cihaz üzeri YZ (Ünite 4). ML Kit metin tanımayla fişten tutar/tarih oku; ön işlemeyi ve güven skorunu ele al.
  4. Gizlilik (Ünite 9). Kamera iznini en az ayrıcalıkla iste, ret senaryosunu yaz, veriyi cihazda tut.
  5. Test (Ünite 6). Ayıklama mantığının birim testlerini, ekranın UI testini ürettir; sınır durumlarını kapsat.
  6. Hata ayıklama (Ünite 7). Çıkan çökmeleri bağlamla YZ'ye analiz ettir, kök nedeni çöz.
  7. Performans (Ünite 8). Kamera işlemesinin pil maliyetini ölç ve pil-dostu ayarla.
  8. Yayın (Ünite 10). YZ kullanımını şeffaf bildir, gizlilik formunu gerçeğe göre doldur, öz test yap.

Her adımda YZ hızlandırır, insan doğrular ve karar verir. Bu döngü, modülün özüdür.

İpucu: Karmaşık bir özelliği tek bir dev istemle YZ'ye yaptırmaya çalışmayın. Onu yukarıdaki gibi doğrulanabilir adımlara bölün. Her adımın çıktısını teste sokup bir sonrakine geçmek, hem daha güvenli hem sonuçta daha hızlıdır; çünkü büyük bir hatayı en sonda değil, doğduğu adımda yakalarsınız.

Sorumlu ve etik YZ kullanımı

Teknik yetkinlik tek başına yeterli değildir; onu sorumlu bir çerçeve tamamlar. Üç ilke:

Şeffaflık. Kullanıcı, YZ ile etkileşimde olduğunu bilmelidir. Gizli bir YZ, güven ihlalidir. YZ üretimi içerik etiketlenir; YZ tavsiyesi "kesin gerçek" değil "yardımcı öneri" olarak sunulur.

Doğrulama ve sorumluluk. YZ çıktısı bir başlangıç noktasıdır, bitmiş ürün değil. Yayınlanan her satır koddan, her YZ yanıtından, her veri işleminden sorumlu olan sizsiniz. "YZ öyle yazdı" bir savunma değildir.

Adalet ve zarar vermeme. YZ modelleri eğitildikleri verinin önyargılarını taşıyabilir. Bir yüz tanıma bazı ten renklerinde daha kötü çalışabilir, bir öneri motoru bir grubu dışlayabilir. Ürününüzün farklı kullanıcı gruplarında adil çalıştığını test etmek sizin sorumluluğunuzdur.

Dikkat: Bilişim ve güvenlik alanında öğrendiğiniz her teknik yalnızca yetkili ve yapıcı amaçla kullanılır. YZ'yi zararlı yazılım üretmek, başkasının uygulamasını izinsiz kırmak, kullanıcı verisini rızasız toplamak veya yanıltıcı içerik üretmek için kullanmak yasa dışıdır ve mesleğin etiğine aykırıdır. Gücün ölçüsü, onu kullanmadığınız yerlerde belli olur.

YZ'nin sınırlarını tanımak

Olgun bir geliştirici, YZ'nin nerede parladığını ve nerede yetersiz kaldığını bilir.

YZ'nin güçlü olduğu

YZ'nin zayıf olduğu

Kalıp kod, boilerplate üretimi

Ürün ve mimari kararları

Test ve dokümantasyon taslağı

İş bağlamını ve kullanıcıyı anlama

Çökme kaydı okuma, hata tarama

Kök neden kesin teşhisi (doğrulama gerekir)

Öğrenme, kavram açıklama

Güncel/uydurulmamış API bilgisi

Metin, açıklama, çeviri

Etik, güvenlik ve yasal son karar

Bu ayrımı içselleştirmek, YZ'yi verimli kullanmanın ve tuzaklarından kaçınmanın anahtarıdır.

Üç mini vaka

Vaka 1 — Uçtan uca hız. Bir solo geliştirici, yukarıdaki 8 adımlı akışla "fişten gider" özelliğini 4 günde bitirdi; YZ olmadan tahmini 12 gündü. Ama her adımı doğruladığı için yayın ilk seferde onaylandı. Hız gerçekti çünkü disiplin gerçekti. Ders: YZ + doğrulama, YZ - doğrulamadan hızlıdır.

Vaka 2 — Önyargı yakalandı. Bir ekip, YZ tabanlı bir isim-cinsiyet tahmini özelliğini test ederken Türkçe bazı isimlerde sistematik hata olduğunu fark etti; model çoğunlukla İngilizce veriyle eğitilmişti. Özellik, yanlış varsayım yerine kullanıcıya sormaya çevrildi. Ders: modelin eğitim önyargısını test etmek geliştiricinin işidir.

Vaka 3 — "YZ öyle dedi" savunması çöktü. Bir geliştirici, YZ'nin ürettiği bir ödeme kodunu doğrulamadan yayınladı; kod bir uç durumda çift tahsilat yapıyordu. Sorumluluk "YZ yazdı" diyerek kalkmadı; hesap sahibi olarak geliştiriciydi. Ders: sorumluluk devredilemez.

Zayıf prompt / Güçlü prompt

Zayıf prompt:"Bana komple bir fiş tarama uygulaması yaz."

Güçlü prompt:"'Fişten gider ekleme' özelliğini adım adım geliştirmeme yardım et.Sırayla ilerleyelim, her adımı ben doğrulayıp onaylayınca diğerine geç:1) Ekran + dört durum + erişilebilirlik2) MVVM katmanları (kamera, model, ViewModel)3) ML Kit ile fişten tutar/tarih okuma + güven skoru4) Kamera izni (en az ayrıcalık) + ret akışı5) Birim ve UI testleriHer adımda riskleri ve doğrulamam gereken noktaları da söyle."

Kopyalanabilir şablonlar

Uçtan uca planlama şablonu:"Şu özelliği geliştireceğim: [özellik].Onu doğrulanabilir adımlara böl: tasarım, kod, YZ entegrasyonu,gizlilik/izin, test, performans, yayın. Her adım için çıktıyı,riski ve doğrulama kriterini yaz. Tek dev üretim yapma."

Etik/önyargı denetim şablonu:"Şu YZ özelliğini adalet ve önyargı açısından denetle: [özellik].Hangi kullanıcı gruplarında kötü çalışabilir?Eğitim verisi önyargısı nasıl etkiler?Nasıl test ederim, nasıl daha kapsayıcı yaparım?"

Sorumluluk kontrol şablonu:"Bu YZ üretimi kodu/özelliği yayınlamadan önce sormam gerekensorumluluk sorularını listele: anladım mı, test ettim mi,güvenli mi, kullanıcıya şeffaf mı, yasal/etik uygun mu?"

Sürekli öğrenme şablonu:"Mobil geliştiricide YZ becerimi geliştirmek için 4 haftalıkbir pratik plan öner: her hafta bir konu (kod, entegrasyon, test,yayın), küçük bir proje ve doğrulama alışkanlığı hedefiyle."

Sık yapılan hatalar

  • Karmaşık özelliği tek dev istemle üretmek. Doğrulanamaz; adımlara bölün.
  • "YZ öyle yazdı" diye sorumluluktan kaçmak. Yayınlanan koddan siz sorumlusunuz.
  • YZ önyargısını test etmemek. Model bazı gruplarda kötü çalışabilir; adaleti sınayın.
  • YZ etkileşimini kullanıcıdan gizlemek. Şeffaflık güvenin temelidir.
  • YZ'nin sınırlarını unutmak. Mimari, etik ve güncel API konusunda son söz insanındır.
  • Öğrenmeyi durdurmak. Araçlar ve mağaza kuralları hızla değişir; sürekli güncel kalın.

Özetle

Uçtan uca bir özellik, modülün tüm parçalarını bir zincirde birleştirir: tasarım, kod, YZ entegrasyonu, gizlilik, test, hata ayıklama, performans ve yayın. Her adımda YZ hızlandırır, insan doğrular ve karar verir; karmaşık iş doğrulanabilir küçük adımlara bölünür. Sorumlu kullanım üç ilkeye dayanır: şeffaflık, doğrulama-sorumluluk ve adalet-zarar vermeme. YZ güçlü bir çarpandır ama mimari, etik, güvenlik ve güncel bilgi konusunda son söz insanındır. "YZ öyle yaptı" bir savunma değildir; ürününüzden ve kullanıcınıza verdiğiniz sözden sorumlu olan sizsiniz. Bu disiplinle YZ, kariyeriniz boyunca sizi daha hızlı, daha kapsamlı ve daha güçlü kılar.

Uygulama görevi

Seçtiğiniz bir mobil özelliği (örneğin "sesli not alıp özetleme" veya "fotoğraftan ürün tanıma") "Uçtan uca planlama şablonu" ile doğrulanabilir adımlara bölün. En az bir adımı YZ ile gerçekten geliştirip doğrulayın. Ardından "Etik/önyargı denetim şablonu" ile özelliğin hangi kullanıcı gruplarında sorun çıkarabileceğini analiz edin ve "Sorumluluk kontrol şablonu" ile yayın öncesi sormanız gereken soruları yanıtlayın.

Kontrol listesi

  • [ ] Özelliği doğrulanabilir küçük adımlara böldüm, tek dev üretim yapmadım
  • [ ] Her adımda YZ çıktısını doğruladım ve kararı ben verdim
  • [ ] YZ etkileşimini kullanıcıya şeffaf sundum
  • [ ] Özelliğin farklı gruplarda adil çalıştığını/önyargısını değerlendirdim
  • [ ] Yayın öncesi sorumluluk sorularını (anladım/test/güvenli/etik) yanıtladım
  • [ ] YZ'yi yalnızca yetkili ve yapıcı amaçla kullandım ve öğrenmeyi sürdürme planı yaptım

Modul Sinavi

1. Mobil geliştirmede yapay zeka için en doğru konumlandırma aşağıdakilerden hangisidir?

  • A) Yapay zeka geliştiricinin yerine geçer; ürettiği kod okunmadan doğrudan yayınlanabilir
  • B) Yapay zeka yalnızca metin yazmakta işe yarar, kod üretimiyle ilgisi yoktur
  • C) Yapay zeka bir yardımcı ve hızlandırıcıdır; mimari, güvenlik ve yayın kararlarının sorumluluğu insandadır ✔
  • D) Yapay zeka her zaman doğru kod ürettiği için ayrıca test ve doğrulama gereksizdir

Aciklama: Yapay zeka kod, taslak ve çözüm üreten bir yardımcı ve hızlandırıcıdır. Mimari, izin, güvenlik ve yayın gibi kararların sorumluluğu ve son onayı yetkin geliştiriciye aittir; yayınlanan her satırdan insan sorumludur.

2. Yapay zekadan mobil kod isterken üretilen kodun mimari kalitesini en çok ne yükseltir?

  • A) İstemi olabildiğince kısa tutup 'bana bir uygulama yaz' demek
  • B) Önce MVVM gibi bir mimari dayatıp kodu katman katman, küçük parçalar halinde istemek ✔
  • C) Tüm özelliği tek bir dev dosya olarak tek istemde üretmek
  • D) Mimariyi hiç belirtmeyip en iyi kararı yapay zekaya bırakmak

Aciklama: Yapay zekaya doğrudan kod yazdırmadan önce MVVM gibi bir mimari dayatmak ve katman katman istemek, mantığı ekrandan ayıran, test edilebilir ve bakımı kolay bir yapı üretir. Mimarisiz istek, her şeyi ekrana tıkıştıran kod verir.

3. Yapay zeka ile arayüz üretirken en sık atlanan ve gerçek kullanımda en kritik olan nedir?

  • A) Yükleniyor, boş ve hata durumlarını da tasarlamak, yalnızca dolu ekranı değil ✔
  • B) Yalnızca en güzel görünen dolu ekranı üretmek, diğer durumları atlamak
  • C) Her ekrana mümkün olduğunca çok renk ve animasyon eklemek
  • D) Erişilebilirlik etiketlerini en sona bırakıp yalnızca görünümle ilgilenmek

Aciklama: Geliştiriciler çoğunlukla yalnızca 'dolu' durumu düşünür; oysa kullanıcı gerçekte en çok yükleniyor, boş ve hata durumlarıyla karşılaşır. Dört durumu (yükleniyor/boş/hata/dolu) birden ürettirmek sağlam arayüzün sırrıdır.

4. Hassas kişisel veri (örneğin sağlık ölçümü) işleyen bir özellik için varsayılan tercih neden genellikle cihaz üzeri yapay zekadır?

  • A) Cihaz üzeri modeller her zaman buluttan daha doğru sonuç verir
  • B) Cihaz üzeri işleme hiçbir zaman pil veya işlemci maliyeti getirmez
  • C) Cihaz üzeri işleme model boyutu konusunda sınırsızdır
  • D) Veri telefondan çıkmadığı için gizlilik ve kullanıcı güveni açısından güçlü avantaj sağlar ✔

Aciklama: Cihaz üzeri (on-device) işleme veriyi telefondan çıkarmaz; bu, gizlilik uyumu ve kullanıcı güveni açısından güçlü bir avantajdır, ayrıca çevrimdışı ve anlık çalışır. Sınırı cihazın gücü ve model boyutudur.

5. Cihaz üzeri bir model entegrasyonunda sonuçların anlamsız çıkmasına yol açan, hata mesajı vermeyen 'sessiz' hata en sık hangisidir?

  • A) Modelin dosya adının yanlış yazılması
  • B) Uygulama ikonunun düşük çözünürlüklü olması
  • C) Giriş ön işlemesinin (boyut/normalizasyon) yanlış yapılması ✔
  • D) Ekran temasının koyu olması

Aciklama: Giriş ön işlemesinin (preprocessing — görüntüyü modelin beklediği boyut ve normalizasyona çevirme) yanlış yapılması, hata fırlatmadan tamamen yanlış sonuç üretir. Ön işleme değerleri modelin belgesinden doğrulanmalıdır.

6. Bir mobil uygulamaya bulut LLM entegre ederken güvenlik açısından en kritik kural nedir?

  • A) API anahtarı istemcide değil, yalnızca arka uçta tutulmalı; istekler proxy üzerinden gitmeli ✔
  • B) API anahtarı kolaylık için doğrudan uygulama koduna gömülmeli
  • C) API anahtarı uygulama açıklamasında paylaşılmalı
  • D) API anahtarı istemcide tutulup sadece isim değiştirilerek gizlenmeli

Aciklama: API anahtarı asla mobil uygulama koduna gömülmez; çünkü uygulama tersine mühendislikle çözülüp anahtar çıkarılabilir. Doğru mimari, anahtarı yalnızca arka uçta tutup istekleri kendi proxy sunucunuz üzerinden geçirmektir.

7. Uzun LLM yanıtlarında kullanıcının algıladığı hızı ve özelliği tamamlama oranını en çok ne artırır?

  • A) Yanıtı tamamı üretilene kadar bekletip tek seferde göstermek
  • B) Yanıtı akış (streaming) ile kelime kelime, üretildikçe göstermek ✔
  • C) Her istekte tüm sohbet geçmişini modele göndermek
  • D) Yanıtı olabildiğince uzatmak için model talimatını büyütmek

Aciklama: Akış (streaming), yanıtı kelime kelime üretildikçe göstererek algılanan hızı ve akıcılığı dramatik biçimde artırır. Kullanıcı boş ekranda beklemek yerine metnin oluşumunu izler; bu, terk oranını belirgin düşürür.

8. Yapay zekanın ürettiği testlerde en sık karşılaşılan ve testi değersiz kılan sorun hangisidir?

  • A) Testlerin çok fazla sınır durumunu kapsaması
  • B) Testlerin gerçek servisleri değil sahte (mock) nesneleri kullanması
  • C) Testlerin çok hızlı çalışması
  • D) Bir davranışı gerçekten doğrulamayan boş/işe yaramaz testlerin kapsamı şişirmesi ✔

Aciklama: Yapay zeka bazen hiçbir çıktıyı gerçekten doğrulamayan (örneğin sadece fonksiyonu çağırıp boş assertion yazan) testler üretir. Bunlar kapsam sayısını şişirir ama gerçek koruma sağlamaz; her testin anlamlı bir davranışı doğruladığı denetlenmelidir.

9. Bir çökmeyi yapay zeka önerisiyle try-catch içine alıp susturmak neden yeterli bir çözüm değildir?

  • A) try-catch mobil uygulamalarda hiç kullanılamaz
  • B) Çökme durur ama kök neden çözülmediği için sorun başka bir biçimde geri döner ✔
  • C) try-catch kullanmak uygulamayı yavaşlatır, bu yüzden yasaktır
  • D) Susturulan hata mağaza tarafından otomatik reddedilir

Aciklama: Belirtiyi susturmak kök nedeni çözmez; çökme durur ama asıl sorun (örneğin bozuk veri bağlantısı) başka bir biçimde (veri kaybı gibi) geri döner. Profesyonel hata ayıklamada amaç belirtiyi değil kök nedeni çözmektir.

10. Performans optimizasyonunda uyulması gereken temel altın kural nedir?

  • A) Önce profil alıp gerçek darboğazı ölçmek, sonra optimize etmek ✔
  • B) Nerenin yavaş olduğunu tahmin edip oraya yoğunlaşmak
  • C) Her fonksiyonda küçük kazançların peşinden koşmak
  • D) Performansı emülatörde ölçüp gerçek cihazı hiç denememek

Aciklama: Önce ölç, sonra optimize et. Gerçek darboğaz neredeyse her zaman tahmin edilenden farklı yerdedir; profil (profiling) almadan yapılan optimizasyon körlemesine tahmindir ve çoğu zaman boşa emektir.

11. Sürekli çalışan bir yapay zeka özelliği (örneğin canlı kamera çevirisi) için en önemli mühendislik kaygısı nedir?

  • A) Özelliğin mümkün olduğunca çok izin istemesi
  • B) Sürekli işlemin pil ve işlemci maliyetini örnekleme sıklığı ve toplu işlemle yönetmek ✔
  • C) Özelliği yalnızca en pahalı telefonlarda çalıştırmak
  • D) Kamerayı mümkün olan en yüksek kare hızında sürekli işlemek

Aciklama: Sürekli çalışan model, kamera ve ağ; pili hızla tüketip cihazı ısıtabilir ve sistemce kısıtlanabilir. Örnekleme sıklığını düşürmek, toplu işlem yapmak ve yalnızca gerekince çalıştırmak pil maliyetini yönetmenin yollarıdır.

12. İzin yönetiminde 'en az ayrıcalık' ilkesi mobil geliştirmede ne anlama gelir?

  • A) Her ihtimale karşı mümkün olan tüm izinleri açılışta toplu istemek
  • B) İzin reddedilirse uygulamayı çalışmaz hale getirmek
  • C) En geniş izni isteyip sonradan daraltmayı planlamak
  • D) Yalnızca gerçekten gereken izni, gerekince ve en dar kapsamda, ret senaryosuyla istemek ✔

Aciklama: En az ayrıcalık, yalnızca gerçekten ihtiyaç duyulan izni, ihtiyaç duyulan anda ve mümkün olan en dar kapsamda istemektir. Fazla izin kullanıcı güvenini sarsar, mağaza reddine yol açar ve veri sızması riskini büyütür.

13. Yapay zeka içeren bir uygulamayı mağazaya sunarken karşılanması gereken özel gereksinimler hangileridir?

  • A) İçerik şeffaflığı, içerik denetimi ve verinin yapay zekaya gidişinin gizlilik formunda açıklanması ✔
  • B) Yapay zeka kullanıldığının kullanıcıdan gizlenmesi
  • C) Gizlilik formunda gerçekte toplanmayan verilerin de işaretlenmesi
  • D) Açıklamada var olmayan özelliklerin de vaat edilmesi

Aciklama: Mağazalar yapay zeka içeren uygulamalardan içerik şeffaflığı (yapay zeka ürettiğinin belirtilmesi), içerik denetimi (zararlı çıktının filtrelenmesi ve kullanıcı bildirimi) ve veri kullanımının açıklanmasını bekler; hassas alanda doğruluk uyarısı gerekir. Bunları atlayan uygulamalar reddedilir.

14. Yayınlanan bir yapay zeka üretimi kodda bir uç durum hatası çıktığında 'YZ öyle yazdı' savunması neden geçersizdir?

  • A) Çünkü yapay zeka her zaman hatasız kod üretir, hata kullanıcıdan gelir
  • B) Çünkü mağazalar yapay zeka üretimi kodu otomatik olarak düzeltir
  • C) Çünkü sorumluluk yapay zekaya devredilemez; yayınlanan koddan ve veriden geliştirici sorumludur ✔
  • D) Çünkü yapay zeka üretimi kod hiçbir zaman canlıya alınmaz

Aciklama: Yapay zeka çıktısı bir başlangıç noktasıdır, bitmiş ürün değildir. Yayınlanan her satırdan, işlenen her veriden ve verilen her sözden sorumlu olan geliştiricidir; sorumluluk yapay zekaya devredilemez, bu yüzden çıktı yayından önce anlaşılmalı ve test edilmelidir.