Бірлік 2 / 11

Жасанды интеллектпен мобильді кодты құру: Котлин, Свифт және кросс-платформалық әзірлеу

Табыстар:

  • MVVM сияқты архитектураны енгізу және жасанды интеллект кодты генерациялау алдында шағын бөліктерде қабат-қабат сұрау арқылы оңай күтілетін және сыналатын кодты алу.
  • Котлиндегі нөлдік қауіпсіздік және корутин, Swift-тегі қосымша және жад циклдері сияқты тілге тән тұзақтарды тану және жасалған кодты оларға қарсы тексеру мүмкіндігі.
  • Кросс-платформа (Flutter, React Native) жобаларындағы әрбір платформа үшін рұқсаттар мен конфигурацияны бөлек тексеру мүмкіндігі

Мобильді дамудың жүрегі код болып табылады және AI-дан ең елеулі табыстар дәл осы жерде пайда болады. Бірақ «AI маған код жазуға рұқсат етіңіз» деген сөйлем өздігінен стратегия емес. Жақсы кодты құру; Ол дұрыс тілді, дұрыс архитектураны, дұрыс шекараларды және дұрыс тексеруді біріктіруді талап етеді. Бұл бөлімде біз Swift, iOS тілі, Котлин, Android тілі және бір кодтық базасы бар екі платформада жұмыс істейтін кросс-платформалық құралдар үшін AI-ны тиімді және қауіпсіз пайдалануды үйренеміз. Мақсат - AI-ны «код автоматы» ретінде емес, архитектурасын сіз анықтайтын үдеткіш ретінде орналастыру.

Біріншіден архитектура, екіншіден код

Ең жиі кездесетін қателік - сәулеттік жоспарсыз AI-дан кодты тікелей сұрау. Бұл іргетасын қаламай-ақ қабырға салумен бірдей. Ұялы телефондағы ең көп таралған архитектура MVVM (Model-View-ViewModel — деректерді, дисплейді және дисплей логикасын бөлетін дизайн үлгісі). Бұл көрініс жай ғана көрініс, логика мен күй ViewModel ішінде, ал деректер Үлгі қабатында екенін білдіреді. Егер сіз бұл бөлуді AI-ға басынан бастап енгізбесеңіз, ол барлық логиканы экран кодына кіргізетін тексерілмейтін және жөндеуге қиын құрылымды шығарады.

Салауатты код генерациясының қадамдық ағыны:

  1. Контекстті беріңіз. Платформа, тіл, нұсқа, архитектура, пайдаланылған кітапханалар.
  2. Қабаттарды сұраңыз. Алдымен деректер моделі, содан кейін желі/деректер деңгейі, содан кейін ViewModel экранда соңғы болады.
  3. Кішкентай бөліктерді сұраңыз. Бір экран немесе бір функция; Бұл 500 жолдық үлкен файл емес.
  4. Әрбір бөлікті тексеріңіз. Құру, сынау, біріктіру; содан кейін келесі трекке өтіңіз.
  5. Рефакторды сұраңыз (кодты жақсартыңыз). жұмыс кодынан кейін «мұны оқылатын және тексерілетін етіп жасаңыз» қадамы.
Нұсқау: AI-ға «кодты MVVM бойынша бөліңіз: қай бөлік View болуы керек, қай бөлігі ViewModel болуы керек, ол Үлгі болуы керек, оларды бөлек беріңіз» деп айтыңыз. Бұл жалғыз сөйлем жасалған кодтың архитектуралық сапасын күрт жақсартады.

Котлин және Свифт: тілге қатысты ойлар

Kotlin (Android) және Swift (iOS) - заманауи, қауіпсіз тілдер, бірақ олардың әртүрлі тұзақтары бар. Котлинде нөлдік қауіпсіздік (түр жүйесі арқылы айнымалының «нөл» болуы мүмкін екенін тексеру) кейде AI еркін түрде теріледі; қажетсіз !! оператор (егер ол нөл болса, бұзылуға мәжбүр ететін белгі) қолданбаны бұзуы мүмкін. Swift жүйесінде қосымша басқару және сақтау циклдері маңызды; AI жабылуларға [әлсіз өзін] қосуды ұмытуы мүмкін және бұл жадтың ағып кетуіне әкеледі.

Сондықтан тілді таңдаған кезде, «Котлиндегі нөлдік қауіпсіздікті сақтаңыз, қолданбаңыз !!» сияқты сұрауды жетілдіріңіз. немесе «Swift-тегі жабулардағы күшті сілтеме циклін болдырмау».

