Јединице
1. Увод у АИ у мобилном развоју: улоге, границе, аутентификација и безбедност 2. Генерисање мобилног кода са вештачком интелигенцијом: Котлин, Свифт и развој на више платформи 3. Дизајн интерфејса и генерисање УИ кода са вештачком интелигенцијом 4. АИ на уређају: Цоре МЛ, ТенсорФлов Лите и МЛ Кит 5. Цлоуд АИ и ЛЛМ АПИ интеграција: ћаскање, ток и безбедност 6. Генерисање тестова са вештачком интелигенцијом: тестови јединица, интерфејса и аутоматизације 7. Отклањање грешака и анализа пада са вештачком интелигенцијом 8. Оптимизација перформанси и батерије: брзе и ефикасне апликације са вештачком интелигенцијом 9. Приватност, дозволе и безбедно коришћење 10. Издање у продавници: Апп Сторе, Гоогле Плаи и компатибилност са вештачком интелигенцијом 11. Пројекат од краја до краја, одговорно коришћење вештачке интелигенције и путоказ у професији
Јединица 1 / 11

Увод у АИ у мобилном развоју: улоге, границе, аутентификација и безбедност

Добици:

  • Бити у стању да разликује где вештачка интелигенција обезбеђује стварну брзину у мобилном развоју (шифра шаблона, нацрт, учење) и где (архитектура, дозвола, безбедност, објављивање) одлука је препуштена човеку, у зависности од нивоа ризика задатка.
  • Способност примене дисциплине која верификује сваки излаз вештачке интелигенције кроз кораке компајлирања, тестирања и прегледа
  • Способност развијања навике писања јаких, контекстуално испуњених упита и заштите личних података и тајних кључева без давања АИ-а

Развој мобилних апликација је једно од најконкурентнијих софтверских поља на свету. Реч је о производу који ради на милијардама уређаја, чији циклус ажурирања зависи од одобрења продавнице, а у сваком тренутку се мери у џепу корисника. Вештачка интелигенција (АИ — софтверски системи који могу да производе текст, код и решења попут људи) ушла је у ово поље на два начина: прво, као помоћно средство које убрзава процес развоја (генерисање кода, отклањање грешака, писање тестова), и друго, као могућност уграђена у апликацију (препознавање слика на уређају, помоћник за ћаскање, механизам за препоруке). Овај модул подучава оба од краја до краја. Али хајде да закуцамо једну реченицу од самог почетка: АИ не замењује мобилног програмера; проширује своју продуктивност и обим. Одговорни сте за сваку издату линију кода, сваку тражену дозволу и сваку трансакцију направљену са корисничким подацима.

У овој јединици ћемо видети где вештачка интелигенција производи стварну вредност у мобилном развоју, где се мора предати људима, како проверити сваки резултат и зашто се о дисциплини приватности и безбедности не може преговарати.

Где је АИ корисна у мобилном развоју?

Развој мобилних уређаја се састоји од многих задатака који се понављају и са шаблонима: писање кода за приказ, постављање слоја мрежног захтева, дефинисање модела података, производња тест случаја, решавање поруке о грешци. АИ производи ове обрасце веома брзо. Насупрот томе, архитектонске одлуке, преференције корисничког искуства, безбедносне границе и тачност пословне логике су домен људи.

Корисно је раздвојити задатке у три сегмента на основу нивоа ризика:

Тип задатка

Улога АИ

улога човека

Шаблон код (шаблон), узорак екрана, конверзија

Ствара промају, убрзава је

Прегледа, интегрише

Пословна логика, проток података, АПИ интеграција

Даје предлоге и нацрте

Верификује, тестира, потврђује

Архитектура, захтев за дозволу, безбедност, одлука о емитовању

Наводи опције и оправдања

Доноси одлуку и сноси одговорност

Ова табела ће бити наш компас у целом модулу. Десна колона се никада не предаје АИ.

Савет: Замислите АИ као „веома брзог, али неискусног приправника“. Дате му јасан задатак, прочитате његов испис, ставите га на тест и преузмете одговорност. Не шаљете код који је произвео приправник у продукцију (живо окружење) без читања; Исто правило важи и за АИ.

Дисциплина верификације: три корака

АИ текст је течан и изгледа самоуверено; Али течност није тачност. АИ понекад одговара функцији библиотеке која не постоји (ово се зове халуцинација — модел који самоуверено производи нешто што заправо не постоји). Ево филтера у три корака који програмер мобилних уређаја примењује на сваки излаз АИ:

  1. Саставите и покрените. Да ли се код заправо компајлира, да ли се апликација отвара? Да ли је АПИ који је предложила АИ заиста у СДК-у (комплет за развој софтвера — готов скуп алата које платформа нуди)?
  2. Тестирајте то. Тестирајте очекивано понашање аутоматски или ручно. „Изгледа да ради“ није довољно; Испробајте крајње случајеве (неактивни подаци, нема мреже, дозвола одбијена).
  3. Прегледајте и оправдајте. Да ли разумете зашто је код написан на овај начин? Не објављујте код који не разумете. Питајте АИ "шта ради ова линија, зашто је потребна?" питати.
Пажња: Бројеви верзија, имена библиотека и АПИ потписи које пружа ИЗ могу бити застарели или измишљени. Не може да зна за ажурирања која су објављена након граничног датума (последњег датума када је модел обучен). Увек проверите критичну зависност из званичне документације (Аппле Девелопер, Андроид Девелоперс).

три мини кофера

Случај 1 — Убрзавање развоја екрана. Тим за е-трговину израдио је екран са детаљима о производу уз помоћ вештачке интелигенције Јетпацк Цомпосе (Андроид-ов модерни комплет алата за интерфејс). Први нацрт, који обично траје 2 дана, изашао је за 3 сата. Али тим је у тесту ухватио да форматирање цене које је произвела АИ погрешно заокружује пени: 19,99 ТЛ се појавило као 20 ТЛ на неким уређајима. Да није било верификације, ова грешка би била објављена. Зарада је стварна, али контрола је неопходна.

