Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Recreating a Native Application in React Native: Feasibility of Using React Native With Bluetooth & Background Processing
Blekinge Institute of Technology.
Blekinge Institute of Technology.
2018 (English)Independent thesis Basic level (degree of Bachelor), 10 credits / 15 HE creditsStudent thesis
Abstract [en]

Developing apps for both Android and iOS has previously necessitated two different code bases in the platforms’ native languages. Creating an app would be a quicker and easier process if they could be written once and run on both platforms, and such solutions have been appearing over the last few years. One of them is React Native, which we will investigate in this paper.

To investigate React Native’s capabilities, we are going to look into the feasibility of porting the Android and iOS versions of an already existing fitness app, developed by a software consulting company. The original app uses Bluetoothfunctionality to record users’ heart-rate during exercise. They want to know if they can switch to React Native and a single code-base for future installments, lessening the workload and making it more maintainable.

In order to find out if it is advisable to recreate the app with React Native we attempt a port of the app, looking at performance, functionality, and the codebase. The code-base investigation focuses on what parts can become completely platform independent and where we need to fill in the gaps with code targeted to a certain platform, and how large our port is in relation to the equivalent code in the original app.

We end up finding that performance is severely worse on iOS, with much higher CPU utilization when the Bluetooth functionality is in use. On Android the difference is noticeable but not quite as big. For functionality we could get everything working with a single code-base except for handling Bluetooth while the app is in the background on Android. The code-base is mostly platform independent, and where it is not this is due to differing Bluetooth implementations for the platforms. It is also larger than either of the original apps, but smaller than the two put together.

Lastly, we conclude that React Native has a largely platform-independent codebase, and for simpler apps where less complex functionality is needed we suspect the code-base can be completely platform-independent. The cause and remedies to iOS performance ought to be further investigated, but React Native is capable for this particular use-case.

Place, publisher, year, edition, pages
2018. , p. 31
Keywords [en]
React Native, iOS, Android, Bluetooth
National Category
Software Engineering
Identifiers
URN: urn:nbn:se:bth-16295OAI: oai:DiVA.org:bth-16295DiVA, id: diva2:1213248
Subject / course
PA1445 Kandidatkurs i Programvaruteknik
Educational program
PAGWE Web Programming
Supervisors
Examiners
Available from: 2018-06-05 Created: 2018-06-04 Last updated: 2018-06-05Bibliographically approved

Open Access in DiVA

BTH2018Lifh(304 kB)1981 downloads
File information
File name FULLTEXT01.pdfFile size 304 kBChecksum SHA-512
b5d45bc405f69668c99b1d31227c47589fe9a3cf89a651f2e64346de3a71512f4b0685701472ce98505d40b83dee2cdcd711fe271283d9d72a89dfe453a9407a
Type fulltextMimetype application/pdf

By organisation
Blekinge Institute of Technology
Software Engineering

Search outside of DiVA

GoogleGoogle Scholar
Total: 1981 downloads
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

urn-nbn

Altmetric score

urn-nbn
Total: 1356 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf