Awọn anfani:
- Gbigba rọrun-lati-tọju ati koodu idanwo nipa gbigbe ilana faaji bii MVVM ati ibeere Layer nipasẹ Layer ni awọn ege kekere ṣaaju nini oye itetisi atọwọda ṣe ipilẹṣẹ koodu.
- Agbara lati ṣe idanimọ awọn ẹgẹ-ede kan pato gẹgẹbi ailewu asan ati coroutine ni Kotlin, iyan ati awọn iyipo iranti ni Swift, ati ṣayẹwo koodu ti ipilẹṣẹ si wọn.
- Agbara lati jẹrisi awọn igbanilaaye ati iṣeto ni lọtọ fun pẹpẹ kọọkan ni awọn iṣẹ akanṣe agbelebu-Syeed (Flutter, React Native)
Ọkan ti idagbasoke alagbeka jẹ koodu, ati pe ni ibi ti awọn anfani ojulowo julọ lati AI han. Ṣugbọn gbolohun naa "Jẹ ki AI kọ koodu fun mi" kii ṣe ilana fun ara rẹ. Ti o dara koodu iran; O nilo apapọ ede ti o tọ, faaji ti o tọ, awọn aala ti o tọ, ati afọwọsi ti o tọ. Ninu ẹyọ yii, a yoo kọ bii o ṣe le lo AI daradara ati lailewu fun Swift, ede iOS, Kotlin, ede ti Android, ati awọn irinṣẹ agbelebu ti o nṣiṣẹ lori awọn iru ẹrọ meji pẹlu ipilẹ koodu kan. Ibi-afẹde ni lati ipo AI kii ṣe bi “automon koodu” ṣugbọn bi ohun imuyara ti faaji ti o pinnu.
Architecture akọkọ, koodu keji
Aṣiṣe ti o wọpọ julọ ni lati beere AI fun koodu taara laisi ero ayaworan kan. Èyí dà bí kíkọ́ odi kan láìfi ìpìlẹ̀ lélẹ̀. Itumọ ti o wọpọ julọ lori alagbeka jẹ MVVM (Awoṣe-Wiwo-ViewModel — apẹrẹ apẹrẹ ti o ya data, ifihan, ati imọran ifihan). Eyi tumọ si pe wiwo naa jẹ wiwo nikan, ọgbọn ati ipinlẹ n gbe ni ViewModel, ati pe data wa ninu Layer awoṣe. Ti o ko ba fa iyapa yii sori AI lati ibẹrẹ, o ṣe agbejade ohun aibikita ati eto-iṣoro lati ṣetọju ti o fa gbogbo ọgbọn naa sinu koodu iboju.
Ṣiṣejade koodu ti ilera ni igbese nipa igbese:
- Fun awọn ti o tọ. Platform, ede, ikede, faaji, awọn ile-ikawe ti a lo.
- Beere fun awọn fẹlẹfẹlẹ. Ni akọkọ awoṣe data, lẹhinna nẹtiwọki / data Layer, lẹhinna ViewModel, kẹhin iboju.
- Beere fun awọn ege kekere. Iboju kan tabi iṣẹ kan; Kii ṣe faili laini 500 nla kan.
- Daju kọọkan nkan. Kọ, idanwo, ṣepọ; lẹhinna gbe siwaju si orin atẹle.
- Beere olutọpa (imudara koodu naa). "jẹ ki eyi jẹ kika diẹ sii ati idanwo" igbesẹ lẹhin koodu iṣẹ.
Akiyesi: Sọ fun AI "pipin koodu naa ni ibamu si MVVM: apakan wo ni o yẹ ki o jẹ Wo, eyiti o yẹ ki o jẹ ViewModel, eyiti o yẹ ki o jẹ Awoṣe, fun wọn lọtọ”. Gbólóhùn ẹyọkan yii ṣe imudara didara ayaworan ti koodu ti ipilẹṣẹ.
Kotlin ati Swift: ede-kan pato ero
Kotlin (Android) ati Swift (iOS) jẹ igbalode, awọn ede ti o ni aabo, ṣugbọn wọn ni awọn ọfin oriṣiriṣi. Ni Kotlin, ailewu asan (ṣayẹwo boya oniyipada le jẹ “asan” nipasẹ iru eto) ni igba miiran ti tẹ laipẹ nipasẹ AI; ko wulo !! oniṣẹ (aami ti o fi agbara mu jamba ti o ba jẹ asan) le jamba ohun elo naa. Ni Swift, iṣakoso aṣayan ati awọn akoko idaduro jẹ pataki; AI le gbagbe lati ṣafikun [ara alailera] ni awọn pipade ati eyi yoo ṣẹda jijo iranti kan.
Nitorinaa nigba ti o ba yan ede kan, mu iyara naa pọ si ni ibamu: bii “Ṣitọju aabo asan ni Kotlin, maṣe lo !!” tabi "Dena awọn itọkasi to lagbara ni awọn pipade ni Swift".
Išọra: koodu asynchronous ti AI ṣejade nilo akiyesi pataki. Yiyan aaye ti ko tọ ni Kotlin coroutines tabi didi okun akọkọ ni async/duro ni Swift yoo di ohun elo naa di. AI ṣe awọn aṣiṣe wọnyi nigbagbogbo; Maṣe gbekele rẹ laisi idanwo rẹ.
Agbelebu-Syeed idagbasoke: Flutter ati React Native
Fun awọn ti o fẹ lọ si mejeeji iOS ati Android pẹlu ipilẹ koodu kan, Flutter (ohun elo irinṣẹ orisun ede Google ti Dart) ati React Native (ojutu orisun JavaScript ti Meta) duro jade. AI tun lagbara ni awọn agbegbe wọnyi daradara, ṣugbọn nigbami o kọja awọn iyatọ iru ẹrọ (awọn igbanilaaye, awọn ofin itaja, ihuwasi ẹrọ kan pato). Fun apẹẹrẹ, ni Flutter, igbanilaaye kamẹra jẹ asọye ni oriṣiriṣi awọn faili lori iOS ati Android; AI le kọ ọkan nikan. Ni koodu agbelebu, o ṣe pataki lati sọ “funni awọn igbanilaaye pataki ati iṣeto ni fun awọn iru ẹrọ mejeeji lọtọ”.
Àkópọ̀ ìdìbò:
Ona
nigbawo
akiyesi pẹlu AI
Ilu abinibi (Kotlin/Swift)
Išẹ ti o ga julọ, iṣọpọ-jinle ẹrọ
Syeed kọọkan ni koodu lọtọ; daju lemeji
Flutter
Ẹgbẹ kan, iyara, UI deede
Pẹlu ọwọ ṣayẹwo igbanilaaye/awọn eto pato iru ẹrọ
Fesi abinibi
Web/JS egbe wa
Ṣe idanwo awọn afara ( Afara abinibi) awọn apakan farabalẹ
mẹta mini igba
Ọran 1 - Coroutine pakute. Ẹgbẹ Android kan ni iṣẹ kan ti o fa atokọ ọja lati AI. Awọn koodu ti a ṣiṣe awọn nẹtiwọki ìbéèrè ni akọkọ o tẹle; Iṣoro naa ko han lori ẹrọ idanwo, ṣugbọn lori nẹtiwọọki alailagbara, ohun elo naa di didi fun awọn aaya 4 ati fun ikilọ ANR (Ohun elo Ko Dahun). O wa titi nigbati a sọ fun AI lati “ṣe iṣẹ nẹtiwọọki ni dispatcher IO”. Ẹkọ: concurrency jẹ iṣakoso nigbagbogbo.
Case 2 - Memory jo. Olùgbéejáde iOS kan rii pe lẹhin ṣiṣi ati pipade iboju ti ipilẹṣẹ AI ni igba 20, iranti app pọ si lati 40 MB si 180 MB. Idi ni pe ViewController ko le yọ kuro lati iranti nitori sisọnu [ara ti ko lagbara] ni pipade. Aworan iranti Xcode ṣe afihan pakute naa. Ẹkọ: Profaili iranti jẹ dandan ni idagbasoke abinibi.
Case 3 - Platform iyato. Ẹgbẹ Flutter kan ni koodu iwọle gallery lati AI, o ṣiṣẹ lori Android ṣugbọn kọlu lori iOS. Idi ni pe apejuwe igbanilaaye iwe ikawe fọto (NSPhotoLibraryUsageDescription) ko ṣe afikun si faili Alaye. AI nikan kọ ẹgbẹ Android. O jẹ atunṣe iṣẹju 15, ṣugbọn yoo jẹ ijusile itaja ti ko ba ti mu.
Ailagbara kiakia / Alagbara kiakia
Ibere ailagbara: "Kọ koodu Kotlin ti o fa awọn ọja lati API."
Itọkasi ti o lagbara: "Ṣiṣe koodu fun Android/Kotlin ti o fa atokọ ọja lati REST API.- Layer Network pẹlu retrofit, iṣẹ daduro iṣẹ-iṣẹ nẹtiwọki ni Dispatchers.IO; idinamọ okun akọkọ- MVVM: Ibi ipamọ -> ViewModel -> Ipinle UI pẹlu StateFlow- Awọn ipinlẹ aṣiṣe: ko si nẹtiwọki, ipinlẹ kilasi ti a fi idi mulẹ fun 4xx, Export null aabo awọn faili 4xx, Export !! 1 gbolohun kọọkan ṣe alaye."
Iṣeduro ti o lagbara ṣe idiwọ koodu ti ipilẹṣẹ lati ja bo sinu awọn ẹgẹ ti awọn ọran iṣaaju.
Awọn awoṣe idakọ
Awoṣe iṣelọpọ Layered: "Dagbasoke [ẹya-ara] fun [Syeed / ede]. Ṣejade ni aṣẹ: 1) Awoṣe data (kilasi data / ilana) 2) Nẹtiwọọki tabi orisun data Layer3) Repository4) ViewModel (isakoso ipinlẹ) 5) Iboju (UI) Gbejade Layer kọọkan lọtọ, ṣafikun akọsilẹ isọpọ laarin wọn.
Awoṣe aabo ede kan pato (Kotlin):“ Atunyẹwo koodu Kotlin yii: - Ko lilo ti !! ati iru iru ẹrọ- Daju iwọn Coroutine ati yiyan olutaja- Ṣe awọn ipe wa ti n dinakun okun akọkọ bi?[koodu]”
Awoṣe aabo-ede kan pato (Swift): “Ṣayẹwo koodu Swift yii: - Ewu ti akoko idaduro ni awọn pipade (ailagbara / ara ẹni ti a ko mọ) - Lilo agbara yiyan-unwrap (!) - Iṣẹ ti o wuwo ti o nilo lati gbe kuro ni okun akọkọ [koodu]”
Awoṣe iṣakoso agbelebu-Syeed: "Ṣakojọ gbogbo awọn igbanilaaye, awọn atunto, ati koodu pato-Syeed ti o nilo fun ẹya yii [Flutter/React Native] lori mejeeji iOS ati Android. Pese Alaye lọtọ ati awọn titẹ sii AndroidManifest.xml."
Awọn aṣiṣe ti o wọpọ
- Béèrè fun koodu lai fifi faaji. Abajade: eto ti a ko le ṣe ayẹwo ti o fa ohun gbogbo mọ loju iboju.
- Igbẹkẹle laisi idanwo koodu igbakanna. Awọn bulọọki o tẹle ara akọkọ ati ipari ti ko tọ jẹ awọn okunfa ti o wọpọ julọ ti awọn ipadanu.
- Gbojufo iṣakoso iranti. Paapa jo ni iOS closures; Ko ṣe akiyesi laisi mu profaili kan.
- Bypassing Syeed iyato. Ni awọn irinṣẹ agbelebu, awọn igbanilaaye ati iṣeto ni a kọ lọtọ lori awọn iru ẹrọ meji.
- Ko mọ daju awọn ìkàwé version. AI le daba Atijo Retrofit/Alamofire API; Ṣayẹwo pẹlu iwe aṣẹ osise.
- Ṣiṣejade faili omiran kan ṣoṣo. Ko ṣee ṣe lati ṣetọju ati rii daju; beere fun awọn fẹlẹfẹlẹ.
Ni soki
Iran koodu pẹlu AI jẹ alagbara nigbati o pato awọn faaji. Ni akọkọ fa eto kan bii MVVM, lẹhinna beere Layer nipasẹ Layer ati ni awọn ege kekere, ṣajọ ati idanwo nkan kọọkan. Ailewu asan ati coroutine ni Kotlin, iyan ati awọn ipe iranti ni Swift nilo akiyesi pataki. Ni awọn irinṣẹ agbelebu, awọn igbanilaaye ati iṣeto ni a kọ lọtọ fun pẹpẹ kọọkan. Itọkasi to lagbara sọ fun ede, ẹya, faaji, ati awọn ofin aabo-ede ni iwaju; Eyi ṣe idilọwọ jamba ti o wọpọ julọ ati awọn aṣiṣe jijo ni iṣelọpọ.
Ohun elo iṣẹ-ṣiṣe
Fun iboju atokọ (fun apẹẹrẹ “akojọ olubasọrọ”), beere koodu lati AI ni lilo “Awoṣe iṣelọpọ Afikun” ninu pẹpẹ yiyan rẹ (Kotlin tabi Swift). Ṣafikun koodu ti ipilẹṣẹ si iṣẹ akanṣe kan, ṣajọ rẹ, ki o ṣe awọn sọwedowo meji wọnyi: (1) Njẹ ilana nẹtiwọọki / ilana gigun ti n ṣiṣẹ lori okun akọkọ, (2) jẹ asan / ailewu aṣayan jẹ deede? Jẹ ki AI ṣatunṣe ọran ti o rii pẹlu awoṣe aabo-ede kan.
akojọ ayẹwo
- [] Mo pato faaji (MVVM ati be be lo) ṣaaju ki o to bere koodu
- [] Mo fe o Layer nipa Layer, ni kekere awọn ege
- [] Mo ṣe idanwo pe koodu igbakanna ko ṣe dina okun akọkọ
- [] Mo ṣayẹwo asan/aabo iyan ati iṣakoso iranti
- [] Mo jẹrisi awọn igbanilaaye/awọn eto ti awọn iru ẹrọ meji lọtọ ni iṣẹ akanṣe agbekọja
- [] Mo jẹrisi awọn ẹya ile-ikawe ati awọn ibuwọlu API lati awọn iwe aṣẹ osise