Inspiration

The inspiration comes from my two toddlers. They love to draw and colour. My 5 years old daughter always asks me for very specific new colouring figures she wants to draw. At first, I searched images on Google, but then I realized it was better to generate them using Al. That was the turning point. I realize there was an opportunity to develop something not only enjoyable and usable for my kids but also for others! And so, I started creating Ask2Color.

What it does

The main purpose of Ask2Color is easily create customized images ready for colouring by our kids. You just must ask for something, and the app will create an outline image with no colors. So, the kids can colour them as they want. You can do this inside the app using different colouring patterns or alternatively, print the image and colour them in the traditional way.

How we built it

We built it using Kotlin Multiplatform to develop the app for multiple platforms, in this case, Android and iOS. We leveraged AI tools like Cursor and AI image generation for the app’s design. While we had the concept, we needed a beautiful design, so we iterated until we achieved the result we wanted. We also improved the app by using Shipathon sponsors like OneSignal for push notifications, RevenueCat for in-app purchases, and ElevenLabs for the music. All of this is to provide the best experience we can.

Challenges we ran into

One of my biggest challenges, was the design. Despite my years of experience developing Android and multiplatform applications using technologies like Flutter and Compose Multiplatform, I always collaborated with a team of designers supporting me. For this project, I did all the design by myself. Here, Al played an especially key role. The concept was truly clear, and my experience from previous projects gave me the ability to choose the right UI/UX between results.

Other, more technical challenges involved using Swift code from Kotlin for specific platform implementations that I could not achieved with just the expect/actual and iOSMain approach. I did not want to rely on multiplatform libraries that would limit the control over the app. I managed to overcome this by using interfaces and dependency injection with Koin.

Security was also particularly important, especially in apps which uses third-party APIs. One of the biggest challenges was to avoid exposing the API key at all costs. To address this, App Check with Play Integrity and App Attest were used along with Google Cloud Functions to validate the app signature and prevent any use of the API outside that scope.

I also had to limit the amount of image generation per user to avoid excessive costs from misuse of the app. so, I built a small Firestore database and optimized requests which helps keeping costs low as we scale.

Accomplishments that we're proud of

We are proud of the result, but especially about the design because it offers what we were trying to communicate: a simple but enjoyable app for kids that keeps them company as they explore their artistic side and imagination.

What we learned

Above all the technical stuff you always learn in projects like this, we learned that everything is possible if you have a clear goal and the consistency to achieve it. The secret is to keep going, overcoming challenges day by day. No matter how tough it gets, you can always find ways to overcome your flaws and grow stronger if you genuinely want to. It’s a journey of persistence, patience, and believing in yourself makes all the difference.

What's next for Ask2Color - Drawing for kids

We want to integrate into the app more customization options, parental controls, and improvements to the colouring feature. Our plan is to keep enhancing the app based on user feedback and analytics data. We want users to keep coming back and enjoying our app.

Built With

Share this project:

Updates