What is it and Why?
Owly is a small Android application I developed in Kotlin, as a pet project. On a lazy Sunday afternoon my brother came up with the idea of an app that delivers a fact as a notification every day. OK, maybe not the most interesting or challenging idea out there but still a good start to actually do something with a brother.
Me & my brother: Who is the developer (guess who)?
He took the role of Product Owner (also responsible with marketing & distribution) and I became the Kotlin developer (surprise surprise). My motivation behind it was obviously to learn Kotlin! I’ve been reading and reading about it for quite some time and was very interested & excited, just didn’t have any chance at work to try. Owly seemed like a good chance to get my hands dirty.
We started toying with the idea and drawing screens on papers. Even after all these years in professional app development, I’m still amazed with the fact that there are A LOT to discuss and decide even for such a (relatively) small app.
A fact delivered. Users can swipe left to see the images of the fact or scroll up and down to access the previously delivered facts. To vote a fact, users have like and dislike buttons (red and green smileys at the bottom).
5 Weeks of development: Evenings & some of the weekends only
Anyway we agreed on basics and I started my first Kotlin project. Within first week, we had a working concept that delivers the facts. The remaining 4 weeks were all about adding all that nice to haves, improvements (so to speak), a lot of “shall we use a lighter red colour here” s – well you probably know how it is. I’m a little bit crushed with the excitement and amateur soul of my brother – who is a physiologist by profession by the way (he runs a care home during the day).
After like 5 weeks, we were ready to publish the app. We published for Turkey only (where my brother resides) and started working on marketing right after. These days he’s quite busy with that but marketing is probably a topic for another post.
Well from my view of point project was very succesfull:
- 87% of the code is in Kotlin which means I succeeded at what I aimed – learning Kotlin
- Idea to market only in 5 weeks, working in the evenings and at some weekends only
- Used tones of new stuff and improved my existing skills during the development
- Maybe the most important part – I enjoyed working on it A LOT! So much fun
- Developed with Kotlin (around 87% of the code)
- Firebase as the backend: We used Realtime NoSQL database, Firebase authentication, Crashlytics and Firebase Analytics. Awesome stuff, very happy with it.
- Async programming with Firebase API: Nice and smooth user experience through the application.
- WorkManager, OneTimeWorkRequest and PeriodicWorkRequest to schedule the fact delivery in the most optimal way (awesome stuff, seriously!). No load on device processor.
- Recyclerview and CardView for the facts. High performance scrolling, swiping fact cards to vote and remove from the deck.
- Constraint layout for UI
- User preferences: PreferenceFragment loading preferences xml from resources – nice, clean and ‘familiar’ preferences screen.
- Multiple language support
Used MVVM, Observer Design Pattern, Singleton, Async development, Adapter pattern with the app.
In part 2, I’ll talk more about how Owly works, from a technical view of point.