Popis: |
Syftet med detta arbete var att undersöka möjligheterna att använda högnivåspråket Swift utanför iOS i webbläsaren och i Android. Detta för att minska mängden kod som skrivs och därmed minska utvecklingstiden för att skapa applikationer för iOS, webbläsaren samt Android. För att hitta lämpliga verktyg som löser frågeställningen har en undersökning av tidigare arbeten och metoder gjorts. Resultatet från undersökningen ledde till användningen av ramverket Tokamak tillsammans med WebAssembly för att återanvända Swift i webbläsaren och verktyget SwiftKotlin för att återanvända Swift i Android. En applikation med designmönstret Model-View-ViewModel (MVVM) skapades i avsikt att testa återanvändbarheten. Resultatet visade att Tokamak tillsammans med WebAssembly möjliggör återanvändning av ursprungliga koden för iOS-applikationen komplett förutom plattformsspecifika funktioner som lokalt sparande och nätverksanrop. SwiftKotlin möjliggör återanvändning av modellklassen i applikationen med små justeringar, medan vymodell och vyklasserna behöver skrivas manuellt. The purpose of this work was to study the possibilities of using the high-level language Swift outside of iOS in the browser and on Android. This is to reduce the amount of code written thus reducing development time to create applications for iOS, browser, and Android. To find suitable tools to solve the problem, a study on previous works and methods has been made. The results of the study led to the use of the framework Tokamak together with WebAssembly to reuse Swift in the browser and the tool SwiftKotlin to reuse Swift on Android. An application using the Model-View-ViewModel (MVVM) design pattern was created with the intention of testing reusability. The results showed that Tokamak with WebAssembly made it possible to use all the code from the original iOS application except platform-specific functions such as local saving and network calls. SwiftKotlin made it possible to reuse the model class with some small adjustments while the viewmodel and view classes must be manually written. |