Dobički:
- Biti sposoben razlikovati, kje umetna inteligenca zagotavlja resnično hitrost pri mobilnem razvoju (koda vzorca, osnutek, učenje) in kje (arhitektura, dovoljenje, varnost, objava) je odločitev prepuščena človeku, odvisno od stopnje tveganja naloge.
- Sposobnost uporabe discipline, ki preverja vsak izhod umetne inteligence s koraki prevajanja, testiranja in pregleda
- Sposobnost razviti navado pisanja močnih pozivov, napolnjenih s kontekstom, ter zaščite osebnih podatkov in skrivnih ključev, ne da bi jih posredovali AI
Razvoj mobilnih aplikacij je eno najbolj konkurenčnih področij programske opreme na svetu. Govorimo o izdelku, ki deluje na milijardah naprav, katerih cikel posodabljanja je odvisen od odobritve trgovine in se ves čas meri v uporabnikovem žepu. Umetna inteligenca (AI – sistemi programske opreme, ki lahko proizvajajo besedilo, kodo in rešitve kot ljudje) je vstopila na to področje na dva načina: prvič, kot pomoč, ki pospeši razvojni proces (generiranje kode, odpravljanje napak, pisanje testov), in drugič, kot zmogljivost, vdelana v aplikacijo (prepoznavanje slik v napravi, pomočnik za klepet, mehanizem za priporočila). Ta modul poučuje oboje od konca do konca. Toda takoj na začetku zapičimo en stavek: AI ne nadomesti mobilnega razvijalca; širi svojo produktivnost in obseg. Odgovorni ste za vsako izdano vrstico kode, vsako zahtevano dovoljenje in vsako transakcijo, opravljeno z uporabniškimi podatki.
V tej enoti bomo videli, kje umetna inteligenca ustvari resnično vrednost pri mobilnem razvoju, kje se mora predati ljudem, kako preveriti vsak rezultat in zakaj se o disciplini zasebnosti in varnosti ni mogoče pogajati.
Kje umetna inteligenca pride prav pri mobilnem razvoju?
Mobilni razvoj je sestavljen iz številnih ponavljajočih se in vzorčnih nalog: pisanje kode pogleda, nastavitev sloja omrežne zahteve, definiranje podatkovnega modela, izdelava testnega primera, razrešitev sporočila o napaki. AI proizvaja te vzorce zelo hitro. Nasprotno pa so arhitekturne odločitve, nastavitve uporabniške izkušnje, varnostne meje in natančnost poslovne logike domena ljudi.
Koristno je razdeliti naloge v tri vedra glede na stopnjo tveganja:
Vrsta naloge
Vloga AI
moška vloga
Koda predloge (prikaz), vzorčni zaslon, pretvorba
Ustvari osnutek, ga pospeši
Pregleduje, integrira
Poslovna logika, pretok podatkov, API integracija
Ponuja predloge in osnutke
Preverja, testira, validira
Arhitektura, zahteva za dovoljenje, varnost, odločitev o oddajanju
Navaja možnosti in utemeljitve
Sprejme odločitev in nosi odgovornost
Ta tabela bo naš kompas v celotnem modulu. Desni stolpec ni nikoli predan AI.
Nasvet: pomislite na AI kot na "zelo hitrega, a neizkušenega pripravnika." Daš mu jasno nalogo, prebereš njegov izpis, ga preizkusiš in prevzameš odgovornost. Kode, ki jo pripravi pripravnik, ne pošljete v produkcijo (v živo okolje), ne da bi jo prebrali; Enako pravilo velja za AI.
Disciplina preverjanja: trije koraki
Besedilo z umetno inteligenco je tekoče in je videti samozavestno; Toda tekočnost ni natančnost. AI včasih ustreza funkciji knjižnice, ki ne obstaja (to se imenuje halucinacija – model samozavestno proizvaja nekaj, kar dejansko ne obstaja). Tu je tristopenjski filter, ki ga mobilni razvijalec uporabi za vsak izhod umetne inteligence:
- Prevedi in zaženi. Ali se koda dejansko prevede, ali se aplikacija odpre? Ali je API, ki ga predlaga umetna inteligenca, res v SDK-ju (komplet za razvoj programske opreme – že pripravljen nabor orodij, ki jih ponuja platforma)?
- Preizkusite ga. Preizkusite pričakovano vedenje samodejno ali ročno. »Zdi se, da deluje« ni dovolj; Preizkusite robne primere (prosti podatki, brez omrežja, dovoljenje zavrnjeno).
- Preglejte in utemeljite. Ali razumete, zakaj je koda napisana tako? Ne objavljajte kode, ki je ne razumete. Vprašajte AI "kaj počne ta vrstica, zakaj je potrebna?" vprašaj.
Pozor: Številke različic, imena knjižnic in podpisi API-jev, ki jih zagotavlja YZ, so morda zastareli ali ponarejeni. Ne more vedeti za posodobitve, izdane po presečnem datumu (zadnjem datumu, ko je bil model usposobljen). Vedno preverite kritično odvisnost iz uradne dokumentacije (Apple Developer, Android Developers).
trije mini kovčki
Primer 1 – Pospeševanje razvoja zaslona. Skupina za e-trgovino je pripravila osnutek zaslona s podrobnostmi o izdelku s pomočjo umetne inteligence Jetpack Compose (sodoben komplet orodij za vmesnik Android). Prvi osnutek, ki običajno traja 2 dni, je izšel v 3 urah. Toda ekipa je pri preizkusu ugotovila, da oblikovanje cene, ki ga je ustvaril AI, nepravilno zaokrožuje peni: 19,99 TL se je na nekaterih napravah prikazalo kot 20 TL. Če ne bi bilo preverjanja, bi bila ta napaka objavljena. Dobiček je realen, a nadzor je nujen.
2. primer – Ulovljena halucinacija. Razvijalec je od umetne inteligence dobil kodo za zahtevo po dovoljenju za lokacijo v sistemu iOS. AI je predlagal funkcijo, imenovano requestPreciseLocationOnce(). Takega API-ja ni bilo; Pravilna je bila requestWhenInUseAuthorization(). Napaka pri kompilaciji je to takoj razkrila. Lekcija: prevajalnik je najbolj pošten revizor AI.
Primer 3 – Past zasebnosti. Ena ekipa je prilepila uporabniška poročila o napakah v AI in prosila za rešitev. Poročila so vključevala e-pošto uporabnikov in ID-je naprav. To je pomenilo uhajanje osebnih podatkov v storitev tretje osebe in je bila kršitev v smislu KVKK (Zakon o varstvu osebnih podatkov). Rešitev: brisanje (zamaskiranje) osebnih polj, preden podate podatke AI.
Šibek poziv/močan poziv
Razlika med dvema pozivoma za isto opravilo določa kakovost izpisa.
Šibek poziv: "Napišite mi prijavni zaslon."
Zmogljiv poziv: »Izdelajte prijavni zaslon z uporabo Jetpack Compose za Android. Zahteve: - Polje za e-pošto in geslo; preverjanje oblike e-pošte, geslo vsaj 8 znakov - Gumb »Prijava« je med nalaganjem onemogočen in pokaži vrtljivko - Sporočila o napakah se prikažejo v rdečem besedilu pod poljem - Arhitektura MVVM: stanje v ViewModel, samo sestavljiv uporabniški vmesnik - Kotlin, Material 3, minSdk 24Samo daj kodo, nato vsak razdelek Pojasni v 1 stavku."
Drugi poziv pove platformo, orodje, arhitekturo, meje in izhodni format. Umetni inteligenci ne prepušča ničesar, kar bi lahko uganil; Zato daje veliko bolj uporaben in lažje preverljiv rezultat.
Začetne predloge, ki jih je mogoče kopirati
Uporabite spodnje predloge tako, da jih izpolnite s svojim kontekstom.
Predloga vloge in konteksta: "Ste starejši [iOS/Android/Flutter] razvijalec. Moj projekt: [vrsta aplikacije], ciljna platforma [različica], arhitektura [MVVM/Clean]. Naloga: [kar želite]. Omejitve: [jezik, knjižnica, različica]. Najprej povzemite načrt v 3 postavke, nato izdelajte kodo in nato navedite tveganja."
Predloga za pregled kode: "Preglejte naslednjo [jezikovno] kodo. Ugotovite: 1) Napake in tveganja zrušitev 2) Težave s pomnilnikom/zmogljivostjo 3) Varnostne in zasebnostne ranljivosti 4) Kje bi lahko zapisali preprosteje. Številke vrstic za vsak element in predlagajte popravke.[koda]"
Učna predloga: "Razložite [koncept, npr. async/await v Swiftu] z vidika razvijalca mobilnih naprav. Navedite preprost primer, omenite 3 pogoste napake in pokažite, kdaj tega ne smem uporabljati."
Predloga za preverjanje: "Predlagali ste ta API/funkcijo: [ime]. Preverite: v kateri različici SDK je prišel, kakšno dovoljenje potrebuje, ali je zastarel? Če niste prepričani, recite 'nisem prepričan, preverite v uradni dokumentaciji'."
Pogoste napake
- Lepljenje izpisa brez branja. Najpogostejša in najnevarnejša napaka. Tudi če je sestavljena, je lahko logika napačna.
- Posredovanje zaupnih podatkov AI. Ključ API, uporabniški podatki, podpisni certifikat niso nikoli prilepljeni v zahtevo.
- Različica in API se ne preverjata. AI lahko predlaga zastarele ali narejene API-je; Zadnjo besedo ima uradni dokument.
- Prepuščanje arhitekturne odločitve AI. "Katera je najboljša arhitektura?" Odgovor na vprašanje je odvisen od vašega projekta; AI daje splošen odgovor, saj poznate kontekst.
- Pisanje enega velikanskega poziva. Poskus rešiti kompleksno nalogo z eno samo zahtevo; Varneje ga je razdeliti na majhne, preverljive korake.
- Prošnja za dovoljenja "za vsak slučaj". AI včasih doda več dovoljenj, kot je potrebno; Vsako dovoljenje predstavlja tveganje za odobritev shranjevanja in zaupanje uporabnikov.
Če povzamem
Umetna inteligenca ima pri mobilnem razvoju dve vlogi: pomočnik, ki pospeši razvojni proces, in zmogljivost, vdelana v aplikacijo. Vzorčna koda zagotavlja izjemen pospešek pri pisanju in učenju; Toda odločitve glede arhitekture, varnosti, dovoljenj in objave so človeške. Vsak izhod je preverjen v treh korakih: prevajanje-zagon, preizkus, pregled. Zaupni podatki in osebni podatki niso nikoli posredovani AI. Platforma močnega povpraševanja jasno navaja orodje, omejitve in izhodni format. Ta disciplina je osnova za preostali del modula.
Aplikacijska naloga
Izberite zaslon iz svojega mobilnega projekta (ali namišljene "aplikacije za pisanje zapiskov"). Napišite poziv za ta zaslon z uporabo zgornje predloge »Vloga in kontekst«. Poskusite zbrati kodo, ki jo je ustvarila umetna inteligenca, v projekt in jo prenesti skozi filter za preverjanje v treh korakih: ali je bila prevedena, ali je delovala po pričakovanjih, ali ste razumeli vsako vrstico? Zabeležite si vsaj eno napako ali lažni API, ki ga najdete.
kontrolni seznam
- [ ] Določil sem, v katero od treh veder naloga sodi glede na stopnjo tveganja
- [ ] V zahtevi sem navedel platformo, različico, arhitekturo in omejitve
- [ ] Izhod sem prevedel in zagnal
- [ ] Preizkusil sem mejne primere (prosti podatki, brez omrežja, dovoljenje zavrnjeno)
- [ ] Poskrbel sem, da sem razumel vsako vrstico
- [ ] AI nisem posredoval nobenih osebnih podatkov ali zasebnih ključev
- [ ] Kritične API-je sem preveril iz uradne dokumentacije