My Journey in Code for GovTech 2023: Building Glific Mobile
Hello Everyone, I’m Aman Kumar, a pre-final year undergraduate student at IIT Kharagpur, and I’m excited to share the culmination of my journey as a Code for GovTech (C4GT) contributor in 2023 at Glific. In this blog post, I will recount my experiences as a contributor at Glific and provide valuable insights into our project for future contributors. If you’re curious about the start of my journey, you can also take a look at my previous blog.
Project in a Nutshell: Empowering NGOs with Glific Mobile
My project at Glific focused on the development of the Glific Mobile application, a vital subset of Glific with a primary goal of simplifying and expediting NGO interactions with their communities. Glific Mobile offers a comprehensive set of chat functionalities, including using flows for gathering responses, sending quick messages, utilizing high-standard message templates, interactive messaging, and various other chat options.
The technologies we employed to build this application included: React Native Expo for rapid cross-platform (iOS/Android) app development, Apollo Client & GraphQL, Axios for API handling, Jest for rigorous app component testing, and TypeScript for robust compile-time checks. Initially, some of these technologies were foreign to me, but with the continuous support of my mentors, I quickly became proficient.
The Development Journey of Glific Mobile
Our journey began in July, with the primary goal of implementing key app features like chatting user authentication and in-app notification. There were already the Figma design of the app designed by the product team, thanks to them having for such an extensive app design which help me build the app screens and components efficiently. We initiated the development by defining app navigation using React Navigation, setting dynamic constants for scalability across various screen resolutions, and completing other essential setups. See the below folder structure image for more details.
Through continuous refinement and improvement, we settled on an architecture that best suited our needs and proceeded to build the app accordingly.
During this phase, I had the privilege of meeting incredible individuals working on Glific. Participating in a 4-day sprint allowed me to connect with end-users, providing invaluable insights into the product’s impact on solving social issues. This experience was truly inspiring and motivated me to push forward.
Collaborating within a team, brainstorming solutions, bringing innovative ideas to the table, and having fun together was a powerful lesson in the effectiveness of teamwork. I’m grateful for mentors like Shamoon, who provided unwavering support throughout the journey. Shamoon’s patience and understanding were instrumental in overcoming challenges and doubts. Collaborating with Vishal and Nishant was also a fantastic experience, leading to better updates, features, bug fixes, and optimal implementations. As a result of our collaborative efforts, guided by mentorship and feedback, we successfully launched app versions 0.1 and 0.2 in the second week of July and August, respectively.
In the second half of the project, we focused on implementing features such as sending templates, interactive messages, using flows for responses, media support, and various chat subscriptions. This phase was both exciting and educational, as I worked on improving app performance, particularly in handling over 1000+ message subscriptions in fractions of a second. I conducted research and implemented various methods for optimizing data caching in Apollo, employed debouncing and batch update method to prevent frequent UI updates to enhance performance, and performed performance profiling to identify bottlenecks in poor performance due to many transactions. After thorough analysis of time and space complexity, I arrived at a method that significantly improved app performance. This optimization was an eye-opening experience, emphasizing the importance of efficient data handling in software development. Shamoon’s insights during our discussions were invaluable in refining our approach.
Wrapping Up: A Rewarding Journey
As the C4GT program draws to a close, I am profoundly thankful to Shamoon, Lobo, Akhilesh sir, and the entire team for providing me with this rewarding experience. I’ve not only learned numerous technical skills but have also boosted my confidence for my future professional life. I’m genuinely excited about the impact our work will have on the NGO community and the people it serves.
Thank you for joining me on this adventure, and I hope my experience serves as a source of inspiration for future C4GT contributors.