Nkeji 2 / 11

Ọgbọ ekwentị mkpanaaka nwere ọgụgụ isi nka: Kotlin, Swift na Cross-Platform Development

Uru:

  • Inweta koodu dị mfe idowe yana nke enwere ike ịnwale site na itinye ụkpụrụ ụlọ dị ka MVVM na ịrịọ oyi akwa site na oyi akwa na obere iberibe tupu inwe ọgụgụ isi na-emepụta koodu.
  • Ikike ịmata ọnyà akọwapụtara asụsụ dị ka nchekwa efu na coroutine na Kotlin, nhọrọ na loops ebe nchekwa na Swift, wee lelee koodu emepụtara megide ha.
  • Ikike iji nyochaa ikike na nhazi iche iche maka ikpo okwu ọ bụla na ọrụ cross-platform (Flutter, React Native)

Obi nke mmepe mkpanaka bụ koodu, ma nke ahụ bụ ebe a na-enweta uru kachasị mma sitere na AI. Mana ahịrịokwu "Ka AI deere m koodu" abụghị atụmatụ n'onwe ya. Ezi koodu ọgbọ; Ọ na-achọ ijikọta asụsụ ziri ezi, ụkpụrụ ụlọ kwesịrị ekwesị, oke oke na nkwado ziri ezi. Na nkeji a, anyị ga-amụta ka esi eji AI rụọ ọrụ nke ọma na n'enweghị nsogbu maka Swift, asụsụ iOS, Kotlin, asụsụ Android, na ngwaọrụ cross-platform na-agba ọsọ na nyiwe abụọ nwere otu koodu ntọala. Ebumnuche bụ idobe AI ọ bụghị dị ka “code automaton” kama dị ka onye na-eme ngwa ngwa nke ị na-ekpebi ụkpụrụ ụlọ.

Nhazi nke mbụ, koodu nke abụọ

Mmejọ a na-emekarị bụ ịrịọ AI maka koodu ozugbo na-enweghị atụmatụ ụkpụrụ ụlọ. Nke a dị ka iwu mgbidi na-enweghị ịtọ ntọala. Ihe owuwu a na-ahụkarị na mkpanaka bụ MVVM (Model-View-ViewModel — ụkpụrụ imewe nke na-ekewa data, ngosipụta, na mgbagha ihe ngosi). Nke a pụtara na echiche ahụ bụ naanị nlele, mgbagha na steeti na-ebi na ViewModel, na data dị na oyi akwa Model. Ọ bụrụ na ịmanyeghị nkewa a na AI site na mmalite, ọ na-emepụta usoro a na-apụghị ịgbagha agbagha na nke siri ike idowe nke na-egbochi echiche niile na koodu ihuenyo.

Ọgbọ koodu dị mma na-aga site na nzọụkwụ:

  1. Nye ihe gbara ya gburugburu. Platform, asụsụ, ụdị, architecture, ọba akwụkwọ eji.
  2. Rịọ maka akwa akwa. Mbụ ụdị data, mgbe ahụ netwọk / data oyi akwa, mgbe ViewModel, ikpeazụ ihuenyo.
  3. Rịọ maka obere iberibe. Otu ihuenyo ma ọ bụ otu ọrụ; Ọ bụghị nnukwu faịlụ ahịrị 500.
  4. Nyochaa mpempe ọ bụla. Mee, nwalee, jikọta; wee gaa n'ihu na egwu na-esote.
  5. Rịọ onye nrụpụta (melite koodu ahụ). "Mee ka nke a bụrụ ihe a na-agụ na nke a pụrụ ịnwale" mgbe koodu ọrụ gasịrị.
Ntuziaka: Gwa AI "kewaa koodu dị ka MVVM: akụkụ nke kwesịrị ịbụ View, nke kwesịrị ịbụ ViewModel, nke kwesịrị ịbụ Model, nye ha iche iche". Otu ahịrịokwu a na-eme ka ọ dị mma n'ụdị ụkpụrụ nke koodu emepụtara.

Kotlin na Swift: ntụle asụsụ akọwapụtara

Kotlin (Android) na Swift (iOS) bụ asụsụ ọgbara ọhụrụ nwere nchekwa, mana ha nwere ọnyà dị iche iche. Na Kotlin, nchekwa efu (ịlele ma mgbanwe nwere ike ịbụ "efu" site na ụdị usoro) mgbe ụfọdụ AI na-edepụta nke ọma; adịghị mkpa !! onye ọrụ (akara na-amanye mkpọka ma ọ bụrụ na ọ bụ efu) nwere ike mebie ngwa ahụ. Na Swift, njikwa nhọrọ na usoro njide dị oke mkpa; AI nwere ike ichefu ịgbakwunye [onwe adịghị ike] na mmechi na nke a ga-emepụta ebe nchekwa.

