6. 6
Motivation
(Almost) every mobile application has to be available
on Android & iOS
Market Share (2023) [4]
Android 70,79%
iOS 28,44%
App Store turnover almost 2x compared to Play Store
[5]
Mattias Rauter, BSc
Graz, 26. September 2023
8. 8
Challenges in Porting Mobile Applications
Fundamental Different Approaches and Goals
Android
Linux based
different hardware manufacturers
as open as possible
iOS
MacOS (OS X) based (BSD UNIX kernel)
hard- and software from Apple
very restrictive user-centred UI/UX focus
Mattias Rauter, BSc
Graz, 26. September 2023
9. 9
Challenges in Porting Mobile Applications
Access Rights for Apps
Android
’all-or-nothing’ approach
for a long time standard in Android
installed apps had all requested permissions
no restriction handling
iOS
’ask if needed’ approach
ask for every single permission separately
handle restrictions
Mattias Rauter, BSc
Graz, 26. September 2023
10. 10
Challenges in Porting Mobile Applications
Background Tasks
Android
apps can be ’active’ in the background
iOS
very limited task-based background-activities
Mattias Rauter, BSc
Graz, 26. September 2023
11. 11
Challenges in Porting Mobile Applications
UI/UX Guidlines
Android
Material Design
iOS
Human Interface Guidlines
Mattias Rauter, BSc
Graz, 26. September 2023
12. 12
Challenges in Porting Mobile Applications
’Back’ Actions in Android
Mattias Rauter, BSc
Graz, 26. September 2023
13. 13
Challenges in Porting Mobile Applications
’Back’ Actions in iOS
Mattias Rauter, BSc
Graz, 26. September 2023
16. 16
Porting Automatically
Kotlin/Native [6]
Kotlin preferred language for Android since 2019
compile code in binaries (instead of JVM-bytecode)
can be used in iOS apps
business logic vs. user interface
hard to debug/maintain
Mattias Rauter, BSc
Graz, 26. September 2023
17. 17
Porting Automatically
’Kotlift’ - Valentin Slawicek [7]
translate Kotlin code into Swift
only subset of features supported
Kotlin v1.0.1 (current: v1.8.21)
Swift v2.2 (current: v5.8)
discontinued by developer
not suitable for productive use-cases
Mattias Rauter, BSc
Graz, 26. September 2023
18. 18
Porting Automatically
’Porty’ - Xiaochao Fan and Kenny Wong [8]
semi-automatically UI and event-handler porting
XML-based layouts
no business logic
adapted LYCIA parses Android layout
J2ObjC translates the Java code to Objective-C code
no Kotlin or Swift support
Mattias Rauter, BSc
Graz, 26. September 2023
20. 20
Porting Manually
Definition
’Reprogramming of existing app for another platform’
Analysis of the current state
Requirement engineering
Implementation
Mattias Rauter, BSc
Graz, 26. September 2023
21. 21
Porting Manually
Schoolstart Screening App Project [9]
Federal Ministry of Education, Science and Research
of Austria
Standardisation of the school start process
University of Vienna
Karl-Franzens-University of Graz
Technical University of Graz
child-friendly and intuitive design
iPad version needed, not yet started
hard deadline: September 2019
Decision: ’Porting Manually’
Mattias Rauter, BSc
Graz, 26. September 2023
22. 22
Porting Manually
Phase 1: Analysis of the Current State
Meetings with project team
Study Documentation
Read API specifications
Inspect current Android app
Mattias Rauter, BSc
Graz, 26. September 2023
23. 23
Porting Manually
Phase 2: Requirements Engineering
Scrum
Create ’User Stories’
Coordinate with Android Team
Projectplan - define Roadmap
Mattias Rauter, BSc
Graz, 26. September 2023
25. 25
Porting Manually
Phase 3: Implementation
Implementing User Stories
Deadline was met
Tests in September 2019 on iPads in schools
Mattias Rauter, BSc
Graz, 26. September 2023
26. 26
Porting Manually vs. Automatically
Porting Manually Porting Automatically
The newest state-of-the-
art frameworks
Limitations regarding the
used source
Accurate estimations of
necessary tasks
Very hard to estimate the
effort needed
iOS-platform specific
functions/patterns
The ’Android-platform-
way’ is used
UI/UX guidelines for iOS-
platform
Android-platform guideli-
nes are transferred
No dependencies on
third-party tools
Dependent on third-party
tools
Mattias Rauter, BSc
Graz, 26. September 2023
31. 31
Results & Conclusion
Conclusion
Porting is very complex
Fundamental differences of operating systems
Fully automatically porting not yet possible
Android and iOS become more similar
AI or better cross-platform approaches might help in
the future
Manually porting is still the only way for high quality
results
Mattias Rauter, BSc
Graz, 26. September 2023
33. 33
References
[1] L Ceci. Google Play Store: number of apps 2023
— Statista. url:
https://www.statista.com/statistics/266210/number-of-
available-applications-in-the-google-play-store/
(visited on 03/19/2023)
[2] David Curry. App Store Data (2023) - Business of
Apps. url:
https://www.businessofapps.com/data/app-stores/
(visited on 03/19/2023)
[3] L Ceci. Annual number of mobile app downloads
worldwide 2022 — Statista. url:
https://www.statista.com/statistics/271644/worldwide-
free-and-paid-mobile-app-store-downloads/ (visited
on 03/19/2023)
Mattias Rauter, BSc
Graz, 26. September 2023
34. 34
References
[4] Global mobile OS market share 2022 — Statista.
url: https : / / www .
statista.com/statistics/272698/global-market-share-
held-by- mobile-operating-systems-since-2009/
(visited on 05/21/2023)
[5] L Rabe. Apps
- Umsatz nach App Store weltweit 2021 — Statista. url:
https://de.statista.com/statistik/daten/studie/802760/umfrage
des-umsatzes-mit-apps-nach-app-store-weltweit/
(visited on 03/19/2023)
[6] Kotlin Native — Kotlin Documentation. url:
https://kotlinlang.org/ docs/native-overview.html
(visited on 07/17/2020)
Mattias Rauter, BSc
Graz, 26. September 2023
35. 35
References
[7] studoverse/Kotlift: Kotlift is the first
source-to-source language transpiler from Kotlin to
Swift. url: https://github.com/studoverse/Kotlift (visited
on 05/31/2023)
[8] Xiaochao Fan and Kenny Wong. “Migrating user
interfaces in native mobile applications: Android to
iOS.” In: Proceedings - International Conference on
Mobile Software Engineering and Systems,
MOBILESoft 2016 (2016), pp. 210–213. doi:
10.1145/2897073.2897101
[9] Paul Krassnig. “School Start Screening Tool.” 2021
Mattias Rauter, BSc
Graz, 26. September 2023