Jednotka 1 / 11

Úvod do AI v mobilnom vývoji: Roly, hranice, autentifikácia a bezpečnosť

zisky:

  • Schopnosť rozlíšiť, kde umelá inteligencia poskytuje skutočnú rýchlosť v mobilnom vývoji (kód vzoru, návrh, učenie) a kde (architektúra, povolenie, bezpečnosť, publikácia) je rozhodnutie ponechané na človeku v závislosti od úrovne rizika úlohy.
  • Schopnosť aplikovať disciplínu, ktorá overuje každý výstup umelej inteligencie prostredníctvom krokov kompilácie, testovania a kontroly
  • Schopnosť osvojiť si návyk písať silné výzvy plné kontextu a chrániť osobné údaje a tajné kľúče bez toho, aby ste ich poskytli AI

Vývoj mobilných aplikácií je jednou z najkonkurencieschopnejších softvérových oblastí na svete. Hovoríme o produkte, ktorý funguje na miliardách zariadení, ktorých cyklus aktualizácie závisí od schválenia obchodu a je neustále meraný vo vrecku používateľa. Umelá inteligencia (AI – softvérové ​​systémy, ktoré dokážu produkovať text, kód a riešenia ako ľudia) vstúpila do tejto oblasti dvoma spôsobmi: po prvé, ako pomôcka, ktorá urýchľuje proces vývoja (generovanie kódu, ladenie, písanie testov), ​​a po druhé, ako schopnosť zabudovaná v aplikácii (rozpoznávanie obrázkov na zariadení, chatovací asistent, odporúčací mechanizmus). Tento modul učí oboje end-to-end. Ale povedzme hneď na úvod jednu vetu: AI nenahrádza mobilného vývojára; rozširuje svoju produktivitu a rozsah. Zodpovedáte za každý vydaný riadok kódu, každé požadované povolenie a každú transakciu vykonanú s používateľskými údajmi.

V tejto jednotke uvidíme, kde AI vytvára skutočnú hodnotu v mobilnom vývoji, kde sa musí vzdať ľuďom, ako overiť každý výstup a prečo je disciplína v oblasti ochrany súkromia nemenná.

Kde sa AI hodí pri vývoji mobilných zariadení?

Mobilný vývoj pozostáva z mnohých opakujúcich sa a vzorovaných úloh: písanie kódu zobrazenia, nastavenie vrstvy sieťových požiadaviek, definovanie dátového modelu, vytvorenie testovacieho prípadu, vyriešenie chybového hlásenia. AI vytvára tieto vzory veľmi rýchlo. Naproti tomu architektonické rozhodnutia, preferencie používateľského prostredia, bezpečnostné hranice a presnosť obchodnej logiky sú doménou ľudí.

Je užitočné rozdeliť úlohy do troch skupín na základe úrovne rizika:

Typ úlohy

Úloha AI

mužská rola

Kód šablóny (boilerplate), vzorová obrazovka, konverzia

Generuje prievan, urýchľuje ho

Recenzie, integruje

Obchodná logika, dátový tok, integrácia API

Poskytuje návrhy a návrhy

Overuje, testuje, overuje

Architektúra, žiadosť o povolenie, bezpečnosť, rozhodnutie o vysielaní

Uvádza možnosti a odôvodnenia

Robí rozhodnutia a nesie zodpovednosť

Táto tabuľka bude naším kompasom v celom module. Pravý stĺpec sa nikdy neodovzdá AI.

Tip: Myslite na AI ​​ako na „veľmi rýchleho, ale neskúseného stážistu“. Dáte mu jasnú úlohu, prečítate jeho výtlačok, otestujete ho a prevezmete zodpovednosť. Kód vytvorený stážistom neposielate do produkcie (živého prostredia) bez jeho prečítania; Rovnaké pravidlo platí pre AI.

Overovacia disciplína: tri kroky

