Google Summer Of Code (GSoC) — My experience #1 @ XMPP standards foundation
Intro 👋 :
Hey coders and readers! First half of GSoC is almost over. Every contributor in every org, now will be preparing for midterm evaluations, while meeting their deadlines. 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.
What’s GSoC? :
Now very first question must be — “What even is GSoc ?” . So the Official answer is “ Google Summer of Code (GSoC) is an annual program sponsored by Google that offers stipends to university students for working on open-source software projects during the summer. The program aims to introduce students to the world of open-source development, providing them with the opportunity to collaborate with experienced developers and contribute to real-world projects. “
Basically you contribute to codebase of interesting projects and stipend is a plus . It might be stepping stone of your software journey. By giving exposure to open source projects there is a high probability upcoming software engineers will keep contributing to open source.
My Open-Source Org: The XMPP Standards Foundation
During the initial phase of GSoC we have to pick an org/projects, we find interesting enough to contribute. As an iOS developer i went through many of them and finally picked XMPP standards foundation , reason is simple I remember using something related to XMPP in my high school days with my friends as I searched about it more, I got to know about great work they are doing. I’ll give a little info about it -
“ Extensible Messaging and Presence Protocol (XMPP, originally named Jabber) is an open communication protocol designed for instant messaging (IM), presence information, and contact list maintenance. Based on XML (Extensible Markup Language), it enables the near-real-time exchange of structured data between two or more network entities. Designed to be extensible, the protocol offers a multitude of applications beyond traditional IM in the broader realm of message-oriented middleware, including signalling for VoIP, video, file transfer, gaming and other uses. “
That was the official info. Now XMPP, which originally went by the name Jabber, is basically an open-source protocol for things like instant messaging (think chat apps!), keeping track of friends’ online status (who’s available to chat?), and managing your contact list. It’s built on this cool tech called XML and allows for near-instantaneous exchange of information between different devices. XMPP can be used for way more than just chatting — imagine using it for voice calls, video calls, file transfers, even gaming!
Even WhatsApp and Facebook messaging learned from XMPP’s core ideas and built their own closed systems. Think of XMPP as the underlying technology that powers some messaging features you use every day. (More detailed info about exact working of XMPP will be available in later blog posts).
Monal: The XMPP Client for Apple Users
If you want to interact and be part of XMPP community then you need an XMPP client because that's where all the action happens. If you are on Apple systems then Monal is the client which will definitely come up, that’s where my GSoC project comes in!
My work experience @Monal :
My work during GSoC is on Monal client with Thilo Molitor as my mentor, now as i said earlier if you are looking for XMPP client in market for Apple systems. Monal will definitely come up in your search.
My GSoC proposal included Monal client and my GSoC work can be divided into two parts -
- Implementing Modern Monal Onboarding
- Adding Media View Gallery
Monal codebase as of now is in Swift as well as Obj C. I also worked on few re-writes which included Privacy settings and Accounts Edit in upcoming days. Re-write here basically means implementing those parts in Swiftui (Apple’s new framework) which were in Obj C earlier.
For more details, you are welcome to visit my GitHub or LinkedIn account.
My work experience has been really seamless and engaging, if I had to describe in few points. -
- Learning: Of course
- Challenges: (but the good kind!)
- Collaboration: You learn a lot, by seeing others, working on a deployed codebase and especially their git practices.
- Fun: Why not
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 pretty active too !
That’s it for this blog post, i just realized I didn’t use that many emojis 🤔, that will be for next time then. Now, stay tuned for more blog posts where I’ll deep dive into the technical aspects of XMPP and Monal! And how to get started with GSoC.
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.