Syftet med denna studie är utforska möjligheterna att återanvända modellkod, skriven i C, över flera plattformar, nämligen iOS, Android och HTML5. Målet är att undersöka kodstorlek och komplexitet vid återanvändning av modellkod skriven i C på plattformarna. Genom en noggrann granskning av tidigare forskning och existerande metoder identifierades lämpliga verktyg och metoder. Det som framkom är att WebAssembly var det rekommenderade verktyget för att koppla C- kod till HTML5. För Android var Java Native Interface (JNI) det mest lämpliga verktyget för att koppla C-kod till Kotlin. Swift, å andra sidan, har inbyggda verktyg för interoperabilitet som möjliggör koppling mellan Swift-kod och C. Därav påvisade resultaten att det är möjligt att återanvända modellkod skriven i C på Android, iOS och HTML5. Dock, för Android krävdes det tillsats av extra kod för att hantera kopplingen mellan Kotlin och C-modellkod. Eftersom dessa språk hanterar datatyper och minneshantering på olika sätt. Inom iOS krävdes inte lika mycket extra kod som på Android för att hantera kopplingen mellan Swift och C eftersom Swift är utvecklat med naturligt stöd för C. I HTML5 behövdes inte lika mycket extra kod som på Swift och Android eftersom Emscripten möjliggjorde automatisk generering av en omvandling från modellkod skriven i C till JavaScript. Detta underlättade utvecklandet av bindningen mellan C-baserad modellkod och HTML5-applikationen. / The purpose of this study was to explore the possibilities of reusing model code, written in C, across multiple platforms, specifically iOS, Android, and HTML5. The objective was to investigate code size and complexity when reusing model code written in C on these platforms. Through a thorough review of previous research and existing methods, suitable tools and methods were identified. It was found that WebAssembly was the recommended tool for linking C code to HTML5. For Android, the Java Native Interface (JNI) was the most appropriate tool for linking C code to Kotlin. Swift, on the other hand, has built-in tools for interoperability that allow for the connection between Swift code and C. The results indicated that it is possible to reuse model code written in C on Android, iOS, and HTML5. For Android, additional code was required to manage the connection between Kotlin and C model code, as these languages handle data types and memory management differently. However, within iOS, there was not needed additional code compared to Android, to manage the linkage between Swift and C. Since Swift is developed with inherent support for C. For HTML5, there was not as much additional code required as in Swift and Android, primarily because Emscripten enabled automatic conversion of model code written in C to JavaScript. This facilitated the development of the binding between C-based model code and the HTML5 application.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:kth-337319 |
Date | January 2023 |
Creators | Demirel, Emre, Chowdhury, Shifat |
Publisher | KTH, Hälsoinformatik och logistik |
Source Sets | DiVA Archive at Upsalla University |
Language | Swedish |
Detected Language | English |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Relation | TRITA-CBH-GRU ; 2023:259 |
Page generated in 0.002 seconds