Dobici:
- Sposobnost razlikovati gdje umjetna inteligencija pruža stvarnu brzinu u mobilnom razvoju (kod uzorka, nacrt, učenje), a gdje (arhitektura, dopuštenje, sigurnost, objavljivanje) odluka je prepuštena čovjeku, ovisno o razini rizika zadatka.
- Sposobnost primjene discipline koja provjerava svaki izlaz umjetne inteligencije kroz korake kompajliranja, testiranja i pregleda
- Sposobnost razvijanja navike pisanja snažnih upita ispunjenih kontekstom i zaštite osobnih podataka i tajnih ključeva bez davanja AI-ju
Razvoj mobilnih aplikacija jedno je od najkonkurentnijih područja softvera na svijetu. Riječ je o proizvodu koji radi na milijardama uređaja, čiji ciklus ažuriranja ovisi o odobrenju trgovine, te se u svakom trenutku mjeri u džepu korisnika. Umjetna inteligencija (AI — softverski sustavi koji mogu proizvesti tekst, kod i rješenja poput ljudi) ušla je u ovo područje na dva načina: prvo, kao pomoć koja ubrzava razvojni proces (generiranje koda, otklanjanje pogrešaka, pisanje testova), i drugo, kao mogućnost ugrađena u aplikaciju (prepoznavanje slika na uređaju, pomoćnik za chat, mehanizam za preporuke). Ovaj modul podučava oboje od kraja do kraja. Ali zakucajmo jednu rečenicu od samog početka: AI ne zamjenjuje mobilnog programera; proširuje svoju produktivnost i opseg. Vi ste odgovorni za svaki izdani redak koda, svako zatraženo dopuštenje i svaku transakciju izvršenu s korisničkim podacima.
U ovoj jedinici vidjet ćemo gdje AI proizvodi stvarnu vrijednost u mobilnom razvoju, gdje se mora predati ljudima, kako provjeriti svaki rezultat i zašto se o disciplini privatnosti i sigurnosti ne može pregovarati.
Gdje je umjetna inteligencija korisna u mobilnom razvoju?
Mobilni razvoj sastoji se od mnogo ponavljajućih i šablonskih zadataka: pisanje koda prikaza, postavljanje sloja mrežnog zahtjeva, definiranje podatkovnog modela, izrada testnog slučaja, rješavanje poruke o pogrešci. AI proizvodi te uzorke vrlo brzo. Nasuprot tome, arhitektonske odluke, preferencije korisničkog iskustva, sigurnosne granice i točnost poslovne logike domena su ljudi.
Korisno je podijeliti zadatke u tri skupine na temelju razine rizika:
Vrsta zadatka
Uloga umjetne inteligencije
muška uloga
Kod predloška (predložak), ogledni zaslon, konverzija
Generira propuh, ubrzava ga
Pregledava, integrira
Poslovna logika, protok podataka, API integracija
Daje prijedloge i nacrte
Provjerava, testira, potvrđuje
Arhitektura, zahtjev za dopuštenjem, sigurnost, odluka o emitiranju
Navodi mogućnosti i opravdanja
Donosi odluku i snosi odgovornost
Ova tablica će biti naš kompas kroz cijeli modul. Desni stupac nikada se ne predaje AI-ju.
Savjet: Zamislite AI kao "vrlo brzog, ali neiskusnog pripravnika." Date mu jasan zadatak, pročitate njegov ispis, stavite ga na test i preuzmete odgovornost. Ne šaljete kod koji je izradio pripravnik u produkciju (okruženje uživo) bez da ga pročitate; Isto pravilo vrijedi i za AI.
Disciplina provjere: tri koraka
AI tekst je fluidan i izgleda samouvjereno; Ali tečnost nije točnost. AI ponekad odgovara funkciji biblioteke koja ne postoji (ovo se zove halucinacija — model samouvjereno proizvodi nešto što zapravo ne postoji). Evo filtra u tri koraka koji mobilni razvojni programer primjenjuje na svaki izlaz umjetne inteligencije:
- Prevedi i pokreni. Kompajlira li se kôd zapravo, otvara li se aplikacija? Je li API koji predlaže AI doista u SDK-u (komplet za razvoj softvera — gotov skup alata koji nudi platforma)?
- Testirajte ga. Testirajte očekivano ponašanje automatski ili ručno. “Čini se da djeluje” nije dovoljno; Isprobajte rubne slučajeve (podaci u mirovanju, nema mreže, dopuštenje odbijeno).
- Pregledajte i obrazložite. Razumijete li zašto je kod ovako napisan? Ne objavljujte kod koji ne razumijete. Pitajte AI "što ova linija radi, zašto je potrebna?" pitati.
Pažnja: brojevi verzija, nazivi biblioteka i API potpisi koje daje YZ mogu biti zastarjeli ili izmišljeni. Ne može znati za ažuriranja objavljena nakon datuma preseka (zadnjeg datuma kada je model treniran). Uvijek provjerite kritičnu ovisnost iz službene dokumentacije (Apple Developer, Android Developers).
tri mini kućišta
Slučaj 1 — Ubrzavanje razvoja zaslona. Tim za e-trgovinu izradio je nacrt zaslona s pojedinostima o proizvodu uz pomoć umjetne inteligencije Jetpack Compose (Androidov moderni skup alata za sučelje). Prvi nacrt, koji inače traje 2 dana, izašao je za 3 sata. Ali tim je u testu otkrio da formatiranje cijene koje je proizvela umjetna inteligencija netočno zaokružuje peni: 19,99 TL pojavilo se kao 20 TL na nekim uređajima. Da nije bilo potvrde, ova bi pogreška postala aktivna. Zarada je stvarna, ali kontrola je nužna.
Slučaj 2 — Uhvaćena halucinacija. Programer je dobio kod od umjetne inteligencije za traženje dozvole za lokaciju na iOS-u. AI je predložio funkciju pod nazivom requestPreciseLocationOnce(). Nije postojao takav API; Ispravan je bio requestWhenInUseAuthorization(). Pogreška kompilacije je to odmah otkrila. Lekcija: kompajler je najpošteniji revizor umjetne inteligencije.
Slučaj 3 — Zamka privatnosti. Jedan tim je zalijepio korisnička izvješća o greškama u AI i zatražio rješenje. Izvješća su uključivala e-poštu korisnika i ID-ove uređaja. To je značilo curenje osobnih podataka u servis treće strane i predstavljalo je prekršaj u smislu KVKK (Zakon o zaštiti osobnih podataka). Rješenje: brisanje (maskiranje) osobnih polja prije davanja podataka AI-ju.
Slab upit / Jak upit
Razlika između dva upita za isti posao određuje kvalitetu ispisa.
Slab upit: "Napišite mi zaslon za prijavu."
Snažan upit: "Napravite zaslon za prijavu koristeći Jetpack Compose za Android. Zahtjevi: - Polje e-pošte i lozinke; potvrda formata e-pošte, lozinka od najmanje 8 znakova - Gumb 'Prijavi' je onemogućen tijekom učitavanja i prikaži spinner - Poruke o pogrešci pojavljuju se u crvenom tekstu ispod polja - MVVM arhitektura: stanje u ViewModelu, samo UI za komponiranje - Kotlin, Materijal 3, minSdk 24 Samo dajte šifru, zatim svaki odjeljak objasniti u 1 rečenici."
Drugi prompt govori o platformi, alatu, arhitekturi, granicama i izlaznom formatu. AI-u ništa ne ostaje da pogodi; Stoga daje mnogo korisniji i lakši za provjeru rezultat.
Početni predlošci koji se mogu kopirati
Upotrijebite predloške u nastavku ispunjavajući ih vlastitim kontekstom.
Predložak uloge i konteksta: "Vi ste stariji [iOS/Android/Flutter] programer. Moj projekt: [vrsta aplikacije], ciljna platforma [verzija], arhitektura [MVVM/Clean]. Zadatak: [ono što želite]. Ograničenja: [jezik, biblioteka, verzija]. Prvo sažmite plan u 3 stavke, zatim proizvedite kod, a zatim navedite rizike."
Predložak za pregled koda: "Proučite sljedeći [jezični] kod. Identificirajte: 1) Bugove i rizike od pada 2) Probleme s memorijom/performansama 3) Sigurnosne i privatne ranjivosti 4) Gdje bi se moglo napisati jednostavnije. Brojevi redaka za svaku stavku i predložite ispravke.[kod]"
Predložak za učenje: "Objasnite [koncept, npr. async/await u Swiftu] iz perspektive mobilnog programera. Dajte jednostavan primjer, spomenite 3 uobičajene pogreške i naznačite kada to ne bih trebao koristiti."
Predložak za provjeru: "Predložili ste ovaj API/funkciju: [ime]. Provjerite: Koju verziju SDK-a je dobio, koje dopuštenje zahtijeva, je li zastario? Ako niste sigurni, recite 'nisam siguran, provjerite u službenoj dokumentaciji'."
Uobičajene greške
- Lijepljenje izlaza bez čitanja. Najčešća i najopasnija greška. Čak i ako je sastavljena, logika može biti pogrešna.
- Davanje povjerljivih podataka AI. API ključ, korisnički podaci, certifikat za potpisivanje nikad se ne lijepe u zahtjev.
- Verzija i API se ne provjeravaju. AI može predložiti zastarjele ili izmišljene API-je; Službeni dokument ima posljednju riječ.
- Prepuštanje arhitektonske odluke umjetnoj inteligenciji. "Koja je najbolja arhitektura?" Odgovor na pitanje ovisi o vašem projektu; AI daje generički odgovor, znate kontekst.
- Pisanje jedne ogromne upute. Pokušaj rješavanja složenog zadatka jednim zahtjevom; Sigurnije je podijeliti ga na male, provjerljive korake.
- Traženje dopuštenja "za svaki slučaj". AI ponekad dodaje više dopuštenja nego što je potrebno; Svaka dozvola predstavlja rizik za odobrenje pohrane i povjerenje korisnika.
Ukratko
AI igra dvije uloge u mobilnom razvoju: pomoćnik koji ubrzava proces razvoja i mogućnost ugrađena u aplikaciju. Kod uzorka pruža ogromno ubrzanje za izradu i učenje; Ali odluke o arhitekturi, sigurnosti, dozvolama i objavljivanju su ljudske. Svaki izlaz se provjerava kroz tri koraka: prevođenje-pokretanje, testiranje, pregled. Povjerljivi podaci i osobni podaci nikada se ne daju AI-ju. Platforma snažne potražnje jasno navodi alat, ograničenja i izlazni format. Ova disciplina je osnova za ostatak modula.
Zadatak aplikacije
Odaberite zaslon iz vlastitog mobilnog projekta (ili zamišljene "aplikacije za bilježenje"). Napišite upit za taj zaslon pomoću gornjeg "predloška uloge i konteksta". Pokušajte prevesti kod generiran umjetnom inteligencijom u projekt i proći ga kroz filtar za provjeru u tri koraka: je li se preveo, je li radio prema očekivanjima, jeste li razumjeli svaki redak? Zabilježite barem jednu grešku ili lažni API koji pronađete.
popis za provjeru
- [ ] Odredio sam u koju od tri skupine zadatak spada na temelju razine rizika
- [ ] U zahtjevu sam naveo platformu, verziju, arhitekturu i ograničenja
- [ ] Sastavio sam izlaz i pokrenuo ga
- [ ] Testirao sam ograničene slučajeve (neaktivni podaci, nema mreže, dopuštenje odbijeno)
- [ ] Pobrinuo sam se da razumijem svaki redak
- [ ] Nisam dao nikakve osobne podatke ili privatne ključeve AI-ju
- [ ] Provjerio sam kritične API-je iz službene dokumentacije