Inspiration

I keep rats myself, and every rat owner always watches their rats' weight and diet. Usually people do it in Excel tables or just in notes. Rats don't live long and get sick quite often, and they are always kept in groups. I wanted to create an app that would help our rat community. Regular pet apps are almost always focused on cats and dogs and don't work for rats. On Android there is nothing like this at all, and on iOS there are only a couple of recently made junk AI apps that just push you to subscribe. It might seem like the niche is too small, but actually there are hundreds of thousands of people in the world who have 3–4 rats on average.

What it does

The app helps you create a profile for each rat and group them by cages (it helps to reflect reality). Introducing a new rat has many stages. You can't just put it in with the others because they will fight, so the app helps you follow this process step by step and tells you what to do next. You can also track a rat's weight and analyze its trend with an AI model. There is a special AI assistant that can help with questions about rats, and a set of guidelines on rat care.

How I built it

I started with an Android project in Kotlin, and at the same time launched an Instagram page. When I asked people which platform they were waiting for, the answers were 60/40 in favor of iOS. From that moment I migrated to Kotlin Multiplatform and made a list of MVP features, and as soon as I finished them on Android, I switched to the UI for iOS. I have experience in native development for both platforms and in Xamarin Native, and the "write the logic once and the UI twice" approach is very familiar to me, that's why I chose it. Another goal was to not use AI images that immediately stand out and get annoying. I wanted a natural design drawn by a human that doesn't get boring, which is why Bulochka is so minimalistic, and her animation is done with standard native tools in Kotlin and Swift.

Monetization

About monetization, it was really important for me to keep all the features free. I didn't want to annoy people with ads popping up all the time, so I came up with Rat Coins. You watch an ad only when you actually need some coins and want to get something from the app, like AI weight analysis, and it's always up to you when to do it. I'm really proud of how it turned out, because people don't get annoyed and keep coming back to the app. And if someone wants everything unlimited, there's a subscription for that.

Challenges I ran into

I had to give up paid subscriptions on Android and add them only on iOS, because Google doesn't support creating a merchant account in my country. I found this out only after I had already implemented it in the code. Another challenge was porting Bulochka's animation to iOS, since I originally wrote all of it on Canvas for Android. The solution was to first write a detailed skill for an AI agent, which I then used for that. It worked pretty well.

Not everything went the way I planned. I wanted to release the app on the Samsung Galaxy Store too, and I even already did the optimization for foldables. But then it turned out I don't have a DUNS number, so I have to postpone the Galaxy Store release for a month, until I get the number. Foldables

Accomplishments that I'm proud of

I'm proud that in just one month I managed to grow an audience from 0 to 1.5K followers on Instagram. People were really interested, suggested ideas for the app and kept asking when the release was coming, and that was very motivating. I'm also proud of how Bulochka's animation and design turned out, and how the AI assistant works. She is based on our real rat, and it's a big memory of her that will stay forever. Another thing is that the app is available in 9 languages: English, German, Spanish, French, Dutch, Polish, Portuguese, Russian and Ukrainian.

What I learned

I had never published an app or used RevenueCat before. Subscriptions and payments always seemed very scary to me, and I didn't know how to do them. After this shipathon I realized that creating a product that real people will use, and even earning something from it, is totally realistic. Setting everything up is not that hard, and shipping to production is doable. I'm very grateful for the motivation the shipathon gave me. I think without it this one would have faded away like my other pet projects.

Testing

In the age of AI, when you can automate anything and could ask for UI tests in a couple of prompts, the biggest benefit I got was from manual testing. Thanks to my wife, who tested every screen for several days and gave me feedback. It was exactly this testing that made me move a lot of settings into Firebase Remote Config, like Rat Coin prices and AI chat limits. No automated testing would have shown me that, and my first release would have gone out clunky and not configurable. When I realized I'd have to make a new build for her every time, I understood I needed a quick way to control this without new releases. So please don't fire testers because of AI, and value manual testing. After all, in the end it's people who will be using the product.

What's next for Rattitude - Rat Health Care

I am planning a lot of new features and improvements for the AI assistant. Users will be able to set up reminders and ask questions about their rats by voice, ensuring the AI is fully aware of the application context when needed. Also one important feature I want to add is a page for rats that have sadly passed away. I'm planning to make it possible to create an animated avatar of the rat that would keep living in the app, so you could come in and say hi to them. Rats have very short lives and we miss the ones who are gone. I want a little part of them to stay with us at least this way, together with their story and photos.

Built With

  • admob
  • cloud-firestore
  • firebase
  • firebase-ai-logic
  • firebase-app-check
  • firebase-authentication
  • firebase-remote-config
  • gemini
  • jetpack-compose
  • koin
  • kotlin
  • kotlin-multiplatform
  • revenuecat
  • sqldelight
  • swift
  • swiftui
Share this project:

Updates

Submission history