top of page

Week 8 – Debugging Breakthrough & Laying the Foundation for iCue’s Mobile App

This week’s session by Sir Roshan focused on coding and debugging, which could not have been more relevant given the issues I was tackling in iCue. Debugging follows a structured process: reproducing the bug, locating the issue, identifying the root cause, implementing a fix, and testing the solution. I followed this exact approach when I encountered a recurring memory error in my system. Through careful debugging and analysis, I pinpointed the issue to inefficient memory handling and implemented a circular buffering technique to resolve it. This ensured that shot data could be transmitted and stored in Firebase without overwhelming the buffer, making the system more stable and efficient.

We also explored different debugging techniques, including brute force, backtracking, forward analysis, cause elimination, static analysis, dynamic analysis, collaborative debugging, and logging and tracing. In my case, I primarily relied on logging and tracing to monitor the execution flow and identify where memory issues were occurring. This approach helped in narrowing down the problem and testing solutions systematically.

ree

Events: Empowering Innovation & Leadership

This week was packed with exciting events, starting with Digital Alchemy: Transforming Ideas into Scalable Ventures, which I had the pleasure of hosting and organizing. This event was particularly special because it marked the official launch of the Youth Startup Program Club, where I am a founding member and advisor. It was inspiring to see entrepreneurs coming together to talk about how they turned their ideas into successful businesses. The event fueled my motivation to take iCue beyond a project and shape it into a successful business venture. The program itself is a testament to empowering youth like me to become founders and entrepreneurs.

Additionally, we celebrated International Women's Day, where I had the privilege of being a speaker as a Student Council Member. I highlighted how MDX LENS and all student-led societies play a role in promoting gender equality and creating an inclusive university environment. It was an honor to contribute to such an important discussion.



Project Progress: Mobile App Development & UI Foundation

While debugging took a significant portion of my time this week, I was also able to make progress on the mobile application for iCue. Initially, I had planned to develop the app using Unity, but after further research, I decided to switch to React Native with TypeScript. This decision was based on several advantages:

  • Cross-Platform Development: React Native allows for seamless development on both iOS and Android without requiring a MacBook for iOS compatibility, which was a limitation I faced with Unity.

  • Optimized for Mobile UI: Unlike Unity, which is more suited for game development and desktop applications, React Native provides a more fluid and native mobile experience, making it a better fit for iCue’s application.

  • Faster Development Cycle: React Native’s component-based structure allows for quicker iterations and better scalability as new features are added.

With the new tech stack finalized, I started working on setting up the core screens and navigation of the app.

Core Screens & Navigation

Building a strong foundation is key to any great application, and that’s exactly what I am focusing on with iCue. The initial layout ensures a clean, intuitive UI, setting the stage for further development and integration with the hardware system.


Sign-In & Sign-Up Screens

The first step into iCue begins with an accessible login experience. Users can sign in using their email and password, with authentication powered by Firebase Authentication. The Sign-Up screen follows a smooth onboarding process, allowing new users to register with essential details such as their name, email, and password. This authentication system is already functional and seamlessly connects to Firebase.

Landing Page & Dashboard

Once signed in, users arrive at the iCue Dashboard, which will serve as the central hub for their training progress. Currently, I have completed the landing page UI, which provides an overview of the app’s features. The dashboard will eventually incorporate real-time shot analysis and personalized feedback based on the data collected from the ESP32 and MPU-6050 sensors. There will also be a chatbot page where users can ask general queries about billiards or their shots. There will also be a profile page that will have all the previous shot data of the user along with their details.

Quiz Page

To enhance user engagement, I started working on a quiz page that will prompt users with billiards-related questions after each training session. This feature aims to reinforce theoretical knowledge alongside practical training. While the UI has been implemented, the quiz responses are not yet connected to Firebase. Integrating this functionality is a priority for the coming weeks.

A Clean Approach

Each screen is built as an independent component, following best practices in React Native development. This modular approach ensures:

✅ Scalability: Future features can be added without breaking existing functionality.

✅ Efficiency: Optimized performance through reusable components.

✅ Maintainability: Clear structure for debugging and future enhancements.

Responsive Layouts for a Seamless Experience

While iCue is focused solely on mobile development, the UI is designed for a smooth and adaptive experience:

📱 Optimized for mobile screens: Ensures consistent performance across different smartphone sizes.

📱 Smooth interactions: Implemented using SafeAreaView, KeyboardAvoidingView, and ScrollView for an intuitive user experience.

Reflection & Looking Ahead

This week was a turning point in both debugging the hardware system and making key decisions for the mobile application. Resolving the memory issue with circular buffering was a significant milestone, ensuring stable shot data collection and transmission.

The switch to React Native was another critical step, aligning iCue’s development with a framework that is more suited for mobile applications. Now that the foundational UI is in place, my next focus will be on integrating the quiz responses with Firebase, refining the dashboard, and ensuring seamless data exchange between the hardware and app.

The journey ahead is exciting, and with each challenge overcome, iCue moves closer to becoming a polished, innovative billiards training tool! 🚀

Comments


bottom of page