← Dolennu dwfn

English Cymraeg

Astudiaeth achos ·

Drafft wedi’i baratoi o un URL

Async Digital Ltd Caerdydd, DU

Crynodeb

Mae’r rhan fwyaf o ddolenni dwfn yn agor sgrin ac yn stopio. Mae’r astudiaeth achos hon, sy’n cloi cyfres Deep Link Kit, yn dilyn un URL heibio’r pwynt hwnnw: o lansiad oer i ddrafft cyfansoddi sydd eisoes wedi’i deipio, yn eistedd o dan ddalen templedi ddwy haen i lawr, gyda’r templed a ddewiswyd wedi’i amlygu a dim cyflwr llwytho yn unman rhwng y ddau. Mae dau URL sy’n rasio am yr un wyneb yn datrys i un enillydd ar yr amlygiad a chorff y drafft fel ei gilydd, yr un cytundeb ysgrifennwr-olaf-yn-ennill sy’n llywodraethu pob wyneb rasio arall yn y pecyn. Y mecanwaith yw un achos effaith y mae ei gymhwyso yn amlygu’r rhes ac yn dewis y templed ar yr un pryd, felly un datganiad case yw cost y dyfnder yn hytrach na llwybr llywio cyfochrog. Y gost yw digwyddiad trywydd cyfansawdd, trosglwyddiad canol-hedfan gweladwy o dan rasys, a phorth bodolaeth adeg dosrannu sy’n gorfod methu’n gaeedig cyn i unrhyw ran ohono gael rhedeg.

Nid y cynllun URL yw pwynt dolen ddofn. Y pwynt yw y gall unrhyw beth sy’n gallu tanio un (sgript, Shortcut, system bell, LLM yn gyrru’r ffôn) gyflwyno cyflwr sydd eisoes ar ganol ei olygu, yn barod i’r defnyddiwr, mewn un alwad. Nid canlyniad chwilio. Nid dolen ddi-gyd-destun i sgrin. Drafft sydd eisoes wedi’i deipio, yn eistedd yn y lle iawn, yn barod i’w adolygu a’i anfon.


§1·Safon

Drafft yw’r safon, nid drws

Tyfodd dolennu dwfn fel ffordd o ganfod llwybr. Roedd URL yn cynrychioli lle yn yr ap, a holl rwymedigaeth yr ap oedd mynd â chi yno. Agor y sgrin iawn, dewis y tab iawn efallai, gorffen. Problem y defnyddiwr oedd beth bynnag a ddigwyddai nesaf.

Mae awtomeiddio yn newid beth mae’r galwr ei eisiau. Sgript yn llwyfannu demo, Shortcut wedi’i wifro i drefn ddyddiol, asiant yn gyrru’r ffôn ar ran rhywun: nid oes yr un ohonynt eisiau drws. Maent eisiau trosglwyddo cyd-destun gorffenedig, tasg sydd eisoes ar ei hanner, fel mai penderfyniad yw cyffyrddiad cyntaf y person, nid chwilio. Mae’r cwestiwn defnyddiol yn peidio â bod yn “a all URL agor y sgrin gyfansoddi?” ac yn dod yn “a all URL adael drafft ynddi?”

Mae Deep Link Kit wedi’i adeiladu fel mai “gall” yw’r ateb i’r ail gwestiwn, heb ildio dim o’r ddisgyblaeth y mae gweddill y gyfres hon yn ei disgrifio. Mae’r ymddygiad rasio isod yn pwyso ar y gwarantau a fesurwyd yn erthygl y prawf straen; y dyfnder y mae’r darn hwn yn ei ychwanegu yw’r hyn sy’n gwneud y gwarantau hynny’n werth eu cael. Po bellaf y caniateir i URL gyrraedd heibio’r drws ffrynt, y mwyaf sy’n gorfod bod yn wir am y bensaernïaeth sy’n ei gario.

§2·Dilyniant

Pum curiad o lansiad oer

Mae’r honiad ar ei hawsaf i’w ddangos. Un URL, wedi’i danio at ap nad yw’n rhedeg:

botmessages://compose/bot/design/templates/design-feedback

Mae’r ap yn lansio’n oer ac yn ei ddatrys yn bum curiad, wedi’u cymhwyso mewn trefn fel un symudiad di-dor:

  1. Gwthio rhagolwg y bot ar stac llywio’r cyfansoddi.
  2. Esmwytho safle dalen y rhagolwg o .medium i .large, gan wneud lle i gyflwr cyfansoddi gweithredol.
  3. Cyflwyno’r ddalen templedi dros y rhagolwg.
  4. Amlygu rhes y templed a enwyd, gyda sgrolio animeiddiedig sy’n ei chanoli.
  5. Paratoi’r drafft oddi tano gyda chorff y templed hwnnw, wedi’i adael yn weladwy uwchben ymyl y ddalen.

Y recordiad isod yw defnyddiwr demo’r pecyn, wedi’i lansio’n oer gan yr URL uchod. Mae’r rhes a ddewiswyd yn eistedd wedi’i hamlygu yn y ddalen, ac mae’r drafft a baratôdd (“Could you take a pass on the latest mocks…”) yn sbecian uwchben y ddalen, eisoes wedi’i deipio. Mae’r datrysiad yn chwarae fel un pas animeiddio o tua 200 milieiliad. Dim cyflwr llwytho, dim ail dap, ac nid yw’r defnyddiwr wedi cyffwrdd â’r sgrin.

Ffig 1 Un URL, lansiad oer. Mae’r rhagolwg yn gwthio, y safle’n esmwytho, y ddalen templedi’n cyflwyno, y rhes yn amlygu, ac mae’r drafft uwch ei phen eisoes wedi’i baratoi.
§3·Rasys