Абайлаңыз: AI шығаратын асинхронды код ерекше назар аударуды қажет етеді. Kotlin coroutines ішінде қате ауқымды таңдау немесе Swift ішінде асинхронды/күтуде негізгі ағынды блоктау қолданбаны тоқтатады. AI бұл қателерді жиі жасайды; Тестілеусіз сенбеңіз.

Кросс-платформалық даму: Flutter және React Native

Бір кодтық базамен iOS пен Android жүйесіне өткісі келетіндер үшін Flutter (Google-дың Dart тіліне негізделген құралдар жинағы) және React Native (Meta-ның JavaScript негізіндегі шешімі) ерекшеленеді. AI осы орталарда да күшті, бірақ кейде платформа айырмашылықтарын (рұқсаттар, дүкен ережелері, құрылғыға тән мінез-құлық) айналып өтеді. Мысалы, Flutter қолданбасында камера рұқсаты iOS және Android жүйелеріндегі әртүрлі файлдарда анықталған; AI тек біреуін жаза алады. Кросс-платформалық кодта «екі платформа үшін қажетті рұқсаттар мен конфигурацияны бөлек беріңіз» деп айту маңызды.

Сайлау қорытындысы:

Тәсіл

қашан

AI-ға назар аудару

Жергілікті (Котлин/Свифт)

Ең жоғары өнімділік, құрылғыға терең интеграция

Әрбір платформаның жеке коды бар; екі рет тексеріңіз

Флютер

Бір команда, жылдам, тұрақты UI

Платформаға арналған рұқсаттарды/параметрлерді қолмен тексеріңіз

React Native

Web/JS тобы қол жетімді

Көпір (туған көпір) бөліктерін мұқият тексеріңіз

үш шағын іс

1-жағдай – Корутин тұзағы. Android командасы AI-дан өнімдер тізімін шығаратын функцияға ие болды. Код негізгі ағында желі сұрауын жасады; Мәселе сынақ құрылғысында пайда болмады, бірақ әлсіз желіде қолданба 4 секунд бойы қатып қалды және ANR (Application Not Responding) ескертуін берді. Бұл AI-ға «IO диспетчерінде желі жұмысын орындау» деген кезде түзетілді. Сабақ: параллельдік әрқашан бақыланады.

2-жағдай – жадтың ағуы. iOS әзірлеушісі AI арқылы жасалған экранды 20 рет ашып, жапқаннан кейін қолданбаның жады 40 МБ-тан 180 МБ-қа дейін артқанын анықтады. Мұның себебі жабылуда [әлсіз өзін-өзі] болмауына байланысты ViewController жадтан өшірілмеді. Xcode жады графигі тұзақты ашты. Сабақ: жад профилі аналық дамуда міндетті болып табылады.

3-жағдай — платформа айырмашылығы. Flutter командасы AI-дан галереяға кіру кодын алды, ол Android жүйесінде жұмыс істеді, бірақ iOS жүйесінде істен шықты. Себебі фотосурет кітапханасының рұқсат сипаттамасы (NSPhotoLibraryUsageDescription) Info.plist файлына қосылмаған; AI тек Android жағын жазды. Бұл 15 минуттық түзету, бірақ ол ұсталмаса, дүкеннен бас тарту болар еді.

Әлсіз шақыру / Күшті шақыру

Әлсіз шақыру: "API-ден өнімдерді шығаратын Котлин кодын жазыңыз."

Күшті шақыру: "Android/Kotlin үшін REST API-дан өнім тізімін шығаратын кодты жасаңыз.- Жақсартуы бар желі деңгейі, тоқтата тұру функциясы - Dispatchers.IO-дағы желілік тапсырма; негізгі ағынды блоктау - MVVM: Репозиторий -> ViewModel -> StateFlow бар UI күйі - Қате күйлері: желі жоқ, 4xx үшін бөлек мөрленген сынып күйі, бөлек қауіпсіздік қабатын пайдалану, nuxport ретінде қорғау!! файлдар, әрқайсысы 1 сөйлем түсіндіреді».

Күшті шақыру жасалған кодтың алдыңғы жағдайлардың тұзағына түсуіне жол бермейді.

Көшіретін үлгілер