Text AI je plynulý a pôsobí sebavedomo; Ale plynulosť nie je presnosť. AI niekedy zapadá do funkcie knižnice, ktorá neexistuje (toto sa nazýva halucinácia – model, ktorý s istotou vytvára niečo, čo v skutočnosti neexistuje). Tu je trojkrokový filter, ktorý mobilný vývojár aplikuje na každý výstup AI:

  1. Zostavte a spustite. Kompiluje sa kód, otvára sa aplikácia? Je rozhranie API navrhované AI skutočne v súprave SDK (súprava na vývoj softvéru – hotová sada nástrojov, ktoré platforma ponúka)?
  2. Otestujte to. Otestujte očakávané správanie automaticky alebo manuálne. „Zdá sa, že to funguje“ nestačí; Vyskúšajte okrajové prípady (nečinné dáta, žiadna sieť, povolenie odmietnuté).
  3. Preskúmajte a zdôvodnite. Chápete, prečo je kód napísaný týmto spôsobom? Nezverejňujte kód, ktorému nerozumiete. Opýtajte sa AI ​​"Čo robí táto linka, prečo je to potrebné?" spýtaj sa.
Upozornenie: Čísla verzií, názvy knižníc a podpisy API poskytnuté YZ môžu byť zastarané alebo vymyslené. Nemôže vedieť o aktualizáciách vydaných po dátume uzávierky (posledný dátum, kedy bol model trénovaný). Vždy si overte kritickú závislosť z oficiálnej dokumentácie (Apple Developer, Android Developers).

tri mini prípady

Prípad 1 – Urýchlenie vývoja obrazovky. Tím elektronického obchodu navrhol obrazovku s podrobnosťami o produkte s pomocou AI od Jetpack Compose (súprava nástrojov moderného rozhrania systému Android). Prvý návrh, ktorý bežne trvá 2 dni, vyšiel za 3 hodiny. Tím však pri teste zistil, že formátovanie cien vytvorené AI nesprávne zaokrúhľovalo cent: 19,99 TL sa na niektorých zariadeniach javilo ako 20 TL. Ak by nedošlo k overeniu, táto chyba by sa objavila. Zisk je skutočný, ale kontrola je nevyhnutná.

Prípad 2 – Zachytená halucinácia. Vývojár dostal kód od AI, aby požiadal o povolenie na umiestnenie v systéme iOS. AI navrhla funkciu s názvom requestPreciseLocationOnce(). Takéto API neexistovalo; Správny bol requestWhenInUseAuthorization(). Chyba kompilácie to okamžite odhalila. Poučenie: Kompilátor je najčestnejší audítor AI.

Prípad 3 – Pasca na ochranu osobných údajov. Jeden tím prilepil správy o chybách používateľov do AI a požiadal o riešenie. Prehľady obsahovali e-maily používateľov a ID zariadení. Znamenalo to únik osobných údajov do služby tretej strany a išlo o porušenie v zmysle KVKK (zákon o ochrane osobných údajov). Riešenie: pred poskytnutím údajov AI vymažte (zamaskujte) osobné polia.

Slabá výzva / Silná výzva

Rozdiel medzi dvoma výzvami pre rovnakú úlohu určuje kvalitu výstupu.

Slabá výzva: "Napíšte mi prihlasovaciu obrazovku."

Výkonná výzva: "Vytvorte prihlasovaciu obrazovku pomocou Jetpack Compose pre Android. Požiadavky:- Pole e-mailu a hesla; overenie formátu e-mailu, heslo aspoň 8 znakov - tlačidlo 'Prihlásiť sa' je pri načítavaní a zobrazovaní číselníka deaktivované- Chybové hlásenia sa zobrazujú červeným textom pod poľom- Architektúra MVVM: stav v modeli ViewModel, iba v používateľskom rozhraní Composable - Kotlin, sekcia materiálu 2 uveďte kód 3, min1d.

Druhá výzva hovorí o platforme, nástroji, architektúre, hraniciach a výstupnom formáte. Nenecháva nič na uhádnutie AI; Preto poskytuje oveľa užitočnejší a ľahšie overiteľný výsledok.

Kopírovateľné štartovacie šablóny

Použite nižšie uvedené šablóny tak, že ich vyplníte vlastným kontextom.

Šablóna roly a kontextu: „Ste senior vývojár [iOS/Android/Flutter]. Môj projekt: [typ aplikácie], cieľová platforma [verzia], architektúra [MVVM/Clean]. Úloha: [čo chcete]. Obmedzenia: [jazyk, knižnica, verzia]. Najprv zhrňte plán do 3 položiek, potom vytvorte kód a potom uveďte riziká.“

