Esittelyssä AsyncDisplayKit:iOS: n sujuville ja reagoiville sovelluksille-Facebook Engineering

Oletko koskaan huomannut sovellusten änkyttävän vierittäessäsi ja pyyhkiessäsi? Naputteli nappia ja katseli koko käyttöliittymän jäätymistä, kun se yrittää reagoida? iOS on tunnettu käyttäjäkokemuksen laatupalkistaan, mutta sen kohtaaminen voi olla vaikeaa etenkin vanhemmissa iPhoneissa ja iPadeissa. Kiillotettu sovellukset käyttävät tyypillisesti pala palalta suorituskyvyn optimointeja pitämään rajapinnat nestettä, hoitoon eri lähteistä hitautta kuin erilaisia ongelmia. Tänään olemme open-sourcing AsyncDisplayKit, kehys, joka tarjoaa kokonaisvaltaisen tavan pitää sovellus sujuva ja reagoiva.

asyncdisplaykit

iOS — käyttöliittymän toiminnallisuus — piirtäminen näytölle, kosketustapahtumiin vastaaminen, fysiikan simulaatioiden suorittaminen inertiavieritystä varten ja niin edelleen-on pääkierteen pullonkaulana. Jotta sovellus säilyttää kultakannan 60 kuvaa sekunnissa, se voi käyttää pääkierrettä vain millisekunnit kerrallaan. Mutta tärkein-säiettä-vain UIKit näkymät kuten Uimageview ja UITextView voi kestää kymmeniä tai satoja millisekunteja koko ja näyttää itse. Ja vaikka pääkierre on dekoodaus kuvan tai renderöinti tekstiä, se ei voi vastata käyttäjän syöttää tai pysyä vieritys.

koska stock UIKit-näkymien käyttäminen voi aiheuttaa hidastuksia, performant-sovelluksissa on yleensä kiertoteitä yksittäisille UIKit-komponenteille. Sen sijaan, että Uimageview tekisi itse kallista työtä, he saattavat manuaalisesti käyttää Ydingrafiikkaa JPEG-ja PNG-paineiden purkamiseen taustalla; sen sijaan, että he käyttäisivät UITextView ‘ tä, he saattavat työskennellä suoraan Ydintekstin kanssa. Tämä lähestymistapa on tehokas, mutta sillä on rajoituksia — yksilölliset kiertotavat yleensä käyttäytyvät eri tavalla, mikä vaikeuttaa perustella korkeamman tason parannuksia ja sovelluskäyttäytymistä.

asyncdisplaykit pohjautuu Uikitiin ja Core Animationiin tarjotakseen yleisen ratkaisun. Sen kuva-ja tekstinäkymiä voidaan käyttää estämättä pääkierrettä, tarjoten pudotusratkaisun tähän yhteiseen tehtävään. Vielä tärkeämpää, se tukee asynkronisesti luoda ja tehdä monimutkaisia näkymä hierarkiat samalla tavalla.

solmun esittely

asyncdisplaykit-solmu on säikeetön abstraktio Uiviewin yllä, joka on puolestaan abstraktio Kalayerin yllä:

Jos osaat käyttää näkymiä, osaat käyttää solmuja. Asimagenodea ja Tekstipakkauksella toimivaa Astextnodea voidaan käyttää aivan kuten niiden UIKit-vastineita. Toisin kuin UIKit-katseluhierarkiat, kokonaisten ruutujen sisällön solmuhierarkiat voidaan alustaa ja asettaa taustaketjuille — ja solmujen avulla multicore-suorittimia on helppo hyödyntää kaikissa nykyisissä iOS-laitteissa.

solmuilla on monia etuja näkymiin nähden. Suorituskykyä voi usein parantaa esimerkiksi korvaamalla näkymät kerroksilla. Valitettavasti tämä vaatii työlästä näkymäpohjaisen koodin siirtämistä eri sovellusliittymiin ja aiheuttaa väistämättä taantumia. Solmujen kanssa se on yhtä helppoa kuin:

Jos joudut myöhemmin vaihtamaan kerroksista takaisin näkymiin, se on yhden rivin vaihto! Tämä on mullistava ero. Sen sijaan, että olisit varovainen kerros-tukema UI koodi, voit käyttää sitä oletuksena, kun et tarvitse touch käsittely.

aloittaminen

AsyncDisplayKit on kestävä ja käyttövalmis sovelluksissasi. Rakensimme sen alun perin mahdollistamaan paperin erittäin tuntoaistillisen käyttöliittymän, ja se kulkee käsi kädessä Pop-animaatiomoottorin kanssa, mutta se on yhtä tehokas UIKit-dynamiikan ja tavanomaisten sovellusmallien kanssa. Emme malta odottaa, mitä luot sillä.

tutustu oppaaseen tai NSLondon talkiin saadaksesi lisätietoja. AsyncDisplayKit on saatavilla GitHubissa.

Vastaa

Sähköpostiosoitettasi ei julkaista.