Expo-sovelluskehyksen hyödyntäminen React Native -sovelluskehityksessä
Saarikoski, Anna (2025)
Saarikoski, Anna
2025
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202505048920
https://urn.fi/URN:NBN:fi:amk-202505048920
Tiivistelmä
Tämä opinnäytetyö käsittelee Expo-sovelluskehyksen hyödyntämistä React Native sovelluskehityksessä. Opinnäytetyön tavoitteena oli selvittää miten Expo sovelluskehys helpottaa React Native -sovelluskehitystä, mitä rajoituksia sen käyttäminen tuo ja miten Expo-sovelluskehys ja puhdas React Native -sovelluskehitys eroavat toisistaan. Työssä perehdyttiin React Conf 2024 -tapahtumassa esitettyihin väittämiin Expo-sovelluskehyksen tuomista helpotuksista sovelluskehityksen eri vaiheissa. Aihe oli ajankohtainen, sillä kesällä 2024 React Nativen kehittäjä Meta antoi suosituksen, jonka mukaan uudet React Native -sovellukset tulisi jatkossa kehittää Expo-sovelluskehystä hyödyntäen.
Opinnäytetyön teoreettisessa osassa käsitellään ohjelmisto- web- ja mobiilisovelluksen peruskäsitteet, teknologiat, sekä historialliset käännekohdat ja tapahtumat. Lisäksi teoriaosassa käydään läpi Reactin peruskäsitteet ja teknologiat, sillä React Native perustuu Reactiin. Teoriaosuudessa laajemmin käsitellään React Native ja Expo. Expon osalta syvennytään sen tarjoamiin palveluihin, työkaluihin ja konsepteihin, joiden avulla sovelluskehitystä pyritään helpottamaan ja joita käytetään työn toiminnallisessa osassa. Lisäksi teoriaosassa käsitellään sovelluksen rakentamisen vaiheet molempien kehitystapojen osalta.
Opinnäytetyön tyyppi on toiminnallinen. Tutkimusta varten kehitettiin yksinkertainen Kodin tarpeet -sovellus, joka kehitettiin kaksi kertaa: puhtaasti React Nativella ja Expo-sovelluskehystä hyödyntäen. Tutkimus toteutettiin tapaustutkimuksena, jossa kahta edellä mainittua sovelluksen kehitystapaa vertailtiin keskenään vaihe kerrallaan. Aineisto kerättiin dokumentoimalla sovelluskehityksen vaiheet ruutukaappauksilla ja kirjoittamalla kehittäjän kokemukset työhön vaihe kerrallaan kehityksen edetessä. Ongelmatilanteet ja niiden selvitys sekä ajallinen kesto on nostettu esiin vertailun tukemiseksi.
Johtopäätöksenä voidaan todeta, että Expo-sovelluskehys helpottaa jokaista sovelluskehityksen vaihetta. Expon tarjoamat palvelut, työkalut ja konseptit ovat helppokäyttöisiä ja dokumentaatio on pääosin laadukasta ja monipuolista. Expo-sovelluskehyksen avulla ajankäyttö tehostuu, sillä ongelmien selvittämisen sijaan aikaa voidaan käyttää varsinaiseen kehitystyöhön. Expon käyttämiseen liittyviä rajoitteita tunnistettiin teoriaosassa muutamia, mutta opinnäytetyössä rajoitteita ei kohdattu. Puhtaaseen React Nativeen verrattuna, Expo-sovelluskehyksen avulla sovelluksen kehittäminen oli nopeampaa ja helpompaa, ja se tarjosi kehittäjälle valmiina enemmän ominaisuuksia, joita sovelluksessa usein käytetään. Tulevaisuudessa Expo-sovellusten suosio tulee oletettavasti kasvamaan merkittävästi, sillä Metan suosituksen lisäksi Expo-sovelluskehys tarjoaa miellyttävämmän kehityskokemuksen. This thesis is about utilizing Expo framework in React Native application development. The goal of this thesis was to resolve how Expo framework eases React Native application development, what limitations does it bring to development and what are the differences in application development done with bare React Native and Expo framework. In this thesis, the focus was on the different stages of application development and how using Expo framework eases them, which were presented in React Conf 2024. The topic was very current, since in the summer 2024 Meta gave a recommendation that from now on, all new React Native applications should be developed with Expo framework.
The theoretical part of this thesis includes the basics of software, web, and mobile development, the most popular technologies, and historical events and turning points of each. Theoretical part also considers the basics of React since React Native is based on it. React Native and Expo are covered more deeply. In Expo, the focus is on the services, tools and concepts it provides to make application development easier, and the same tools are used in the practical part of this thesis. The final part of the theory includes the stages of application development for both ways to develop.
The type of this thesis is practical. To make comprehensive research, a simple application “Household needs” was developed with both, bare React Native and Expo framework. The type of this research was a case study, in which both earlier mentioned ways to develop were compared, one stage of application development at the time. The material for the case study was collected by documenting the stages with screen shots and writing the developer experiences to the thesis on stage at the time when proceeding in development. Problems and errors and the time spent resolving them have been documented to support the comparison.
As a conclusion, it can be said that Expo framework eases all the stages in application development. The services, tools and concepts are easy to use, and the documentation is mainly of high quality and versatile. The Expo framework improves time management, because time can be used to develop instead of solving issues. Only a few limitations were found in the theoretical part, but they did not concern the practical part of this thesis. Compared to bare React Native, it was faster and easier to develop an application with Expo framework. Expo framework also gave more commonly used features to developer automatically. In the future, the popularity of Expo applications will most likely grow significantly, and not just because it is Meta’s recommended way to develop, but because it truly serves more pleasant developer experience.
Opinnäytetyön teoreettisessa osassa käsitellään ohjelmisto- web- ja mobiilisovelluksen peruskäsitteet, teknologiat, sekä historialliset käännekohdat ja tapahtumat. Lisäksi teoriaosassa käydään läpi Reactin peruskäsitteet ja teknologiat, sillä React Native perustuu Reactiin. Teoriaosuudessa laajemmin käsitellään React Native ja Expo. Expon osalta syvennytään sen tarjoamiin palveluihin, työkaluihin ja konsepteihin, joiden avulla sovelluskehitystä pyritään helpottamaan ja joita käytetään työn toiminnallisessa osassa. Lisäksi teoriaosassa käsitellään sovelluksen rakentamisen vaiheet molempien kehitystapojen osalta.
Opinnäytetyön tyyppi on toiminnallinen. Tutkimusta varten kehitettiin yksinkertainen Kodin tarpeet -sovellus, joka kehitettiin kaksi kertaa: puhtaasti React Nativella ja Expo-sovelluskehystä hyödyntäen. Tutkimus toteutettiin tapaustutkimuksena, jossa kahta edellä mainittua sovelluksen kehitystapaa vertailtiin keskenään vaihe kerrallaan. Aineisto kerättiin dokumentoimalla sovelluskehityksen vaiheet ruutukaappauksilla ja kirjoittamalla kehittäjän kokemukset työhön vaihe kerrallaan kehityksen edetessä. Ongelmatilanteet ja niiden selvitys sekä ajallinen kesto on nostettu esiin vertailun tukemiseksi.
Johtopäätöksenä voidaan todeta, että Expo-sovelluskehys helpottaa jokaista sovelluskehityksen vaihetta. Expon tarjoamat palvelut, työkalut ja konseptit ovat helppokäyttöisiä ja dokumentaatio on pääosin laadukasta ja monipuolista. Expo-sovelluskehyksen avulla ajankäyttö tehostuu, sillä ongelmien selvittämisen sijaan aikaa voidaan käyttää varsinaiseen kehitystyöhön. Expon käyttämiseen liittyviä rajoitteita tunnistettiin teoriaosassa muutamia, mutta opinnäytetyössä rajoitteita ei kohdattu. Puhtaaseen React Nativeen verrattuna, Expo-sovelluskehyksen avulla sovelluksen kehittäminen oli nopeampaa ja helpompaa, ja se tarjosi kehittäjälle valmiina enemmän ominaisuuksia, joita sovelluksessa usein käytetään. Tulevaisuudessa Expo-sovellusten suosio tulee oletettavasti kasvamaan merkittävästi, sillä Metan suosituksen lisäksi Expo-sovelluskehys tarjoaa miellyttävämmän kehityskokemuksen.
The theoretical part of this thesis includes the basics of software, web, and mobile development, the most popular technologies, and historical events and turning points of each. Theoretical part also considers the basics of React since React Native is based on it. React Native and Expo are covered more deeply. In Expo, the focus is on the services, tools and concepts it provides to make application development easier, and the same tools are used in the practical part of this thesis. The final part of the theory includes the stages of application development for both ways to develop.
The type of this thesis is practical. To make comprehensive research, a simple application “Household needs” was developed with both, bare React Native and Expo framework. The type of this research was a case study, in which both earlier mentioned ways to develop were compared, one stage of application development at the time. The material for the case study was collected by documenting the stages with screen shots and writing the developer experiences to the thesis on stage at the time when proceeding in development. Problems and errors and the time spent resolving them have been documented to support the comparison.
As a conclusion, it can be said that Expo framework eases all the stages in application development. The services, tools and concepts are easy to use, and the documentation is mainly of high quality and versatile. The Expo framework improves time management, because time can be used to develop instead of solving issues. Only a few limitations were found in the theoretical part, but they did not concern the practical part of this thesis. Compared to bare React Native, it was faster and easier to develop an application with Expo framework. Expo framework also gave more commonly used features to developer automatically. In the future, the popularity of Expo applications will most likely grow significantly, and not just because it is Meta’s recommended way to develop, but because it truly serves more pleasant developer experience.