GSoC 2024 Final Report

MarcelMarcel
4 min read

In this report, I will talk about my experiences during the latter half of my GSoC project, as well as my thoughts on the entire experience. My previous midterm report, where I talk about my experiences in the first half, can be found here. I recommend reading them first, since I will be referencing various things I stated there.

Week 8

After I finished my exams, I had a relatively slow start back into working on my project. Even still, I finished up the button design I had worked on previously and managed to create a new view within the app that opens a radio selection. Here, the user can select a translation language for the language keyboard they're currently using. Through this, I understood better how the SwiftView framework and our app worked behind the scenes.

Week 9

In this week, I tried fixing a broken GitHub action that was giving us trouble on the Scribe-i18n repository. This gave me trouble for weeks, because I couldn't figure out what caused it to act in a strange way. I ended up fixing it in Week 12 with a suggestion from one of my mentors.

I also added rudimentary functionality to the previously mentioned radio selection view, using the UserDefaults system I learned for this feature. Additionally, I prepared for the addition of new translation SQL tables for multiple languages by exploring how translations are queried in the background.

Week 10

During the tenth week, I did a lot of menial tasks like cleaning up the codebase so less unintended errors with the generation of localization files occur, as well as other smaller things that were included in bigger commits. I also reactivated the English keyboard, which had been deactivated because there was no language data for it.

I then started on a new feature, where a Scribe command (e.g. querying conjugations for a verb) gets executed automatically, when a user presses the command with a word highlighted in the text box. There were two different ways to implement this, which we debated in our dev sync the next week.

Week 11

In this week, I mostly waited on my mentor to finish setting up the database tables to use in the translation feature and the English keyboard.

The options we debated for the automatic execution of Scribe commands on a selected word were

  1. Entering the word into the text field for the command

  2. Directly showing the results, if the word had already been entered into the command

We decided quite unanimously on the second option, since it seemed more intuitive, and it seemed to make more sense.

Week 12

Most of my work in the second half was done in this week. First, I changed the behaviour of selecting a Scribe command when a word is highlighted to the agreed upon version. Secondly, I created the conjugation view for the English keyboard, using verb cases that we laid out together with my mentor.

I then refactored the i18n repository to account for the Android version of the app, which had recently gained localization function. During this refactor, I also edited the conversion scripts between our JSON localization files and the iOS localization files to use Python's json package and changed the GitHub workflow mentioned in week 9 for a final time.

The workflow was supposed to execute the mentioned conversion scripts whenever the JSON files were edited, but the conditional was checked using its own workflow job. I changed it to instead use a GitHub action filter that checks if specific files were changed.

Week 13

In the final week, I mostly focused on compiling my work for the GSoC submission, but I also finished up the translation selection feature when the new translation tables were moved in from Scribe-Data. There is an issue as of writing this where only one SQL database can be open per keyboard, which means translations aren't carried out properly. This issue is out of the scope of GSoC however, so for the purposes of this review, the feature is essentially complete.

Conclusion

GSoC has been a lot of fun to work through, and I really appreciate the work all of my mentors did. I learned a lot about both my own limits and technologies like Swift and Python. As a result of the program, I feel a lot more confident in my own abilities and that I can handle working full-time.

0
Subscribe to my newsletter

Read articles from Marcel directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Marcel
Marcel