Unit 1 / 11

Pengenalan kepada AI dalam Pembangunan Mudah Alih: Peranan, Sempadan, Pengesahan dan Keselamatan

Keuntungan:

  • Dapat membezakan di mana kecerdasan buatan memberikan kelajuan sebenar dalam pembangunan mudah alih (kod corak, draf, pembelajaran) dan di mana (seni bina, kebenaran, keselamatan, penerbitan) keputusan diserahkan kepada manusia, bergantung pada tahap risiko tugas.
  • Keupayaan untuk menerapkan disiplin yang mengesahkan setiap output kecerdasan buatan melalui langkah-langkah kompilasi, ujian dan semakan
  • Keupayaan untuk membangunkan tabiat menulis gesaan yang kuat, penuh konteks dan melindungi data peribadi dan kunci rahsia tanpa memberikannya kepada AI

Pembangunan aplikasi mudah alih adalah salah satu bidang perisian yang paling kompetitif di dunia. Kami bercakap tentang produk yang berfungsi pada berbilion peranti, yang kitaran kemas kininya bergantung pada kelulusan kedai dan diukur dalam poket pengguna pada setiap masa. Kecerdasan buatan (AI — sistem perisian yang boleh menghasilkan teks, kod dan penyelesaian seperti manusia) telah memasuki medan ini dalam dua cara: pertama, sebagai bantuan yang mempercepatkan proses pembangunan (penjanaan kod, penyahpepijatan, penulisan ujian) dan kedua, sebagai keupayaan yang dibenamkan dalam aplikasi (pengiktirafan imej pada peranti, pembantu sembang, enjin pengesyoran). Modul ini mengajar kedua-dua hujung ke hujung. Tetapi mari kita simpulkan satu ayat dari awal: AI tidak menggantikan pembangun mudah alih; meluaskan produktiviti dan skopnya. Anda bertanggungjawab untuk setiap baris kod yang dikeluarkan, setiap kebenaran yang diminta dan setiap transaksi yang dibuat dengan data pengguna.

Dalam unit ini, kita akan melihat di mana AI menghasilkan nilai sebenar dalam pembangunan mudah alih, di mana ia mesti diserahkan kepada manusia, cara mengesahkan setiap output, dan mengapa disiplin keselamatan privasi tidak boleh dirundingkan.

Di manakah AI berguna dalam pembangunan mudah alih?

Pembangunan mudah alih terdiri daripada banyak tugasan berulang dan bercorak: menulis kod paparan, menyediakan lapisan permintaan rangkaian, mentakrifkan model data, menghasilkan kes ujian, menyelesaikan mesej ralat. AI menghasilkan corak ini dengan cepat. Sebaliknya, keputusan seni bina, pilihan pengalaman pengguna, sempadan keselamatan dan ketepatan logik perniagaan adalah domain manusia.

Adalah berguna untuk mengasingkan tugas kepada tiga baldi berdasarkan tahap risiko:

Jenis tugas

Peranan AI

peranan lelaki

Kod templat (boilerplate), skrin sampel, penukaran

Menghasilkan draf, mempercepatkannya

Ulasan, menyepadukan

Logik perniagaan, aliran data, integrasi API

Menyediakan cadangan dan draf

Mengesahkan, menguji, mengesahkan

Seni bina, permintaan kebenaran, keselamatan, keputusan penyiaran

Menyenaraikan pilihan dan justifikasi

Membuat keputusan dan memikul tanggungjawab

Jadual ini akan menjadi kompas kami sepanjang modul. Lajur kanan tidak pernah diserahkan kepada AI.

Petua: Fikirkan AI seperti "pelatih yang sangat pantas tetapi tidak berpengalaman." Anda memberinya tugas yang jelas, membaca cetakannya, mengujinya, dan anda bertanggungjawab. Anda tidak menghantar kod yang dihasilkan oleh pelatih kepada pengeluaran (persekitaran langsung) tanpa membacanya; Peraturan yang sama digunakan untuk AI.

Disiplin pengesahan: tiga langkah