Yabụ mgbe ịhọrọ asụsụ, megharịa ngwa ngwa n'otu aka ahụ: dị ka "Chekwaa nchekwa efu na Kotlin, ejila !!" ma ọ bụ "gbochie ntụgharị ntụaka siri ike na mmechi na Swift".

Ịkpachara anya: Koodu asynchronous nke AI mepụtara chọrọ nlebara anya pụrụ iche. Ịhọrọ oghere na-ezighi ezi na Kotlin coroutines ma ọ bụ igbochi isi eri na async/echere na Swift ga-ewepụ ngwa ahụ. AI na-eme mmejọ ndị a ugboro ugboro; Atụkwasịla obi na ya na-anwaleghị ya.

Mmepe nke ikpo okwu: Flutter na React Native

Maka ndị chọrọ ịga ma iOS na gam akporo nwere otu koodu ntọala, Flutter (Google's Dart Language based Toolkit) na React Native (Meta's JavaScript based solution) pụtara iche. AI dịkwa ike na gburugburu ndị a, mana mgbe ụfọdụ ọ na-agafe ọdịiche dị n'elu ikpo okwu (ikike, iwu ụlọ ahịa, omume akọwapụtara ngwaọrụ). Dịka ọmụmaatụ, na Flutter, a na-akọwa ikike igwefoto na faịlụ dị iche iche na iOS na gam akporo; AI nwere ike dee naanị otu. Na koodu cross-platform, ọ dị mkpa ịsị "nye ikike na nhazi dị mkpa maka ikpo okwu abụọ ahụ iche".

Nchịkọta ntuli aka:

Ụzọ

mgbe

anya na AI

Nwa amaala (Kotlin/Swift)

Arụmọrụ kachasị elu, ntinye miri emi ngwaọrụ

Ikpo okwu ọ bụla nwere koodu dị iche iche; nyochaa ugboro abụọ

Ntugharị

Otu otu, ngwa ngwa, UI na-agbanwe agbanwe

Jiri aka lelee ikike/nhazi nke ikpo okwu

Meghachi omume nwa amaala

Otu webụ/JS dị

Jiri nlezianya nwalee akụkụ àkwà mmiri (àkwà mmiri nke ala).

Obere ikpe atọ

Ikpe 1 - Coroutine ọnyà. Otu gam akporo gam akporo nwere ọrụ na-adọta ndepụta ngwaahịa na AI. Koodu na-eme arịrịọ netwọk na isi eri; Nsogbu a apụtaghị na ngwaọrụ nnwale, mana na netwọk adịghị ike, ngwa ahụ kwụsịrị maka 4 sekọnd wee nye ịdọ aka ná ntị ANR (Ngwa anaghị azaghachi). Edoziri ya mgbe a gwara AI ka ọ "rụ ọrụ netwọk na onye na-ezigara IO". Ihe nkuzi: a na-achịkwa concurrency mgbe niile.

Ikpe 2 - mgbapu ebe nchekwa. Onye nrụpụta iOS chọpụtara na ka imepechara na mechie ihuenyo AI mepụtara ugboro 20, ebe nchekwa ngwa ahụ si na 40 MB gaa na 180 MB. Ihe kpatara ya bụ na ViewController enweghị ike ikpochapụ site na ebe nchekwa n'ihi na-efu [onwe adịghị ike] na mmechi. Eserese ebe nchekwa Xcode gosipụtara ọnyà ahụ. Ihe nkuzi: profaịlụ ebe nchekwa bụ iwu na mmepe obodo.

Ikpe 3 — Platform dị iche. Otu Flutter nwetara koodu ịnweta gallery site na AI, ọ na-arụ ọrụ na gam akporo mana dara na iOS. Ihe kpatara ya bụ na nkọwapụta ikike ọba akwụkwọ foto (NSPhotoLibraryUsageDescription) etinyeghị na faịlụ Info.plist; AI dere naanị akụkụ Android. Ọ bụ nhazi nkeji iri na ise, mana ọ gaara abụ njụ ụlọ ahịa ma ọ bụrụ na ejideghị ya.

Ngwa ngwa adịghị ike / Ike siri ike

Ngwa ngwa na-adịghị ike: "Dee koodu Kotlin na-adọta ngwaahịa na API."

Ike ngwa ngwa: "Mepụta koodu maka gam akporo/Kotlin nke na-adọta ndepụta ngwaahịa site na REST API.- Network Layer with retrofit, kwụsịtụ ọrụ- Network ọrụ na Dispatchers.IO; igbochi isi eri- MVVM: Repository -> ViewModel -> UI steeti na StateFlow- Njehie na-ekwu: enweghị netwọk, iche iche akara steeti steeti maka 4xx, 5x dị iche iche nchekwa, n'iji nchekwa nchekwa 4xx, 5x, n'iji nchekwa dị iche iche. 1 ahịrịokwu nke ọ bụla kọwara."

