• 27/11/2022
  • Homesmartjp
  • 1037 Views

Kuinka Slack modernisoi mobiilisovellustaan ​​ja teki siitä täyden Swiftin iOS:ssä

Linkki alkuperäiseen (lähetyspäivämäärä: 2022/01/15)

Slack on onnistunut modernisoimaan iOS- ja Android-sovelluksensa ja omaksumaan uudet suunnittelutrendit. Tämä mahdollistaa muun muassa täydellisen siirtymisen Swift iOS:lle.

Kun Slackin insinöörit päättivät uudistaa iOS- ja Android-sovelluksiaan, heidän oli kohdattava kahden useita vuosia vanhan koodikannan todellisuus. Sen koodikanta on kasvanut orgaanisesti ja kerryttänyt ajan myötä merkittäviä teknisiä velkoja. Kun hylkäsimme idean täydellisestä uudelleenkirjoituksesta ja koodin uudelleenkäytöstä eri alustoilla, päätimme tehdä täydellisen refaktoroinnin.

Tämän tuloksen saavuttamiseksi tiimi asetti kolme eri tavoitetta. Näitä ovat koodikannan vakauttaminen teknisen velan poistamiseksi, sovellusten modulointi erillisiksi komponenteiksi sekä suunnittelun ja teknologiapinon modernisointi.

aH mobile app Slack modernisoi ja otti täyden Swiftin iOS:llä</p><p>Vakautus oli ensimmäinen askel. Esimerkiksi iOS:ssä kirjoitimme uudelleen loput sovelluksesta, joka oli vielä kirjoitettu Objective-C:llä, Swiftissä. Slackin insinöörien mukaan Swift- ja Objective-C-koodin samanaikainen käyttö samassa projektissa hidastaa kääntämistä ja vaikuttaa suorituskykyyn. Yhteentoimivuusvaatimukset estivät kuitenkin uusien Swift-kieliominaisuuksien käyttöönoton.</p><p>Lisäksi meidän piti kirjoittaa uudelleen koodi, joka pääsi suoraan Core Dataan, jotta voisimme käyttää omaa Core Data-pohjaista pysyvyyskehysämme. Tämä parantaa suorituskykyä ja vakautta. Samoin kaikki verkkotoiminnot on kirjoitettu uudelleen käyttämään yhteenliittämiskehystä.</p><p>Androidissa suurin osa työstä kohdistui useiden verkko- ja tietokantakäyttöön käytettyjen monoliittien jakamiseen. Jälkimmäinen ottaa käyttöön SQLDelightin ja siirtää kaikki olemassa olevat SQLite-kyselyt. Lisäksi Slack-tiimi otti käyttöön arkiston mallin. Tämä helpottaa suorituskyvyn parantamista tukemalla älykkäämpää välimuistia.</p><p>Vakautusvaiheen avainelementti oli edistymisen seuranta käyttämällä selkeitä mittareita, jotka liittyvät kuhunkin yllä olevaan tavoitteeseen. Esimerkiksi seuratakseen siirtymistä Objective-C:stä Swiftiin työryhmä käytti komentosarjaa jäljellä olevien Objective-C-tiedostojen määrän laskemiseen. Myös vanhentuneiden luokkanimien ja metodien nimien laskeminen auttoi minua selvittämään loppumatkan tavoitteeni saavuttamiseen.</p><p>Kuten aiemmin mainittiin, modularisoinnin tarkoituksena on erottaa monia komponentteja kahdesta olemassa olevasta monoliitista. Tämä pyrkimys vähensi keskinäisiä riippuvuuksia ja rakennusaikoja, jotka kasvoivat koodikannan mukana. Mutta suuri tekijä on ollut yksittäisten tiimien kyky työskennellä itsenäisemmin.</p><p>Slack-insinöörit ovat tarjonneet paljon enemmän taustaa ja yksityiskohtia projektin vakautusvaiheesta kuin tässä voidaan tiivistää. Älä siis missaa alkuperäistä viestiä saadaksesi koko kuvan.</p><h2 id=Tietoja kirjoittajasta

Sergio De Simone

Lisää vähemmän