Случај 2 — Ухваћена халуцинација. Програмер је добио код од АИ да затражи дозволу за локацију на иОС-у. АИ је предложио функцију под називом рекуестПрецисеЛоцатионОнце(). Није постојао такав АПИ; Тачан је био рекуестВхенИнУсеАутхоризатион(). Грешка у компилацији је то одмах открила. Поука: компајлер је најпоштенији ревизор АИ.

Случај 3 — Замка приватности. Један тим је налепио корисничке извештаје о грешкама у АИ и тражио решење. Извештаји су укључивали корисничку е-пошту и ИД-ове уређаја. То је значило цурење личних података у службу треће стране и представљало је кршење у смислу КВКК (Закон о заштити података о личности). Решење: брисање (маскирање) личних поља пре давања података АИ.

Слаби промпт / Јаки промпт

Разлика између два упита за исти посао одређује квалитет излаза.

Слаб упит: „Напишите ми екран за пријаву.“

Снажан упит: „Направите екран за пријаву помоћу Јетпацк Цомпосе за Андроид. Захтеви:- Поље е-поште и лозинке; верификација формата е-поште, лозинка најмање 8 знакова- дугме 'Пријави се' је онемогућено током учитавања и прикажи спиннер- Поруке о грешци се појављују у црвеном тексту испод поља- МВВМ архитектура: стање у ВиевМодел-у само у ВиевМодел-у, мин. 4. Композитни материјал дајте шифру, а затим сваки одељак Објасните у 1 реченици."

Други упит говори о платформи, алату, архитектури, границама и излазном формату. Не оставља ништа за АИ да погоди; Дакле, даје много кориснији и лакши за проверу резултат.

Почетни шаблони који се могу копирати

Користите шаблоне у наставку тако што ћете их испунити својим контекстом.

Шаблон за улогу и контекст: „Ви сте старији [иОС/Андроид/Флуттер] програмер. Мој пројекат: [тип апликације], циљна платформа [верзија], архитектура [МВВМ/Цлеан]. Задатак: [шта желите]. Ограничења: [језик, библиотека, верзија]. Прво сумирајте план у 3 ставке, затим израдите код, а затим наведите ризике.“

Шаблон за преглед кода: „Проучите следећи [језички] код. Идентификујте: 1) Грешке и ризике од рушења2) Проблеме са меморијом/перформансама3) Безбедносне и рањивости приватности4) Где би се то могло једноставније написати. Бројеви редова за сваку ставку и предложити исправке.[цоде]“

Шаблон за учење: „Објасните [концепт, нпр. асинц/аваит у Свифт-у] из перспективе мобилног програмера. Наведите једноставан пример, наведите 3 уобичајене грешке и укажите када не би требало да га користим.“

Шаблон за верификацију: „Предложили сте овај АПИ/функцију: [име]. Потврдите: која верзија СДК-а је стигла, коју дозволу захтева, да ли је застарела? Ако нисте сигурни, реците „нисам сигуран, провери у званичној документацији“.“

Уобичајене грешке

  • Лепљење излаза без читања. Најчешћа и најопаснија грешка. Чак и ако се компајлира, логика може бити погрешна.
  • Давање поверљивих података АИ. АПИ кључ, кориснички подаци, сертификат за потписивање се никада не лепе у захтев.
  • Не проверава верзију и АПИ. АИ може предложити застареле или измишљене АПИ-је; Званични документ има коначну реч.
  • Препуштајући архитектонску одлуку АИ. "Која је најбоља архитектура?" Одговор на питање зависи од вашег пројекта; АИ даје генерички одговор, знате контекст.
  • Писање једног огромног упутства. Покушај решавања сложеног задатка једним захтевом; Сигурније је то поделити на мале кораке који се могу проверити.
  • Тражите дозволе „за сваки случај“. АИ понекад додаје више дозвола него што је потребно; Свака дозвола представља ризик за одобрење складишта и поверење корисника.

Укратко

АИ игра две улоге у мобилном развоју: помоћник који убрзава процес развоја и могућност уграђене у апликацију. Код узорка пружа огромно убрзање за израду и учење; Али одлуке о архитектури, безбедности, дозволама и објављивању су људске. Сваки излаз се проверава кроз три корака: компајлирање, тестирање, преглед. Поверљиви подаци и лични подаци се никада не дају АИ. Платформа јаке потражње јасно наводи алат, ограничења и формат излаза. Ова дисциплина је основа за остатак модула.

Задатак апликације

Изаберите екран из свог сопственог мобилног пројекта (или замишљене „апликације за бележење“). Напишите упит за тај екран користећи „Улога и шаблон контекста“ изнад. Покушајте да компајлирате код генерисан вештачком интелигенцијом у пројекат и проследите га кроз филтер за верификацију у три корака: да ли је компајлирао, да ли је функционисао како се очекивало, да ли сте разумели сваки ред? Забележите најмање једну грешку или лажни АПИ који пронађете.

контролна листа

  • [ ] Одредио сам у коју од три канте спада задатак на основу његовог нивоа ризика
  • [ ] Навео сам платформу, верзију, архитектуру и ограничења у захтеву
  • [ ] Превео сам излаз и покренуо га
  • [ ] Тестирао сам ограничене случајеве (неактивни подаци, нема мреже, дозвола одбијена)
  • [ ] Уверио сам се да разумем сваки ред
  • [ ] Нисам дао никакве личне податке или приватне кључеве АИ
  • [ ] Проверио сам критичне АПИ-је из званичне документације