Google Summer of Code 2021 Coding period started from 7th June and during these 2 weeks, I spent most of my quality time in making the best possible foundation for the Interactive Book Integeration in Mobile App. 💛
I started out with Material Designs for Interactive Book and then working on API Services and ViewModels. Development of new features/module is tend to be difficult in Mobile App since they have to be tested at each and every iteration and that’s where Flutter and Dart tests comes in handy! My approach of doing development is first by making a failing test case and then implementing the required feature that should pass all the UI, ViewModels and Service Tests. That’s why I prefer Test-Driven Development (TDD). Here’s a quote! ⚡
I find that writing Unit Tests actually increases my programming speed.
All my contributions made during this period are available in
ib branch at CircuitVerse/mobile-app.
Mobile App Designs
In the 1st week, I along with mentors had a lot of enhancements over the Material UI/UX Design for Interactive Book and we finalized a great design which is now implemented in Mobile App. 📱
Here are the commits involved in implementing these designs: 5 Commits
Interactive Book Models
For Interactive Book, we needed few models for serializing API responses from Interactive Book API and some finalized models from Interactive Book Engine.
Here are the commits, they have Tests as well 😋
Let’s look at our CI which runs Tests, Analyzer, Formatter for us!
Interactive Book Services
1. API Service
Interactive Book API Service have 2 use-cases:
2. Interactive Book Engine Service ❤
Interactive Book Engine is the main heart of the integeration and I have started taking baby steps working on it. In the upcoming weeks, this might be one of the focus area to work since we need to parse and present all different kinds of contents like Simulator embeds, Pop Quizes, Table of Contents.
The initial implementation of Interactive Book is currently in review and we are working to add more features and enhancements on it. 👓
Well atleast, the current implementation works perfect for Home page! Since our Tests are mocked from real Home page data, it passes the Tests with flying colors! 🏳🌈
First two weeks of my GSoC 2021 were very productive and engaging. I would urge some more participation from my mentors, peers and community to help the development by giving reviews, feedbacks and suggestions!