When I embarked on the journey of building “Closet Conscious,” I knew it was more than just an app—it was a mission to empower people to cherish what they already own and rethink the way they approach fashion. Along the way, I’ve learned important lessons in front-end development that not only shaped the app’s functionality but also reinforced my commitment to creating a seamless, user-centered experience aligned with our sustainable vision.
Here are the key lessons I’ve learned through coding:
1. Internationalization (i18n) from the Start 🌍
At first, “Closet Conscious” was designed with a single language in mind. But as I began to envision the app as a global tool, it became clear that internationalization (i18n) was crucial. Adding i18n later in the process led to complex changes that could have been avoided with early planning.
This experience taught me the importance of separating text strings from logic and using tools like Flutter’s intl package. By regularly testing i18n, I ensured that our message of sustainability could reach users worldwide, no matter what language they speak.
2. Modularization for Better Testing and Scalability 🧩
Just as a well-organized closet makes it easier to find and enjoy your clothes, modularizing the code made Closet Conscious more efficient to test and scale. By keeping the app’s user interface, business logic, and backend distinct, I streamlined development while also preparing for future growth.
Modularization ensured that as the app evolves to meet the needs of our growing community, it remains organized and true to our core values.
3. Color Theming for Consistency and User Experience 🎨
A clear and consistent color theme can enhance user experience by reinforcing visual cues. In Closet Conscious, we use teal for items and purple for outfits, providing users with a subtle reminder of what they are working with.
This small but impactful design choice simplifies the user experience and strengthens our brand identity, much like a cohesive wardrobe simplifies getting dressed in the morning.
4. State Management with Bloc Pattern 📦
Managing the state of the app was like organizing a closet—it was essential to avoid chaos. I started with GetState, but as Closet Conscious grew more complex, I needed a more robust solution. Switching to Bloc brought better modularization, functionality, and testing capabilities. With Bloc, I could ensure a smooth, responsive user experience, avoiding the frustrations of slow responses or duplicate actions.
5. Handling User Behavior with Effective State Management 🚦
Dealing with “rage clicking”—the digital equivalent of impulsive fast fashion purchases—became a priority. By implementing effective state management, I made sure that users couldn’t trigger duplicate requests. Each click needed to count, much like how every fashion purchase should be a thoughtful decision. This approach helped reduce errors and improved the overall user experience.
6. Refactoring and Managing Private Classes 🛠️
Early in development, I kept everything in one file. As the app grew, this approach led to performance bottlenecks and errors. Refactoring to use public classes helped me identify and address these issues. Much like decluttering a closet, refactoring code is essential to keeping things clean and efficient. This process made the app faster and more maintainable, while also uncovering hidden bugs.
7. Dependency Libraries vs. Custom Code ⚖️
Using third-party libraries can save time, but they don’t always provide the perfect fit. I learned that sometimes, crafting custom solutions—like tailoring a bespoke garment—leads to better outcomes. This balance between using dependencies and writing custom code ensured that Closet Conscious met the specific needs of our users, without being bogged down by unnecessary features or complexity.
8. The Struggle to Write Tests 🧪
Writing tests felt like a daunting task, especially under tight deadlines. However, much like building a sustainable wardrobe, it’s about long-term stability. Skipping tests might save time in the short term, but they are essential for ensuring that the app is reliable and scalable. Testing has become a crucial part of my development process, giving me confidence that new features won’t break existing functionality.
Next Article
Crafting the backend of Closet Conscious App
If you want to try Closet Conscious App, feel free to give it a twirl in iOS and Android.
Leave a Reply