Architecture
WonderSync implements the Model-View-ViewModel (MVVM) architecture to ensure clean separation of concerns. The ViewModel acts as a mediator between the View and Model, managing data logic and application state. Live data binding enables the View to observe ViewModel changes while focusing solely on UI presentation.
Challenges & Solutions
Real-Time Data Synchronization
Challenge: Ensuring data remained synchronized across multiple users in real-time.
Solution: Implemented Firebase's real-time database with proper data listeners and sync mechanisms.
Code Base Scalability
Challenge: Creating an expandable codebase while continuously adding new features.
Solution: Implemented SOLID principles, including Single Responsibility Principle for adapters and Dependency Inversion for ViewModels.
Sprint Management
Challenge: Meeting sprint deadlines while maintaining code quality.
Solution: Adopted daily scrums and utilized Jira for project management, improving team communication and task tracking.
Key Learnings
The project highlighted the importance of effective team communication through daily scrums and project management tools. We learned valuable lessons about architecture design, the benefits of SOLID principles in maintaining clean code, and the importance of proper sprint planning in meeting deadlines while maintaining code quality.