Teks AI adalah cair dan kelihatan yakin; Tetapi kefasihan bukanlah ketepatan. AI kadangkala sesuai dengan fungsi perpustakaan yang tidak wujud (ini dipanggil halusinasi — model dengan yakin menghasilkan sesuatu yang sebenarnya tidak wujud). Berikut ialah penapis tiga langkah yang digunakan oleh pembangun mudah alih untuk setiap output AI:

  1. Susun dan jalankan. Adakah kod itu sebenarnya disusun, adakah aplikasi dibuka? Adakah API yang dicadangkan oleh AI benar-benar dalam SDK (kit pembangunan perisian — set alat siap sedia yang ditawarkan oleh platform)?
  2. Uji ia. Uji tingkah laku yang dijangkakan secara automatik atau manual. "Nampaknya berkesan" tidak mencukupi; Cuba kes tepi (data terbiar, tiada rangkaian, kebenaran ditolak).
  3. Semak dan justifikasikan. Adakah anda faham mengapa kod itu ditulis dengan cara ini? Jangan terbitkan kod yang anda tidak faham. Tanya AI "apa yang dilakukan oleh talian ini, mengapa ia diperlukan?" bertanya.
Perhatian: Nombor versi, nama perpustakaan dan tandatangan API yang disediakan oleh YZ mungkin sudah lapuk atau dibuat-buat. Ia tidak dapat mengetahui tentang kemas kini yang dikeluarkan selepas tarikh tamat (tarikh terakhir model itu dilatih). Sentiasa sahkan pergantungan kritikal daripada dokumentasi rasmi (Pembangun Apple, Pembangun Android).

tiga kes mini

Kes 1 — Mempercepatkan pembangunan skrin. Pasukan e-dagang mendraf skrin butiran produk dengan bantuan AI daripada Jetpack Compose (kit alat antara muka moden Android). Draf pertama, yang biasanya mengambil masa 2 hari, keluar dalam masa 3 jam. Tetapi pasukan itu mendapati dalam ujian bahawa pemformatan harga yang dihasilkan oleh AI telah melakukan pembundaran sen secara tidak betul: 19.99 TL muncul sebagai 20 TL pada beberapa peranti. Jika tiada pengesahan, ralat ini akan disiarkan secara langsung. Keuntungan adalah benar, tetapi kawalan adalah satu kemestian.

Kes 2 - Halusinasi ditangkap. Seorang pembangun mendapat kod daripada AI untuk meminta kebenaran lokasi pada iOS. AI mencadangkan fungsi yang dipanggil requestPreciseLocationOnce(). Tiada API sedemikian; Yang betul ialah requestWhenInUseAuthorization(). Ralat kompilasi mendedahkan ini dengan serta-merta. Pengajaran: pengkompil ialah juruaudit AI yang paling jujur.

Kes 3 — Perangkap privasi. Satu pasukan menampal laporan pepijat pengguna ke dalam AI dan meminta penyelesaian. Laporan tersebut termasuk e-mel dan ID peranti pengguna. Ini bermakna kebocoran data peribadi kepada perkhidmatan pihak ketiga dan merupakan pelanggaran dari segi KVKK (Undang-undang Perlindungan Data Peribadi). Penyelesaian: mengosongkan (menolong) medan peribadi sebelum memberikan data kepada AI.

Gesaan lemah / Gesaan kuat

Perbezaan antara dua gesaan untuk kerja yang sama menentukan kualiti output.

Gesaan lemah: "Tulis saya skrin log masuk."

Gesaan yang berkuasa: "Hasilkan skrin log masuk menggunakan Jetpack Compose untuk Android. Keperluan:- Medan e-mel dan kata laluan; pengesahan format e-mel, kata laluan sekurang-kurangnya 8 aksara- Butang 'Log masuk' dilumpuhkan semasa memuatkan dan menunjukkan pemutar- Mesej ralat muncul dalam teks merah di bawah medan- Seni bina MVVM: nyatakan dalam ViewModel, UI Boleh Gubah sahaja- Kotlin, dalam setiap bahagian KodJustk, Bahan 24, kemudian minSdk. 1 ayat."

Gesaan kedua memberitahu platform, alat, seni bina, sempadan dan format output. Ia tidak meninggalkan apa-apa untuk AI untuk meneka; Oleh itu, ia memberikan hasil yang lebih berguna dan lebih mudah untuk mengesahkan.

Templat permulaan yang boleh disalin

Gunakan templat di bawah dengan mengisinya dengan konteks anda sendiri.