Nkwalite siri ike na-egbochi koodu emepụtara ịdaba na ọnyà nke ikpe gara aga.

Ụdị ndebiri nwere ike iṅomi

Ụdị mmepụta oyi akwa: " Zụlite [atụmatụ] maka [ikpo okwu / asụsụ]. Mepụta n'usoro: 1) Ụdị data (klas / struct) 2) Network ma ọ bụ data isi Layer3) Repository4) ViewModel (njikwa steeti) 5) Ihuenyo (UI) Mbupụ oyi akwa ọ bụla iche, gbakwunye ndetu ntinye n'etiti ha."

Nlebanya nchekwa dị iche iche nke asụsụ (Kotlin): "Nyochaa koodu Kotlin a: - Kpochapụ ojiji nke !! na ụdị ikpo okwu- Nyochaa ogo Coroutine na nhọrọ ndị na-ezigara - enwere oku na-egbochi eri bụ isi?[koodu]"

Asụsụ-ụfọdụ nchekwa ndebiri (Swift): "Nyochaa koodu Swift a: - Ihe ize ndụ nke ijigide okirikiri na mmechi (onwe adịghị ike / enweghị ikike) - Iji ikike nhọrọ-unwrap (!) - Ọrụ siri ike nke kwesịrị iwepụ na isi eri [koodu]"

Nlebanya njikwa cross-platform: "Depụta ikike niile, nhazi na koodu akọwapụtara nke achọrọ maka njirimara [Flutter/React Native] na ma iOS na gam akporo. Nye ozi dị iche iche na ndenye AndroidManifest.xml."

Mmejọ ndị nkịtị

  • Arịrịọ maka koodu na-enweghị itinye ụkpụrụ ụlọ. Nsonaazụ: usoro a na-apụghị ịgbagha agbagha nke na-amachibido ihe niile na ihuenyo.
  • Ịtụkwasị obi na-enweghị nwale concurrent koodu. Isi ngọngọ eri na oke ezighi ezi bụ ihe na-ebutekarị mkpọka.
  • Ileghara njikwa ebe nchekwa anya. Karịsịa leaks na iOS mmechi; A naghị ahụ ya n'ebughị ụzọ were profaịlụ.
  • Ịgafe ọdịiche ikpo okwu. Na ngwaọrụ cross-platform, a na-ede ikikere na nhazi iche iche na ikpo okwu abụọ ahụ.
  • Anaghị akwado ụdị ọba akwụkwọ ahụ. AI nwere ike ịtụnye API Retrofit/Alamofire emechabeghị; Lelee akwụkwọ gọọmentị.
  • Na-emepụta otu nnukwu faịlụ. Enweghị ike idobe ma nyochaa; rịọ maka akwa akwa.

Na nchịkọta

Ọgbọ koodu nwere AI dị ike mgbe ị na-akọwapụta ụkpụrụ ụlọ. Buru ụzọ wepụta usoro dị ka MVVM, wee rịọ oyi akwa site na oyi akwa na obere iberibe, chịkọta ma nwalee ibe ọ bụla. Nchekwa efu na corutine na Kotlin, nhọrọ na loops ebe nchekwa na Swift chọrọ nlebara anya pụrụ iche. Na ngwaọrụ cross-platform, a na-ede ikikere na nhazi iche iche maka ikpo okwu ọ bụla. Ngwa ngwa siri ike na-agwa asụsụ, ụdị, ụkpụrụ ụlọ, na iwu nchekwa akọwapụtara asụsụ n'ihu; Nke a na-egbochi mkpọka na mperi na-emekarị na mmepụta.

Ọrụ ngwa

Maka ihuenyo ndepụta (dịka "ndepụta kọntaktị"), rịọ koodu sitere na AI site na iji "mmepụta mmepụta ihe mgbakwunye" na ikpo okwu nke nhọrọ gị (Kotlin ma ọ bụ Swift). Tinye koodu emepụtara na oru ngo, chịkọta ya, wee mee nyocha abụọ ndị a: (1) usoro netwọk / ogologo usoro na-agba ọsọ na isi eri, (2) nchekwa efu/nhọrọ ziri ezi? Mee ka AI dozie nsogbu ị chọtara na ndebiri nchekwa akọwapụtara asụsụ.

ndetu

  • [ ] Edepụtara m ụkpụrụ ụlọ (MVVM wdg) tupu ịrịọ koodu
  • [ ] Achọrọ m ya oyi akwa site na oyi akwa, na obere iberibe
  • [ ] M nwalere na concurrent code anaghị egbochi isi eri
  • Anlere m nchekwa efu/nhọrọ yana njikwa ebe nchekwa
  • [ ] Ekwenyere m ikike/nhazi nke nyiwe abụọ iche iche n'ime oru ngo cross-platform
  • [ ] Ekwenyere m ụdị ọbá akwụkwọ yana mbinye aka API site na akwụkwọ gọọmentị