iPhonen soveltuvuus reaaliaikaiseen kiihtyvyysanturin datan keräämiseen
Rask, Ida (2024)
Rask, Ida
2024
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-202404237294
https://urn.fi/URN:NBN:fi:amk-202404237294
Tiivistelmä
Opinnäytetyön tavoitteena oli tutkia iPhonen soveltuvuutta reaaliaikaiseen kiihtyvyysanturin datan keräämiseen kehittämällä toimeksiantajan käyttöön kaksi versiota puhelimen omaa kiihtyvyysanturia taustalla nauhoittavasta mobiilisovelluksesta. iOS on käyttöjärjestelmänä hyvinkin itsenäinen ja suunniteltu optimoimaan resurssien käyttöä mahdollisimman hyvän käyttäjäkokemuksen varmistamiseksi. Lisäksi sovelluksen aktiivisuustila vaikuttaa siihen, mitä milläkin hetkellä voidaan tehdä. Toimeksiantaja halusikin siis selvittää, onko iPhonen oman kiihtyvyysanturin nauhoittaminen taustalla ylipäätään mahdollista ja mitä kaikkea pitäisi ottaa huomioon kaupallisen sovelluksen kehittämisessä.
Tutkimusongelmaa lähestyttiin konstruktiivisen tutkimuksen kautta. Oikeastaan ainut keino selvittää, onko iPhonen kiihtyvyysanturin nauhoittaminen taustalla mahdollista, oli kehittää sovellus, jolla testata tätä. Koska konstruktiivinen tutkimus kytkeytyy hyvin vahvasti jo olemassa olevaan teoriaan aiheesta, aloitettiin tutkimus tutustumalla Applen omaan dokumentaatioon siitä, miten iOS käyttöjärjestelmänä toimii, miten sovelluksen aktiivisuustila vaikuttaa sen toimintaan, millaisia taustasuoritustiloja sovellukseen on mahdollista implementoida, millaisia vaihtoehtoja kiihtyvyysanturin nauhoittamiselle on ja mitä sovelluskehyksiä tarvitaan haluttujen toiminnallisuuksien implementoimiseen. Lisäksi tutustuttiin aiempiin tutkimuksiin iPhonen kiihtyvyysanturin tarjoaman datan laadusta, jotta varmistuttiin siitä, että kerättävä data on varmasti luotettavaa.
Haluttujen toiminnallisuuksien kehittäminen aloitettiin pienistä prototyypeistä käyttäen teoriapohjaa hyödyksi. Lopullinen konstruktio toteutettiin osaksi jo olemassa olevaa monialustaiseksi suunniteltua mobiilisovellusta, jonka Android-puoli oli jo kehityksessä. Pääasiallisena työkaluna oli Xcode ja natiivipuolen toiminnallisuuksien implementoimiseen käytettiin Swift-ohjelmointikieltä. Sovellusversioiden toimivuutta testattiin vapaaehtoisista koostuvan testiryhmän avulla.
Molemmat sovellusversiot saatiin toteutettua, mutta ei täysin toimeksiantajan kriteerien mukaisesti. Ongelmia aiheutti käyttöjärjestelmän suorittama optimointi, eivätkä sovellukset pysyneet auki taustalla halutulla tavalla. Tutkimusongelmaa ei siis saatu täysin ratkaistua tässä työssä käytettyjen metodien avulla, ja haluttujen toiminnallisuuksien toteuttaminen vaatii vielä lisää työtä. The objective of this thesis was to study iPhone’s suitability for collecting real-time accelerometer data by developing two versions of a mobile application that records iPhone’s internal accelerometer in the background to the commissioner. iOS, being a highly autonomous operating system, is designed to optimize resource usage for ensuring the best possible user experience. Additionally, the activity state of the application determines what actions can be performed at any given moment. Therefore the commissioner wanted to determine whether recording iPhone's internal accelerometer in the background is possible and what should be considered when developing a commercial application.
The research problem was approached through constructive research methodology. The only way to find out if recording iPhone's accelerometer in the background is possible, was to develop an application to test this. As constructive research is closely aligned with
already existing theory on the subject, the research began by examinating Apple's documentation on how iOS works as an operating system, how the activity state of an application affects its operation, what background execution modes can be used, what kind of options are there for recording the accelerometer, and what frameworks are needed for implementing the desired functionalities. Furthermore, prior studies on the quality of the accelerometer data provided by iPhone were reviewed to ensure the reliability of collected data.
The development of the desired functionalities started with the creation of small prototypes, with the help of the theory base. The final construction was implemented into an existing multiplatform mobile application, where the Android counterpart was already in development. Xcode served as the primary tool, with Swift programming language used for implementing the native side functionalities. The functionality of the application versions was evaluated through testing, using a test group consisting of volunteers.
While both application versions were more or less successfully developed, they did not entirely meet the commissioner’s criteria. Challenges arose due to the operating system's optimization, resulting in applications not remaining active in the background as intended. Consequently, the research problem was not fully resolved using the employed methodologies, indicating the need for further work to implement the desired functionalities.
Tutkimusongelmaa lähestyttiin konstruktiivisen tutkimuksen kautta. Oikeastaan ainut keino selvittää, onko iPhonen kiihtyvyysanturin nauhoittaminen taustalla mahdollista, oli kehittää sovellus, jolla testata tätä. Koska konstruktiivinen tutkimus kytkeytyy hyvin vahvasti jo olemassa olevaan teoriaan aiheesta, aloitettiin tutkimus tutustumalla Applen omaan dokumentaatioon siitä, miten iOS käyttöjärjestelmänä toimii, miten sovelluksen aktiivisuustila vaikuttaa sen toimintaan, millaisia taustasuoritustiloja sovellukseen on mahdollista implementoida, millaisia vaihtoehtoja kiihtyvyysanturin nauhoittamiselle on ja mitä sovelluskehyksiä tarvitaan haluttujen toiminnallisuuksien implementoimiseen. Lisäksi tutustuttiin aiempiin tutkimuksiin iPhonen kiihtyvyysanturin tarjoaman datan laadusta, jotta varmistuttiin siitä, että kerättävä data on varmasti luotettavaa.
Haluttujen toiminnallisuuksien kehittäminen aloitettiin pienistä prototyypeistä käyttäen teoriapohjaa hyödyksi. Lopullinen konstruktio toteutettiin osaksi jo olemassa olevaa monialustaiseksi suunniteltua mobiilisovellusta, jonka Android-puoli oli jo kehityksessä. Pääasiallisena työkaluna oli Xcode ja natiivipuolen toiminnallisuuksien implementoimiseen käytettiin Swift-ohjelmointikieltä. Sovellusversioiden toimivuutta testattiin vapaaehtoisista koostuvan testiryhmän avulla.
Molemmat sovellusversiot saatiin toteutettua, mutta ei täysin toimeksiantajan kriteerien mukaisesti. Ongelmia aiheutti käyttöjärjestelmän suorittama optimointi, eivätkä sovellukset pysyneet auki taustalla halutulla tavalla. Tutkimusongelmaa ei siis saatu täysin ratkaistua tässä työssä käytettyjen metodien avulla, ja haluttujen toiminnallisuuksien toteuttaminen vaatii vielä lisää työtä.
The research problem was approached through constructive research methodology. The only way to find out if recording iPhone's accelerometer in the background is possible, was to develop an application to test this. As constructive research is closely aligned with
already existing theory on the subject, the research began by examinating Apple's documentation on how iOS works as an operating system, how the activity state of an application affects its operation, what background execution modes can be used, what kind of options are there for recording the accelerometer, and what frameworks are needed for implementing the desired functionalities. Furthermore, prior studies on the quality of the accelerometer data provided by iPhone were reviewed to ensure the reliability of collected data.
The development of the desired functionalities started with the creation of small prototypes, with the help of the theory base. The final construction was implemented into an existing multiplatform mobile application, where the Android counterpart was already in development. Xcode served as the primary tool, with Swift programming language used for implementing the native side functionalities. The functionality of the application versions was evaluated through testing, using a test group consisting of volunteers.
While both application versions were more or less successfully developed, they did not entirely meet the commissioner’s criteria. Challenges arose due to the operating system's optimization, resulting in applications not remaining active in the background as intended. Consequently, the research problem was not fully resolved using the employed methodologies, indicating the need for further work to implement the desired functionalities.