Fitness-sovelluksen rakentaminen React Native -sovelluksen avulla

Olen innokas käyttäjän, kuten Freeletics ja Headspace, sovellusten käyttäjä, joka kohdistuu kehon ja mielen kuntoon. Nämä sovellukset ovat vaikuttaneet paljon henkilökohtaiseen kasvuun ja nyt ollessani sapattihahmoa, halusin nähdä, voisinko auttaa jotain takaisin.

Kiinnostuin kuntosta matkustellessani Piilaaksoon töihin. Olin hereillä varhain suihkutusviiveen seurauksena, menin ainoalle avoimelle paikalle Palo Altossa kello 17.00– päiväntasaus. Siellä olin uskomattoman joukon ihmisten kanssa, mukaan lukien Tim Cook, joka valmistautui seuraavaan päivään kiistatta parhaalla mahdollisella tavalla. Se inspiroi minua seuraamaan samoja aamu rutiineja kuin he tekivät, riippumatta siitä, kuinka aikaisin. Takaisin Zürichissä aloin liittyä moniin ryhmäkuntokursseihin. Pian huomasin, että vaikka ihmiset pitivät yhdessä hienoa harjoittelua, aistiyhteisö oli melko alhainen jaetun kokemuksen voimakkuudesta huolimatta. Voidaanko tätä parantaa tekniikalla? Tein yhteistyötä Athleticflow-nimisen kunto-ohjelman perustajien kanssa kokeen rakentamiseksi. Sovelluksemme sai juuri sovelluskaupan hyväksynnän, ja haluan kertoa tässä tarinassa kokemukseni sen rakentamisesta.

Kuvakaappaukset Athleticflow-sovelluksesta

Tarkasteltaessa kuinka vähän sinun täytyy rakentaa mobiilisovellus tänään, se on ylenmääräinen. Markkinoille pääsyn este ei ole koskaan ollut niin matala. React Native on oppinut kerran, kirjoita minne tahansa -lähestymistavan ansiosta käyttöliittymäyhteisö voi rakentaa ammattimaisesti viimeisteltyjä sovelluksia käytännössä vain JavaScript- ja CSS-taitojen avulla. Se myös pienensi dramaattisesti kehityskuilua iOS: n ja Androidin välillä. Uutuudet ohjelmointikielissä, kuten ES6, Typescript ja Flow, ovat mahdollistaneet kehittäjien kirjoittaa skaalattavia JS-koodeja alhaisilla ylläpitokustannuksilla. Lisäksi backend palvelutuotteina, kuten Firebase, tarjoaa kaikki tarvittavat ominaisuudet mobiililaitteille, joiden käynnistyshinta on nolla dollaria: tietokanta, tallennustila, push-ilmoitukset, väliohjelmisto ja analytiikka. Näiden tuotteiden innovaatiot ovat nopeita ja huomattavia: React-sovelluksen kirjoittaminen on nykyään paljon yksinkertaisempaa kuin ennen kuin aloitin. Kirsikka kakun päällä? Yhteisö ja välineet näiden tekniikoiden ympärillä ovat mahtavia. Vaikea kuvitella parempaa aikaa ja paikka ohjelmistojen kirjoittamista varten.

Yksi totuuden lähde

Sovelluskehityksestä tulee kustannustehokasta, ja huomiotta jätetty tekniikka on todennäköisesti staattinen kirjoittaminen. Jos sinulla ei ole kokemusta siitä, se voi olla nopeampi muotoilla jotain ilman sitä. Kuitenkin heti, kun alat tosiasiallisesti rakentaa jotain, tarvitset niitä ehdottomasti: Mitä enemmän painostat tyyppitarkistinta, sitä parempi.

Atleettisen virtauksen suhteen suunnittelin sovelluksen datamallin käyttämällä Firebase-pulttikieltä. Määritelmätiedostoa käytetään tietokannan turvasääntöjen ja validoinnin luomiseen. Sitä käytetään myös luomaan TypeScript-koodi, jota käytetään sekä React Native -puolella että väliohjelmistossa.

Yhtä määritelmätiedostoa käytetään pitämään järjestelmän kaikki osat yhdenmukaisina.

Yhden totuuden lähteen pitäminen estää sovelluksen osia kehittymästä erikseen: Firebase-tietokannalla ei voi olla tyyppimääritelmää, joka eroaa React Native -sovelluksesta ja päinvastoin. Tietomallisi voidaan uudistaa nopeasti ja luottavaisesti: Tyyppitarkastaja ilmoittaa sinulle, jos olet tehnyt virheen.

JavaScriptille on saatavana kaksi tyyppistä tarkistinta: TypeScript ja Flow. Käytin TypeScriptiä yksinkertaisesti siksi, että minulla oli jo kokemusta siitä. Jos olet uusi kummankin tyyppisissä järjestelmissä, voisin suositella Flowa, koska se toimii laatikosta luo-reagoi-natiivi-sovelluksen kanssa. Minulla ei ole kuitenkaan vielä paljon kokemusta siitä, joten ole varovainen tästä neuvosta.

