Return to search

Recreating a Native Application in React Native : Feasibility of Using React Native With Bluetooth & Background Processing

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.

Identiferoai:union.ndltd.org:UPSALLA1/oai:DiVA.org:bth-16295
Date January 2018
CreatorsLifh, Oscar, Lidholm, Petrus
PublisherBlekinge Tekniska Högskola, Blekinge Tekniska Högskola
Source SetsDiVA Archive at Upsalla University
LanguageEnglish
Detected LanguageEnglish
TypeStudent thesis, info:eu-repo/semantics/bachelorThesis, text
Formatapplication/pdf
Rightsinfo:eu-repo/semantics/openAccess

Page generated in 0.002 seconds