Zhaoqing (Andrew) Li


Porting Mobile App Functionality across Platforms

Google is developing a new operating system (OS) for mobile apps called Fuchsia and this OS is the candidate for replacing the Android OS in the near future. To take full advantage of Fuchsia, Android developers will need to migrate their apps to the new OS. One way to migrate existing apps to the new OS is to migrate their apps so that they can be developed through the Flutter framework. To perform the migration task, developers need to re-design and re-implement portions of their apps.
   
In this project, we investigated how developers migrate their apps as a first step in building automated tools for aiding this time-consuming and error-prone task. Specifically, we focused on comparing how GUI is written for native Android applications and Flutter applications and if the migration requires implementing new methods. We selected three github repositories which are transforming their applications from native android to flutter based on their version control history, and analyzed the elements in the android layout files before the transformation, and corresponding dart files after migrating to flutter. We then find the matching widgets in flutter for each layout file from the native codebase, build, run and check if the two versions of the application have the same GUI elements, and compare the underlying logic from native activity files and dart classes to understand how developers change their app logic. We concluded the study by reporting statistics related to the migration task.

Video file