In the last few years the smartphone as a new phenomenon appeared in the world of computer science and it quickly became a major hit. Some people say the success of smartphones can be associated with a lot of different factors. Personally, I think the main reason why smartphones became the dominant technological gadget during the last decade is that there are millions of mobile applications available and users are able to customize their phone’s feature set by installing applications.
But applications do not grow on trees, people have to create them. That is why a new industry was born to serve smartphones with new applications.
In my thesis, I explored one of the biggest challenges of mobile application development, cross-platform or multiplatform development and the issues with it.
There are basically two leading players in the smartphone operating system business: Google with its Android and Apple with its iOS.
If a developer wants to be successful, she/he better release her/his application on both platforms and possibly at the same time.
The issue is that development for these systems is very different. A developer almost certainly must use a different development environment with distinct programming language and if that is not enough the two platforms operate with different design languages and paradigms as well.
This way a developer has to do twice the work to create the same application for the two most popular smartphone platforms, and in the future the developer must maintain two applications, update them separately and fix bugs in both. In the process of sustaining two applications for two platforms the developer does almost twice the work in the long run.
This is not a new problem of course, and many people have come up with several possible solutions for it. That is why there are a bunch of cross-platform development software for developers that enable an easier creation of applications for the most popular systems.
During this semester, my task was to create a public transport helper application for iOS using native methods, a supporting server application and an application using a cross-platform tool with similar functionality to the native to show the challenges of cross-platform application development.
My thesis consists of six chapters. After the first introduction chapter, in the second chapter I examine three contrasting cross-platform development tools: Xamarin (including Xamarin.Forms), React Native and a quite fresh participant, Scade. During this I compare them and I reveal my motivations behind choosing Xamarin.Forms for my task. In the third chapter I show the basic structure of my server application and in the fourth chapter I unfold the functionality of the client application. The fifth chapter contains the thought process behind the implementation, the comparison and the testing of the native iOS application and the Xamarin.Forms cross-platform application. Finally, in the sixth chapter I summarize my learnings about my task and show some future improvement ideas for the application and the server.