Қабаттық өндіріс үлгісі: "[платформа/тіл] үшін [функцияны] әзірлеу. Тәртіппен шығарыңыз:1) Деректер үлгісі (деректер класы/құрылымы)2) Желі немесе деректер көзі деңгейі3) Репозиторий4) ViewModel (күйді басқару)5) Экран (UI)Әр қабатты бөлек экспорттаңыз, олардың арасына біріктіру жазбасын қосыңыз."

Тілге арналған қауіпсіздік үлгісі (Котлин):"Осы Котлин кодын қарап шығыңыз:- !! және платформа түрін пайдалануды өшіріңіз- Корутин ауқымын және диспетчер таңдауын тексеріңіз- Негізгі ағынды блоктайтын қоңыраулар бар ма?[код]"

Тілге арналған қауіпсіздік үлгісі (Swift): "Осы Swift кодын қарап шығыңыз:- Жабылған жерлерде ұстап қалу циклінің қаупі (әлсіз/иесі жоқ)- Қосымша күштеп ашуды пайдалану (!)- Негізгі ағыннан [код] жылжытуды қажет ететін ауыр жұмыс"

Кросс-платформалық басқару үлгісі: "iOS және Android екеуінде де осы [Flutter/React Native] мүмкіндігіне қажетті барлық рұқсаттарды, конфигурацияларды және платформаға тән кодты көрсетіңіз. Жеке Info.plist және AndroidManifest.xml жазбаларын қамтамасыз етіңіз."

Жалпы қателер

  • Архитектураны салмай, кодты сұрау. Нәтиже: барлығын экранға түсіретін тексерілмейтін құрылым.
  • Бір мезгілде кодты сынамай сену. Негізгі жіп блоктары және дұрыс емес ауқым - апаттардың ең көп тараған себептері.
  • Жадты басқаруға назар аудармау. Әсіресе iOS жабылғанда ағып кетеді; Профильді түсірмей-ақ байқалмайды.
  • Платформаның айырмашылықтарын айналып өту. Кросс-платформалық құралдарда рұқсаттар мен конфигурация екі платформада бөлек жазылады.
  • Кітапхана нұсқасы тексерілмейді. AI ескірген Retrofit/Alamofire API ұсынуы мүмкін; Ресми құжатпен тексеріңіз.
  • Бір үлкен файлды жасау. Қолдау және тексеру мүмкін емес; қабаттарды сұраңыз.

Қысқаша

Архитектураны көрсеткенде, AI көмегімен код жасау күшті. Алдымен MVVM сияқты құрылымды енгізіңіз, содан кейін қабат-қабат және кішкене бөліктерде сұраңыз, әрбір бөлікті құрастырыңыз және сынаңыз. Котлиндегі нөлдік қауіпсіздік пен корутин, Swift-тегі қосымша және жад циклдері ерекше назар аударуды қажет етеді. Кросс-платформа құралдарында рұқсаттар мен конфигурация әрбір платформа үшін бөлек жазылады. Күшті шақыру тілді, нұсқаны, архитектураны және тілге қатысты қауіпсіздік ережелерін алдын ала айтады; Бұл өндірісте жиі кездесетін апаттар мен ағып кету қателерінің алдын алады.

Қолданбалы тапсырма

Тізім экраны үшін (мысалы, «байланыс тізімі») таңдаған платформаңыздағы (Котлин немесе Swift) «Қосымша өндіріс үлгісі» арқылы AI-дан кодты сұраңыз. Жасалған кодты жобаға қосыңыз, оны құрастырыңыз және мына екі тексеруді орындаңыз: (1) негізгі ағында жұмыс істейтін желі/ұзақ процесс, (2) нөлдік/қосымша қауіпсіздік дұрыс па? AI сіз тапқан мәселені тілге арналған қауіпсіздік үлгісімен шешуін сұраңыз.

бақылау парағы

  • [ ] Мен кодты сұрамас бұрын архитектураны (MVVM т.б.) көрсеттім
  • [ ] Мен оны қабат-қабат, кішкене бөліктерге бөлгім келді
  • [ ] Мен қатарлас код негізгі ағынды блоктамайтынын тексердім
  • [ ] Мен нөлдік/қосымша қауіпсіздік пен жадты басқаруды тексердім
  • [ ] Мен кросс-платформалық жобада екі платформаның рұқсаттарын/параметрлерін бөлек тексердім
  • [ ] Ресми құжаттамадан кітапхана нұсқалары мен API қолтаңбаларын тексердім