Dau URL, un enillydd, ar y ddau wyneb

Mae drafft wedi’i baratoi yn haeddu’r un craffu ag unrhyw wyneb arall y gall URL ei gyffwrdd. Mae erthygl gyntaf y gyfres yn rhoi prawf straen ar beth sy’n digwydd pan fydd URLau’n cyrraedd yn gyflymach nag y gall yr UI animeiddio; y fersiwn fer yw bod URLau sy’n rasio yn cywasgu i’r ysgrifennwr olaf yn ennill, gyda chanslo cydweithredol a dim cyflwr hanner-gymhwysedig ar ôl. Mae’r paratoi cyfansoddi yn ymuno â’r cytundeb hwnnw yn hytrach na negodi ei gytundeb ei hun. Taniwch ddau URL templed yn olynol:

botmessages://compose/bot/design/templates/release-notes
botmessages://compose/bot/design/templates/hero-copy-review

Mae’r cyntaf yn cyrraedd cyn belled â sgrolio ei res i’r golwg. Yng nghanol yr animeiddiad mae’r ail yn ei ganslo, yn ail-redeg yr un llif gyda’i dempled ei hun, ac yn glanio. Mae’r ddau wyneb yn adlewyrchu’r enillydd newydd: mae’r rhes wedi’i hamlygu a’r drafft rhannol weladwy uwchben y ddalen yn cytuno ynghylch pa URL a enillodd. Y cytundeb hwnnw yw’r pwynt. Mae’r amlygiad a chorff y drafft yn cael eu paratoi gan un effaith, felly nid oes ffenestr lle mae’r rhes yn enwi un templed a’r drafft yn dal un arall.

Ffig 2 Dau URL yn rasio am yr un drafft. Mae’r ail yn canslo’r cyntaf yng nghanol y sgrolio ac yn ennill yr amlygiad a chorff y drafft fel ei gilydd.
§4·Cynllun

Un achos effaith yw’r paratoi

Y tu mewn i’r ap sy’n defnyddio’r pecyn, mae’r llif sy’n berchen ar yr wyneb cyfansoddi yn mapio’r bwriad hwn i ddilyniant wedi’i dynnu o’r un set gaeedig o weithrediadau y mae pob pwynt mynediad arall yn ei defnyddio. Nid oedd angen math newydd o lywio i gyrraedd drafft wedi’i baratoi ddwy haen o ddalennau i lawr. Un achos effaith newydd oedd ei angen:

case .openBotPreviewTemplate(let pid, let tid):
    return [
        .nav(.popToRoot),
        .effect(.clearTemplateHighlight),
        .nav(.dismissSheet),
        .nav(.push(.botPreview(pid))),
        .nav(.present(.templates(pid))),
        .effect(.highlightTemplate(tid))
    ]

A chymhwyso’r effaith, sy’n gwneud dau beth yn hytrach nag un:

case .highlightTemplate(let id):
    highlightedTemplateID = id
    if let template = DemoData.template(id: id) {
        selectTemplate(template)
    }

Mae dewis y templed yn ei osod yn weithredol ac yn rhag-lenwi’r drafft. Mae’r defnyddiwr yn gweld y rhes wedi’i hamlygu yn gyntaf am fod y ddalen templedi ar y brig; mae cau’r ddalen yn datgelu wyneb cyfansoddi a oedd yn barod cyn i’r defnyddiwr edrych. Mae dyfnder y canlyniad wedi’i gyfansoddi’n gyfan gwbl o weithrediadau yr oedd y dosbarthwr eisoes yn gwybod sut i’w trefnu, eu canslo, a’u hailchwarae.

Rhybudd

Cyplu yw’r paratoi cyfansawdd, ac mae’n ymddangos mewn tri lle. Mae’r trywydd yn cofnodi un digwyddiad lle digwyddodd dau beth, felly mae prawf sy’n gwirio’r amlygiad yn gwirio’r drafft yn dawel hefyd; os bydd angen i’r ddau symud yn annibynnol ryw ddydd, bydd yr achos hwn yn hollti. O dan ras mae’r cyplu’n weladwy: mae sgrolio’r templed cyntaf yn dechrau cyn i’r ail URL ennill, felly mae defnyddiwr sy’n gwylio’n ofalus yn gweld trosglwyddiad canol-hedfan yn hytrach na thoriad glân. A pho ddyfnaf y caniateir i URL gyrraedd, y mwyaf y mae’n rhaid i’r porth bodolaeth adeg dosrannu ei warantu. Rhaid i ddrafft wedi’i baratoi yn erbyn templed nad yw’n bodoli fethu’n gaeedig adeg dosrannu, cyn i’r un o’r pum curiad redeg, oherwydd byddai dilyniant sy’n hanner-gymhwyso yn gadael y ddalen ar agor dros ddrafft na chafodd erioed ei lenwi.

§5·Cyfres

Beth mae un alwad yn ei drosglwyddo

Dyma ddarn olaf y gyfres. Mae gan y pedwar honiad arall (y rasys, yr ôl troed, y datrys ymwybodol o gyflwr, a’r wyneb mewnbwn) erthygl yr un, ac mae tudalen y gyfres yn dal y map.

Y patrwm y maent yn ei greu gyda’i gilydd yw’r un y dechreuodd y dudalen hon ag ef. Galwad i mewn i’r ap yw URL, a mesur y bensaernïaeth y tu ôl iddi yw’r hyn y caniateir i’r alwad honno ei drosglwyddo. Yma mae’n trosglwyddo drafft sydd eisoes wedi’i deipio, ddwy ddalen i lawr, yn aros am benderfyniad dynol. Y sgrin a agorodd oedd y peth lleiaf.