This thesis compares a native Android application with two different classes of cross-platform applications, an interpreted application developed in React Native and a Progressive Web-Application (PWA). The main contribution of the thesis is a comparison table, placing application features on the y-axis and the evaluated frameworks on the x-axis. This table in conjunction with the cost analysis provide clear framework selection guidance. The evaluated applications were created to evaluate the frameworks' fulfillment of the enumerated features. A user study was performed to learn if there was any discernible difference between the evaluated applications. Qualitative data obtained from a think-aloud in the user study, indicates a slight preference for the PWA, despite a smaller feature set. However, quantitative analysis from a User Experience Questionnaire (UEQ) failed to show any systematic UX performance difference over the evaluated applications. Therefore, it is concluded that cross-platform applications are able to both emulate and even outperform a native experience in some regards, with the added advantage of significantly offsetting both development and maintenance costs. Finally, we recommend using a cross-platform mobile application framework if it provides all the features required by the intended application.
The university timetabling problem is an NP-complete problem which schools all over the world face every semester. The aim of the problem is to schedule sets of events such as lectures and seminars into certain time slots without violating numerous specified constraints. This study aimed to automate this process with the help of simulated annealing and compare the results with a genetic algorithm. The input data sets were inspired by the Royal Institute of Technology in Stockholm. The results showed a great run time difference between the two algorithms where the simulated annealing performed much better. They also showed that even though the simulated annealing algorithm was better during all stages, the genetic algorithm had a much better performance in early stages than it had in latter. This led to the conclusion that a more optimized, hybrid algorithm could be created from the two algorithms provided that the genetic algorithm could benefit from the improvements suggested in previous research.