Google Summer Of Code (GSoC) — My experience #2 — midterm evaluations @ XMPP standards foundation

Vaidik D
3 min readJul 31, 2024

--

Intro 👋 :

Hey coders and readers! I am Vaidik GSoC contributor in XMPP standards foundation.

Midterm evaluations of GSoC are officially over. Every contributor in every organization, now will be taking off with second half of program, while meeting their deadlines. As mentioned in my last blog, I’ll play my part now and through this blog will convey my experience of GSoC, I’ll keep it engaging by using lot of analogies and emojis. :)

Midterm Evaluations: A Milestone 🎯

Midterm evaluations are a crucial part of GSoC. They help in assessing the progress of contributors and ensure that everything is on track. For me, this was an opportunity to reflect on what I have accomplished so far and plan the next steps for my project.

Regarding the experience, its just few simple questions from both Mentor (@tmolitor) and contributor (me). If you are meeting deadlines, then no need to worry!

My mid-term work : Monal Onboarding 🎨

Part 1: Implementing Modern Monal Onboarding

One of the primary goals of my GSoC project was to implement a modern onboarding process for Monal, an XMPP client for Apple users. Onboarding is a vital part of any application as it’s the first interaction users have with the app. A smooth and engaging onboarding process can significantly improve user retention.

Here are some key features I worked on:

  • User-Friendly Design: Ensuring the onboarding screens are intuitive and visually appealing.
  • Interactive Tutorials: Adding step-by-step guides to help new users understand the core features of Monal.
  • Privacy and Security: Informing users about Monal’s privacy policies and security measures during onboarding and options to interact with them.

The transition from Objective-C to SwiftUI was both challenging and rewarding. SwiftUI offers a more streamlined and declarative way to build user interfaces, which made the process of designing the onboarding screens much more efficient. (lesson: i am not a big fan of Obj C)

Challenges and Learnings 📚

The journey so far has been filled with both challenges and learnings. Here are a few highlights:

  • Balancing Between Swift and Objective-C: Working with a codebase that uses both Swift and Objective-C required a deep understanding of both languages and seamless integration between them.
  • Time Management: Juggling between development and communication has taught me the importance of effective time management.
  • Community Engagement: Collaborating with the Monal community and other contributors was a fantastic learning experience. I gained insights into best practices, coding standards, and open-source collaboration and also how open-source organizations exactly work with no HR department ;)

Looking Ahead: Media Gallery 🌟

As I move into the second half of GSoC, I am focused on developing a Media Gallery for Monal. This new feature will allow users to easily view and manage media files which are sent and received within the chat. Basically users will be able to see in contact details all the files they have sent or received so far. This entire thing will be in SwiftUI aligning with the goal of Monal to migrate Obj C codebase to Swift.

Final Thoughts 💭

GSoC has been a transformative experience so far. It has not only enhanced my technical skills but also taught me the importance of community and collaboration in open-source projects. I’m looking forward to the next phase and can’t wait to share more updates with you all.

Stay tuned for more blog posts where I’ll dive deeper into the technical aspects of my project and share tips on how to get started with GSoC.

Again as I said in my previous blog post. If you want to contribute to Monal, you don’t have to be a GSoC contributor just go here , and start looking for issues you can solve and do the work! If you want help then maintainers of Monal are active!

My socials are linked, feel free to approach me for any info!

Again, for more details, you are welcome to visit my GitHub or LinkedIn account.

Thanks for reading:)

--

--