Templat peranan dan konteks:"Anda ialah pembangun kanan [iOS/Android/Flutter]. Projek saya: [jenis apl], platform sasaran [versi], seni bina [MVVM/Clean]. Tugas: [apa yang anda mahu]. Kekangan: [bahasa, perpustakaan, versi]. Ringkaskan pelan dalam 3 item dahulu, kemudian hasilkan kod, kemudian senaraikan risikonya."

Templat semakan kod:"Periksa kod [bahasa] berikut. Kenal pasti:1) Pepijat dan risiko ranap2) Isu memori/prestasi3) Kerentanan keselamatan dan privasi4) Di mana ia boleh ditulis dengan lebih ringkas. Nombor baris untuk setiap item dan cadangkan pembetulan.[kod]"

Templat pembelajaran: "Terangkan [konsep, cth. async/await dalam Swift] daripada perspektif pembangun mudah alih. Berikan contoh mudah, nyatakan 3 kesilapan biasa dan nyatakan bila saya tidak patut menggunakannya."

Templat pengesahan: "Anda mencadangkan API/fungsi ini: [nama]. Sahkan: Versi SDK yang manakah ia masuk, apakah kebenaran yang diperlukan, adakah ia ditamatkan? Jika tidak pasti, katakan 'tidak pasti, semak dokumentasi rasmi'."

Kesilapan biasa

  • Menampal output tanpa membacanya. Kesilapan yang paling biasa dan paling berbahaya. Walaupun disusun, logiknya mungkin salah.
  • Memberi data sulit kepada AI. Kunci API, data pengguna, sijil tandatangan tidak pernah ditampal ke dalam permintaan.
  • Tidak mengesahkan versi dan API. AI mungkin mencadangkan API lapuk atau rekaan; Dokumen rasmi mempunyai kata putus.
  • Menyerahkan keputusan seni bina kepada AI. "Manakah seni bina yang terbaik?" Jawapan kepada soalan bergantung pada projek anda; AI memberikan jawapan generik, anda tahu konteksnya.
  • Menulis satu gesaan gergasi. Cuba menyelesaikan tugas yang kompleks dengan satu permintaan; Adalah lebih selamat untuk memecahkannya kepada langkah-langkah kecil yang boleh disahkan.
  • Meminta kebenaran "untuk berjaga-jaga." AI kadangkala menambahkan lebih banyak kebenaran daripada yang diperlukan; Setiap kebenaran menimbulkan risiko untuk menyimpan kelulusan dan kepercayaan pengguna.

Secara ringkasnya

AI memainkan dua peranan dalam pembangunan mudah alih: pembantu yang mempercepatkan proses pembangunan, dan keupayaan terbenam aplikasi. Kod corak menyediakan pecutan yang luar biasa untuk penggubalan dan pembelajaran; Tetapi keputusan seni bina, keselamatan, kebenaran dan penerbitan adalah manusia. Setiap output disahkan melalui tiga langkah: compile-run, test, review. Data sulit dan maklumat peribadi tidak pernah diberikan kepada AI. Platform permintaan yang kukuh menyatakan dengan jelas alat, kekangan dan format output. Disiplin ini adalah asas untuk seluruh modul.

Tugasan permohonan

Pilih skrin daripada projek mudah alih anda sendiri (atau "apl mengambil nota" khayalan). Tulis gesaan untuk skrin tersebut menggunakan "Templat Peranan dan konteks" di atas. Cuba kumpulkan kod yang dijana AI ke dalam projek dan hantarkannya melalui penapis pengesahan tiga langkah: adakah ia menyusun, adakah ia berfungsi seperti yang diharapkan, adakah anda memahami setiap baris? Catat sekurang-kurangnya satu pepijat atau API palsu yang anda temui.

senarai semak

  • [ ] Saya menentukan yang mana antara tiga baldi tugas itu termasuk berdasarkan tahap risikonya
  • [ ] Saya menyatakan platform, versi, seni bina dan kekangan dalam permintaan
  • [ ] Saya menyusun output dan menjalankannya
  • [ ] Saya menguji kes had (data terbiar, tiada rangkaian, kebenaran ditolak)
  • [ ] Saya memastikan saya memahami setiap baris
  • [ ] Saya tidak memberikan sebarang data peribadi atau kunci peribadi kepada AI
  • [ ] Saya mengesahkan API kritikal daripada dokumentasi rasmi