Unitate 3 / 11

Proiectarea interfeței și generarea codului UI cu inteligență artificială

Câștiguri:

  • Abilitatea de a produce cod de interfață robust pentru Jetpack Compose și SwiftUI în ordinea scopului, componentei, patru stări (încărcare/gol/eroare/plin), sistem de proiectare și accesibilitate
  • Abilitatea de a produce o interfață care este deschisă tuturor utilizatorilor prin definirea accesibilității de la început, cu etichetare corectă, contrast suficient și atingere adecvată.
  • Abilitatea de a crea interfețe coerente, în mai multe limbi și pregătite pentru teme deschise/întunecate, citind culoarea și spațiul din tema centrală

Succesul unei aplicații mobile este determinat în mare măsură de interfața sa cu utilizatorul (UI – ecranele pe care utilizatorul le vede și atinge) și de experiența utilizatorului (UX – cât de ușor și plăcut este de utilizat). Utilizatorul nu vede codul prost, dar simte interfața proastă în prima secundă. AI joacă două roluri puternice în dezvoltarea interfeței: pe de o parte, generează idee de design, flux și text (scriere UX); Pe de altă parte, transformă direct acest design în cod de interfață de lucru. În această unitate, vom învăța cum să producem interfețe rapide, accesibile și consistente cu AI, concentrându-ne pe instrumentele moderne de interfață declarativă Jetpack Compose (Android) și SwiftUI (iOS). „Declarativ” înseamnă că, în loc să explicați pas cu pas cum să desenați ecranul, descrieți „așa ar trebui să arate ecranul în această situație”; Instrumentul face restul.

De la design la cod: comanda corectă

A spune AI să „facă un ecran frumos” este vag, deoarece „frumos” nu poate fi măsurat. Generarea unei interfețe bune urmează această ordine:

  1. Scopul și conținutul. Ce face ecranul, ce informații arată, ce va face utilizatorul?
  2. Lista componentelor. Părți precum titlu, listă, buton, câmp de formular.
  3. Situații. Se încarcă, gol (fără date), eroare, plin — cele patru stări de bază ale ecranului.
  4. Sistem de proiectare. Culoare, tipografie, reguli de spațiere; respectând în general Ghidurile privind interfața umană pentru Material 3 (Android) sau iOS.
  5. Accesibilitate. Etichete pentru cititorul de ecran, contrast adecvat, dimensiunea țintei tactile.
  6. Cod. Acestea fiind spuse, generația Composable sau SwiftUI View.

Pasul cel mai des omis este al treilea. Dezvoltatorii iau în considerare doar starea „plină”; în timp ce în aplicațiile reale, utilizatorul întâlnește mai ales situații de „încărcare” și „erori”. Imprimarea tuturor celor patru stări în AI este secretul unei interfețe robuste.

Sfat: adăugați „generare încărcare, gol, eroare și plin separat” la sfârșitul solicitării. Această singură propoziție vă face interfața pregătită pentru lumea reală și reduce semnificativ numărul de erori în faza QA (testarea calității).

Accesibilitatea nu este negociabilă

Accesibilitatea — capacitatea de a utiliza aplicația de către utilizatorii cu dizabilități vizuale, auditive sau motorii — este atât o responsabilitate etică, cât și o așteptare legală și de magazin. AI produce cod accesibil dacă se dorește; Returnează o interfață fără etichetă, cu contrast redus, dacă nu se dorește. Trei reguli generale: dați fiecărui element interactiv o etichetă semnificativă pentru cititorul de ecran (contentDescription / accessibilityLabel), contrast adecvat de culoare între text și fundal (raport de cel puțin 4,5:1) și o țintă tactilă de cel puțin 48x48 dp/44x44 pt. Întrebați AI aceste lucruri în mod explicit.

Atenție: AI poate adăuga, de asemenea, o etichetă lungă de accesibilitate la o pictogramă decorativă; Acest lucru copleșește utilizatorul cititorului de ecran cu discuții inutile. Elementele pur decorative ar trebui să fie „ascunse de accesibilitate” (permis să fie omise de cititorul de ecran). Revizuiți etichetele produse: lăsați semnificația să vorbească, lăsați decorativul să rămână tăcut.

Consecvență: sistem de proiectare și temă

Aplicațiile profesionale nu folosesc culori aleatorii și spațiere; urmează un sistem de proiectare (set standard de culori, fonturi, spațiere și componente). Dacă dați AI valorile temei dvs. (culoarea principală, culoarea secundară, raza colțului, scara tipografiei), toate ecranele vor ieși consistente. Dacă nu, fiecare ecran va folosi o nuanță diferită de albastru, iar aplicația va părea aglomerată. Cea mai eficientă modalitate este de a cere mai întâi AI să genereze un fișier de temă/jetoane de proiectare, apoi să legați toate ecranele la acea temă.

Subiect

abordare slabă

Abordare puternică

Culoare

Codați manual culoarea fiecărui ecran

Tema centrală, ecrane citite din temă

situatii

Doar ecranul „complet”.

Încărcare/gol/eroare/plin patru stări

accesibilitate

Adăugat mai târziu

Este definit în revendicare de la început

text

încorporat în cod

Sursă separată, gata pentru mai multe limbi

trei mini cutii

Cazul 1 — Cazul gol a fost salvat. O echipă a aplicației de știri a imprimat AI stări individuale ale ecranului. Datorită ecranului „starea inactiv” („Nici o știre salvată încă”), 70% dintre participanții la testarea utilizatorilor nu au lăsat aplicația pe un ecran gol; În versiunea anterioară, ecranul gol a rămas alb, iar utilizatorii au crezut că este „rupt” și au plecat. O copie mică a crescut rata de reținere.