Šablóna kontroly kódu:"Preskúmajte nasledujúci kód [jazyka]. Identifikujte:1) Chyby a riziká zlyhania2) Problémy s pamäťou/výkonom3) Slabé miesta v zabezpečení a ochrane osobných údajov4) Kde by sa to dalo napísať jednoduchšie. Čísla riadkov pre každú položku a navrhnite opravy.[kód]“

Učebná šablóna: "Vysvetlite [pojem, napr. async/wait v Swifte] z pohľadu mobilného vývojára. Uveďte jednoduchý príklad, spomeňte 3 bežné chyby a upozornite, kedy by som ho nemal používať."

Šablóna overenia: "Navrhli ste toto rozhranie API/funkciu: [názov]. Overte: V ktorej verzii súpravy SDK sa to dostalo, aké povolenie vyžaduje, je zastaraná? Ak si nie ste istý, povedzte 'nie som si istý, pozrite si oficiálnu dokumentáciu'."

Časté chyby

  • Prilepenie výstupu bez jeho prečítania. Najčastejšia a najnebezpečnejšia chyba. Aj keď je kompilovaný, logika môže byť nesprávna.
  • Poskytovanie dôverných údajov AI. Kľúč API, údaje používateľa, podpisový certifikát sa do žiadosti nikdy nevkladajú.
  • Neoveruje sa verzia a API. AI môže navrhovať zastarané alebo vymyslené API; Rozhodujúce slovo má oficiálny dokument.
  • Rozhodnutie o architektúre ponechať na AI. "Ktorá je najlepšia architektúra?" Odpoveď na otázku závisí od vášho projektu; AI dáva všeobecnú odpoveď, poznáte kontext.
  • Napísanie jednej obrovskej výzvy. Pokúsiť sa vyriešiť komplexnú úlohu s jedinou požiadavkou; Bezpečnejšie je rozdeliť to na malé, overiteľné kroky.
  • Žiadosť o povolenia „pre každý prípad“. AI niekedy pridáva viac povolení, ako je potrebné; Každé povolenie predstavuje riziko pre uloženie schválenia a dôvery používateľov.

V súhrne

Umelá inteligencia hrá pri vývoji mobilných zariadení dve úlohy: asistenta, ktorý urýchľuje proces vývoja, a schopnosť zabudovanú do aplikácie. Vzorový kód poskytuje ohromné ​​zrýchlenie pre navrhovanie a učenie; Ale architektonické, bezpečnostné, povolenia a rozhodnutia o zverejnení sú ľudské. Každý výstup je overený v troch krokoch: spustenie kompilácie, test, kontrola. Dôverné údaje a osobné informácie sa AI nikdy neposkytujú. Silná platforma dopytu jasne uvádza nástroj, obmedzenia a výstupný formát. Táto disciplína je základom pre zvyšok modulu.

Aplikačná úloha

Vyberte si obrazovku z vlastného mobilného projektu (alebo imaginárnej „aplikácie na písanie poznámok“). Napíšte výzvu pre túto obrazovku pomocou vyššie uvedenej „šablóny roly a kontextu“. Skúste skompilovať kód vygenerovaný AI do projektu a prejsť cez trojstupňový overovací filter: skompiloval sa, fungoval podľa očakávania, rozumeli ste každému riadku? Poznačte si aspoň jednu chybu alebo falošné API, ktoré nájdete.

kontrolný zoznam

  • [ ] Na základe úrovne rizika som určil, do ktorého z troch segmentov úloha spadá
  • [ ] V požiadavke som špecifikoval platformu, verziu, architektúru a obmedzenia
  • [ ] Výstup som skompiloval a spustil
  • [ ] Testoval som limitné prípady (nečinné dáta, žiadna sieť, povolenie odmietnuté)
  • [ ] Uistil som sa, že rozumiem každému riadku
  • [ ] AI som neposkytol žiadne osobné údaje ani súkromné kľúče
  • [ ] Kritické rozhrania API som overil z oficiálnej dokumentácie