Chwilio, hidlwyr, sgrolio sy’n aros, troshaenau ehangu. Nid sgrin i’w gwthio yw’r un ohonynt, ac mae pob un yn lle y dylai URL allu mynd â chi iddo. Ateb y pecyn yw set sefydlog o newidiadau cyflwr wedi’u henwi ac un cam a rennir sy’n eu cymhwyso, pwy bynnag sy’n gofyn.
Yn aml, nid sgriniau yw cyrchfannau mwyaf defnyddiol ap. Ymholiad chwilio, hidlydd rhestr, sgrôl sy’n aros, avatar wedi’i ehangu: cyflwr y mae golwg yn ei ddarllen yw pob un, nid sgrin i’w gwthio. Mae Iris yn trin y rheini fel set sefydlog ac wedi’i henwi o newidiadau cyflwr y mae’r ap yn eu datgan, ac yn eu rhedeg mewn trefn trwy un cam a rennir o’r enw apply, rhwng y symudiadau strwythurol fel gwthio a chyflwyno. Y wobr yw un wyneb rhaglenadwy: mae tap, URL, prawf, a chipio sgrin sgriptiedig i gyd yn gyrru’r ap ar hyd yr un llwybr, ac mae pob newid yn cael ei gofnodi gyda’r cyflwr a gynhyrchodd. Mae’r erthygl hon yn cerdded trwy set lawn yr ap demo o newidiadau, yn dilyn y pedwar pwynt mynediad at yr un cam y maent yn ei rannu, ac yn onest am yr hyn y mae’n ei gostio.
Mae dwy erthygl gynharach yn gosod y sylfaen i hon. Fe wnaeth un gyfrif y darlleniadau: golygon yn ymgynghori â chyflwr cydlynydd a rennir, ddegau o weithiau, gan drin hynny fel cost onest cyflwr dros dro y mae sawl sgrin yn poeni amdano. Dangosodd y llall sut mae URLau yn cyrraedd y cyflwr hwnnw heb ollwng cyd-destun i ramadeg yr URL. Mae’r darn hwn yn enwi beth yw’r cyflwr mewn gwirionedd, o ochr yr ap: set sefydlog o newidiadau cyflwr wedi’u henwi.
Y cwestiwn sy’n ei ysgogi: pan fydd “llywio” yn golygu mwy na gwthio a chyflwyno, lle mae’r gweddill yn byw? Chwiliad sgyrsiau. Hidlydd rhestr. Sgrôl sy’n gorfod aros i’w rhestr fodoli. Troshaen ehangu avatar. Atodiad wedi’i agor yn llawn sgrin. Nid sgrin i’w gwthio yw’r un ohonynt. Cyflwr y mae golwg yn ei ddarllen yw pob un.
Mae’r rhan fwyaf o haenau llywio yn stopio wrth ffin y sgrin ac yn gadael y cyflwr hwnnw i osodwyr ad-hoc ar wasgar trwy’r ap. Mae Iris yn cymryd y safbwynt arall. Dilyniant o gamau yw cynllun llywio, ac mae cam naill ai’n strwythurol (gwthio, popio, cyflwyno, cau) neu’n effaith: un newid cyflwr wedi’i enwi y mae’r ap yn ei ddatgan, wedi’i gymhwyso trwy un dull y mae’r ap yn ei ddarparu. Nid yw’r pecyn yn gwybod beth mae effaith yn ei olygu. Mae’n gwarantu pryd mae effeithiau’n rhedeg, ym mha drefn, a beth sy’n digwydd pan fydd URL mwy newydd yn torri ar eu traws.
Hanner yr ap o’r cytundeb yw’r set honno o newidiadau. Mae pob un yn enwi un darn o gyflwr dros dro, a gall cynllun gydblethu camau strwythurol a’r camau effaith hyn mewn un rhestr drefnedig. Yr un lle y gwneir y newidiadau hynny mewn gwirionedd yw’r cam cymhwyso. Yn yr ap negeseuon demo y mae’r gyfres hon yn mesur ei honiadau yn ei erbyn, y set lawn yw deg newid yn ysgrifennu saith priodwedd arsylladwy.
Cyflwr ap cyffredin yw’r deg, wedi’i enwi unwaith yr un: gosod neu glirio chwiliad o fewn edefyn; clirio hidlydd y rhestr; ciwio sgrôl i res avatar neu i res sgwrs; ehangu neu gywasgu avatar; ehangu neu gau atodiad delwedd; ac un cyfansawdd sy’n dewis tab bot a’i hidlydd gyda’i gilydd.
Mae siâp y set mor ddadlennol â’i maint. Daw’r newidiadau mewn parau cymesur sy’n rhannu priodwedd: gosod-a-chlirio ar gyfer chwilio, ehangu-a-chywasgu ar gyfer yr avatar, ehangu-a-diystyru ar gyfer yr atodiad. Mae’r un newid cyfansawdd yn ysgrifennu dwy briodwedd mewn un pas, fel nad yw’r rhyngwyneb byth yn dangos y cyflwr hanner ffordd. Mae golygon yn darllen y priodweddau hyn yn uniongyrchol. Mae profion ac awtomeiddio yn eu darllen trwy giplun, sef copi wedi’i becynnu o gyflwr arsylladwy’r ap sy’n cael ei stampio ar bob newid y mae’r trywydd yn ei recordio.
Yn fwriadol, nid yw’r pecyn yn berchen ar yr un o’r enwau hyn. Gadewais y newidiadau i’r ap, oherwydd mai dim ond yr ap sy’n gwybod beth yw ei gyflwr dros dro; yr hyn y mae’r pecyn yn berchen arno yw’r gwarant bod y set yn aros yn gaeedig. Os yw darn o gyflwr yn werth ei yrru o URL, mae’n ennill un newid wedi’i enwi, un cofnod yn y cam cymhwyso, a dim byd arall.
Yr hyn sy’n gwneud y set yn wyneb rheoli yn hytrach na thabl llwybro yw pwy sy’n cael ei defnyddio. Mae pedwar galwr yn cydgyfeirio ar yr un cam cymhwyso.
simctl openurl yn gyrru’r llwybr agor o gragen. Felly y llwyfannwyd y recordiadau yn y gyfres hon: sgript yn tanio URLau at yr ap sy’n rhedeg nes bod y sgrin yn dangos y cyflwr sy’n werth ei gipio.Nid gweithrediadau cyfochrog o’r un ysgrifeniad yw’r pedwar pwynt mynediad; un gweithrediad ydynt, wedi’i gyrraedd mewn pedair ffordd.
URL na welodd y defnyddiwr mohono yw tap. URL gyda gwiriadau yw prawf. URL gyda chamera’n rhedeg yw sesiwn gipio. Tynnwch unrhyw un ohonynt ac nid yw’r cam cymhwyso yn gwybod nac yn poeni.
Mae effeithiau’n ennill eu lle pan fyddant yn cyfansoddi gyda llywio strwythurol. Pan fydd URL fel botmessages://avatar/aria-7/expanded yn gofyn am avatar wedi’i ehangu, mae’r llif yn dychwelyd un rhestr drefnedig:
case .avatarExpanded(let id):
return [
// clirio beth bynnag sy'n gorchuddio'r sgrin
.effect(.dismissAttachmentExpansion),
.effect(.clearInThreadSearch),
.effect(.clearListFilter),
// dychwelyd y pentwr i'r gwraidd
.nav(.popToRoot),
.nav(.dismissSheet),
// yna sgrolio at yr avatar a'i ehangu
.effect(.scrollToAvatarRow(id)),
.effect(.expandAvatar(id))
]
Pum cam effaith a dau gam llywio ar gyfer un bwriad. Clirio beth bynnag allai fod yn gorchuddio’r sgrin, dychwelyd y pentwr i’r gwraidd, yna sgrolio ac ehangu. Mae’r pecyn yn rhedeg y rhestr mewn trefn ac yn gwirio am ganslo rhwng camau; dim ond un newid ar y tro y mae cam cymhwyso’r ap byth yn ei weld.
Cyn gwneud unrhyw newid, mae’r cam cymhwyso yn gwneud tri pheth:
[cancelled] yn lle ei gymhwyso.[skipped].Y tu mewn i’r cam cymhwyso, un ysgrifeniad i un briodwedd arsylladwy yw pob newid. Mae’r haen olygon yn ymateb, mae’r trywydd yn stampio ciplun ôl-gyflwr, ac mae’r cam nesaf yn rhedeg. Y trywydd yw’r rhan y mae profion ac asiantau yn pwyso arni: nid “cafodd yr URL ei drin”, ond “digwyddodd yr ysgrifeniadau hyn, yn y drefn hon, a dyma’r cyflwr a adawodd pob un ar ei ôl”.
botmessages://avatar/aria-7/expanded yn saith cam a redir mewn trefn, pum cam effaith a dau gam llywio wedi’u cydblethu, gyda chanslo wedi’i wirio rhwng camau. Mae pob cam yn mynd trwy un apply sy’n gwarchod cyn iddo ysgrifennu; mae pob ysgrifeniad yn stampio ciplun ôl-gyflwr i’r trywydd.Nid yw dim o hyn am ddim. Mae pedair cost yn werth eu henwi, oherwydd mae pob un yn ffinio pa mor bell y gellir ymddiried yn y trywydd a sut mae’r wyneb yn ymddwyn ar ei ymylon.
Mae’r newid cyfansawdd yn cuddio trefn fewnol. Mae’n ysgrifennu’r tab a’r hidlydd mewn un pas fel nad yw’r defnyddiwr byth yn gweld tab heb ei hidlo yn y canol. Y gost yw manylder: mae’r trywydd yn dangos un digwyddiad, nid dau. Mae diagnosio atchweliad lle newidiodd y tab ond na newidiodd yr hidlydd yn golygu darllen y cod, nid y trywydd.
Rhestrir beth i’w hepgor â llaw. Rhestrir y pedwar cliriad â llaw, pob un gyda gwiriad bach sy’n enwi’r briodwedd y mae’n ei brofi. Ni all y pecyn weithio allan ar ei ben ei hun a fyddai newid yn gwneud dim. Mae angen cofnod newydd ar effaith glirio newydd, neu bydd y trywydd yn recordio ysgrifeniadau na ddigwyddodd go iawn.
Mae gwarchodwyr amser rhedeg yn hepgor yn hytrach na chwalu. Mae dau newid yn chwilio yn nata enghreifftiol y demo am y ddadl a roddir iddynt, ac mae id anhysbys yn marcio’r cam fel un a hepgorwyd yn hytrach na stopio’r rhediad. Mae’r wyneb yn aros ar agor i fewnbwn annilys; mae’r ap yn amsugno’r methiant wrth gymhwyso. Mae dosrannu’n aros yn bur; cymhwyso sy’n cario’r gwarchodwyr.
Mae recordio’r trywydd yn ddiamod. Mae pob cymhwysiad yn recordio digwyddiad gyda chiplun ffres, ac mae’r rhestr ddigwyddiadau yn tyfu nes i’r defnyddiwr ei hailosod. Mewn cynhyrchu mae hynny wedi’i ffinio gan gylch bywyd y trywydd; mewn sesiynau hir, gwaith y defnyddiwr yw’r ailosod.
Pan fydd mynediad tap a mynediad URL yn rhannu un cam cymhwyso, mae “gallwch yrru’r ap trwy URL” yn peidio â bod yn honiad ac yn dod yn briodwedd o’r bensaernïaeth. Mae prawf yn tanio URL oherwydd URLau yw’r iaith fewnbwn. Mae recordiad demo yn tanio URL am yr un rheswm. Mae asiant sy’n gosod yr ap ar gyfer sgrinlun yn tanio URL oherwydd nad oes dim byd arall i’w danio. Dim llwybr arbennig i brofion, dim bachyn ar wahân i’r recordio, dim API cyfochrog i awtomeiddio lithro’n hen.
Mae’r un wyneb yn ateb cwestiwn anoddach: faint all un URL ei roi i’r defnyddiwr, yn barod i barhau yn hytrach na dechrau eto? Achos effaith fel unrhyw un arall yw paratoi drafft, ac mae cyflwr cyfansoddi wedi’i baratoi, yng nghanol ei olygu, ddwy haen o ddalennau i lawr, yn troi allan i fod yn werth un URL o waith. Mae darn olaf y gyfres yn dangos hynny o’r dechrau i’r diwedd. Mae’r map llawn yn byw ar yr hwb dolennu dwfn.