Kattilalevy

Käytä luoda-reagoida-natiivi-sovellusta käynnistääksesi projektisi. Sen avulla voit suorittaa “Hello World” iOS / Android-laitteellasi muutamassa minuutissa. Luotu projekti käyttää expoa. Tämä tarkoittaa, että sinun ei tarvitse asentaa XCode- tai Android Studio -sovellusta sovelluksesi kehittämiseen. Voit testata sen iOS-laitteella ostamatta kehittäjätiliä Applelta. Kehityssovellus voidaan jakaa beetatestajille erittäin helposti linkin tai QR-koodin kautta. Kun siirryt pidemmälle sovelluksesi kehittämisessä, saatat haluta “irrottaa” projektin saadaksesi oman rakennetun asennuksen. Tämä on hyödyllistä, jos joudut kirjoittamaan esimerkiksi mukautetun alkuperäiskoodin.

Expo-projektin elinkaari

Expo kattaa kuitenkin paljon matkapuhelinkäyttötapauksia, ja on mahdollista julkaista täysimittainen sovellus Apple App Store -kaupassa ja Google Play -kaupassa “irrottamatta”.

Viimeisenä, mutta ei vähäisimpänä, Expo antaa sinun päivittää sovelluksesi heti ilman App Store -päivitystä samalla tavalla kuin HTML-sivun päivitys. Jos projekti on “irrotettu”, voit käyttää Microsoft CodePushia saavuttamaan saman vaikutuksen. Viime viikolla ystävä ilmoitti minulle kirjoitusvirheestä Athleticflow-sovelluksessa. Työnsin korjauksen hallitsemaan ja jatkuvan integraatiojärjestelmäni puolestaan ​​työnsi päivityksen avoimesti kaikille käyttäjille. Tämän tyyppiset saumattomat päivitykset ovat aina olleet olemassa verkossa, ja ne ovat nyt mahdollisia mobiilisovelluksissa. Kaiken kaikkiaan minusta nämä uudet käytännöt matkaviestinnän kehityksessä ovat melko häiritseviä.

Luo-reagoi-alkuperäinen-sovellus antaa laatikosta kattilalevyn kirjoittaa yksikkö- ja komponenttitestit. Kokonaistestausta varten ei ole vielä olemassa tosiasiallista standardia. Appium on suosittu ja uusi Detox-niminen projekti näyttää olevan erittäin lupaava (vain iOS tällä hetkellä).

Sosiaalinen ensin

Monet sovellukset on rakennettu sosiaalisen kerroksen ympärille. Sosiaaliset kerrokset tarjoavat käyttäjälle uskomattoman houkuttelevia kokemuksia. Integrointi olemassa oleviin alustoihin, kuten Facebook tai Instagram, on kuitenkin hyvin rajallinen. Lukuun ottamatta sisäänkirjautumista ja jaettuja toimintoja, siellä ei ole paljon tekeillä. Tämän ansiosta kehittäjille ei jää paljon valinnanvaraa, vaan keksitä pyörä uudelleen sovelluksensa moniin sosiaalisiin käyttötapauksiin. Käyttötapoihin sisältyy seuraajia, syötteitä, tykkäyksiä ja kommentteja. Nämä eivät ole vähäpätöisiä toteuttaa. Esimerkiksi jotain niin yksinkertaista kuin kuvaluettelon selaaminen voi todella olla monimutkainen toteuttaa. Lisäksi käyttäjilläsi on erittäin korkeat odotukset. Facebook, Instagram ja muut sosiaaliset sovellukset asettavat erittäin vahvan vertailuarvon, jonka et todennäköisesti ylitä. Sosiaalisen median raidalle näyttää olevan tarve. Facebook- ja Instagram-kaltaiset alustat tarjoavat vain vähän kehittäjille.

Uusi aamunkoitto

React Native -sovelluksen “oppia kirjoittakaa minne tahansa” -lähestymistapansa avulla voidaan hyödyntää web-kehitystaitoja rakentaaksesi todella alkuperäisen sovelluksen kattilalevyltä sovelluskaupan julkaisuun. Se voidaan tehdä koskettamatta XCodea tai Android Studioa. Sovelluksesi päivitysmalli on nyt yhtä läpinäkyvä kuin päivitykset verkossa. Tyyppitarkistimella voit kirjoittaa erittäin ylläpidettävän kooditietokannan ja vähentää kehityskuluja dramaattisesti. Lopuksi, backend as Service Services -tuotteet, kuten Firebase, tarjoavat kaikki tarvittavat ominaisuudet matkaviestininfrastruktuurille. Käynnistyshinnan hinta on nolla dollaria. Se on uusi päivä, se on uusi aamuna matkapuhelimen kehittämiselle.

Pidin päiväkirjaa matkastani läpi React Native -kehityksen läpi useiden tarinoiden kautta. Jotkut rakennetuista komponenteista ovat avoimen lähdekoodin tuotteita, ja muut olen tällä hetkellä pakkaamassa avaimet käteen -ratkaisuina mobiiliprojekteihin.