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 Iris yw set gaeedig o newidiadau cyflwr wedi’u henwi, wedi’u cymhwyso trwy un cam a rennir y mae pob galwr (tapiau, URLau, profion, cipiau) yn ei yrru.
Yn aml, nid sgriniau o gwbl yw cyrchfannau defnyddiol. Ymholiad chwilio, hidlydd, targed sgrôl, avatar wedi’i ehangu (darnau o gyflwr golwg yw’r rhain). Mae Iris yn eu trin fel geirfa sefydlog o effeithiau wedi’u henwi. Maent yn rhedeg mewn trefn trwy un cam apply, wedi’u plethu â llywio strwythurol.
Y canlyniad yw un wyneb rhaglenadwy. Mae tapiau, URLau, profion a chipiau sgrin sgriptiedig i gyd yn cydgyfeirio ar yr un cod. Caiff pob newid ei olrhain gyda’r cyflwr a adawodd ar ei ôl. Mae’r erthygl hon yn enwi’r eirfa lawn, yn dangos y pedwar pwynt mynediad, ac yn onest am y costau.
Mae dwy erthygl gynharach yn gosod y sylfaen i hon. Cyfrifodd yr erthygl ar arwynebedd ddegau o ddarlleniadau gan olygon o gyflwr cydlynydd a rennir (cost onest cyflwr byrhoedlog y mae sawl sgrin yn poeni amdano). Dangosodd yr erthygl ar y datrysydd sy’n ymwybodol o gyflwr sut y gall URLau gyrraedd y cyflwr hwnnw heb ollwng cyd-destun i’r gramadeg.
Mae’r darn hwn yn enwi’r cyflwr ei hun, o safbwynt yr ap: geirfa gaeedig o newidiadau wedi’u henwi.
Pan fydd “llywio” yn golygu mwy na gwthio a chyflwyno, lle mae’r gweddill yn byw? Chwiliad yn y rhestr sgyrsiau. Hidlydd ar y mewnflwch. Targed sgrôl sy’n gorfod aros i’r rhestr fodoli. Troshaen avatar. Nid “gwthio sgrin newydd” yw’r un ohonynt. Darnau o gyflwr arsylladwy y mae golygon yn eu darllen yw pob un.
Mae’r rhan fwyaf o systemau llywio yn stopio wrth ffin y sgrin ac yn gwasgaru gosodwyr ad-hoc trwy weddill y cod. Mae Iris yn cymryd y safbwynt arall. Rhestr drefnedig o gamau yw cynllun llywio. Mae pob cam naill ai’n strwythurol (gwthio, popio, cyflwyno, cau) neu’n effaith (newid cyflwr wedi’i enwi y mae’r ap yn ei ddatgan ac yn ei weithredu mewn un lle). Mae Iris yn gwarantu’r drefn, pwyntiau canslo rhwng camau, a beth sy’n digwydd pan fydd URL mwy newydd yn cyrraedd. Nid oes angen iddo wybod beth mae’r effeithiau’n ei olygu.
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 ar eu gorau o’u cyfuno â symudiadau strwythurol. Ar gyfer botmessages://avatar/aria-7/expanded, mae Iris yn cynhyrchu un cynllun trefnedig:
case .avatarExpanded(let id):
return [
.effect(.dismissAttachmentExpansion),
.effect(.clearInThreadSearch),
.effect(.clearListFilter),
.nav(.popToRoot),
.nav(.dismissSheet),
.effect(.scrollToAvatarRow(id)),
.effect(.expandAvatar(id))
]
Clirio’r sgrin, ailosod y pentwr, yna sgrolio ac ehangu. Mae Iris yn rhedeg y rhestr gam wrth gam, gan wirio am ganslo rhwng pob un. Dim ond un newid ar y tro y mae’r cam cymhwyso yn ei weld.
Cyn ysgrifennu, mae’r cam cymhwyso yn gwneud tri pheth:
[cancelled] a stopio.[skipped].Mae pob ysgrifeniad yn cyffwrdd ag un briodwedd arsylladwy. Mae’r golygon yn diweddaru, ac mae’r trywydd yn recordio’r ciplun ôl-gyflwr. Mae profion ac asiantau yn dibynnu ar hyn: mae’r trywydd yn dweud beth ddigwyddodd mewn gwirionedd, nid dim ond bod yr URL wedi’i “drin”.
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, ar ganol 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.