Cazul 2 – Respingerea contrastului. O echipă a aplicat la App Store cu ecrane cu text în gri deschis, culoarea mărcii. Apple a emis un avertisment din motive de accesibilitate din cauza contrastului scăzut. Când AI i s-a spus să „mărească contrastul text-fond peste 4,5:1”, culorile au devenit mai închise și problema a fost rezolvată. Dacă s-ar fi cerut de la început, nu ar fi fost nicio întârziere.

Cazul 3 — Zgomotul etichetelor decorative. Un tester cu deficiențe de vedere a raportat că fiecare pictogramă de ornament („linie”, „punct”, „umbră”) a fost citită cu voce tare pe ecranul generat de AI, făcând ecranul inutilizabil. Experiența cititorului de ecran a devenit fluidă atunci când elementele decorative au fost ascunse de accesibilitate. Lecție: accesibilitatea înseamnă „etichetele potrivite”, nu „prea multe etichete”.

Prompt slab / Prompt puternic

Solicitare slabă: „Proiectează un ecran de profil”.

Solicitare puternică: „Generează ecran de profil utilizator pentru iOS/SwiftUI. Conținut: avatar, nume, e-mail, buton „Editare profil”, listă de setări. Stare: încărcare (schelet), eroare (buton de reîncercare), complet. Design: non-material, conform iOS HIG; culori sistemului, tip dinamic. Accesibilitate: accesibilitateEtichetă la fiecare element, valoare ascunsă, pictograme tactile separate, țintă 4 min. fișier, nu încorporați codul de culoare pe ecran Mai întâi desenați arborele componente, apoi exportați codul."

Șabloane copiabile

Șablon de generare a ecranului: „Generează [numele ecranului] pentru [platformă/instrument]. Conținut: [elemente]. Acțiuni ale utilizatorului: [acțiuni]. Generați patru stări separat: încărcare, gol, eroare, plin. Sistem de proiectare: [Material 3 / iOS HIG], citit din jetoane de temă. Accesibilitate: etichete, contrast >=4.5:1, atingeți standardul țintă."

Șablon de sistem de temă/design: „Produc o definiție centrală a temei pentru aplicația mea ([Compune tema / o structură de simbol de design în SwiftUI]):- Culoare primară [hex], secundară [hex], culoare de eroare, culoarea suprafeței- Scară tipografie (titlu, corp, descriere)- Scară spațiere (4,8,16,24)- Adăugați suport pentru raza colțului standard.”

Șablon de audit al accesibilității: „Verificați acest cod de ecran pentru accesibilitate:1) Există elemente interactive neetichetate?2) Sunt adecvate rapoartele de contrast?3) Sunt țintele tactile suficient de mari?4) Sunt elementele decorative ascunse de cititorul de ecran? Sugerați remedieri pentru fiecare problemă. [cod]"

Șablon de la design la cod: „Descriu următorul design: [descrierea ecranului sau captură de ecran]. Traduceți-l în cod [Compose/SwiftUI]. Păstrați spațierea și alinierea fidele designului, dar adăugați toate cele patru stări."

Greșeli comune

  • Mă gândesc doar la situația completă. De cele mai multe ori, utilizatorul real vede ecranul de încărcare/eroare.
  • Încorporarea culorii și a spațiului în cod. Dacă tema nu este centrală, consistența se pierde și întreținerea devine dificilă.
  • Lăsând accesibilitatea pentru final. Adăugarea lui mai târziu este costisitoare; Este gratuit dacă este solicitat de la început.
  • Supraetichetarea. Citirea elementelor decorative perturbă, de asemenea, experiența cititorului de ecran.
  • Încorporarea textului în cod. Când este necesar suport multilingv, este necesar să schimbați manual fiecare ecran; Păstrați textele separate.
  • Se așteaptă o copie exactă a capturii de ecran. Designul AI produce aprox. Precizia pixelilor este setată manual.

În concluzie

AI este puternică în producția de interfețe, dar necesită îndrumare. Ordinea corectă: scop, componente, patru stări (încărcare/gol/eroare/plin), sistem de proiectare, accesibilitate, apoi cod. Accesibilitatea nu este negociabilă și înseamnă „eticheta potrivită”, nu „prea multe etichete”. Pentru consecvență, citiți culoarea și spațierea din tema centrală, nu o încorporați în cod. Voința puternică definește toate acestea de la început; Astfel, interfața este pregătită pentru lumea reală, aprobarea magazinului și toți utilizatorii.

Sarcina de aplicare

Folosind „Șablonul de generare a ecranului” pentru un ecran de setări, cereți AI codul Compose sau SwiftUI și solicitați toate cele patru stări. Apoi verificați același cod cu „Șablonul de verificare a accesibilității”. Găsiți și remediați cel puțin o îmbunătățire a accesibilității (etichetă lipsă, contrast scăzut sau țintă tactilă mică) și notați ce stare (încărcare/gol/eroare) credeți că va apărea cel mai des în uz real.

lista de verificare

  • [ ] Am clarificat scopul și componentele afișajului în prompt
  • [ ] Am avut cele patru stări (încărcare/gol/eroare/plin) generate separat
  • [ ] Am făcut culoarea și spațiul citite din tema centrală, nu am încorporat-o în cod.
  • [ ] Am vrut de la început etichete de accesibilitate și contrast
  • [ ] Am verificat că elementele decorative sunt ascunse de cititorul de ecran
  • [ ] Am păstrat textele separate, pregătite pentru mai multe limbi