Look Counter app is now in Kotlin and stores data in Room DB

In 2016 (which seems like a whole eternity from now :), I wrote an Android app called Look Counter for counting how many times you have switched the screen on, as well as unlocked it. Up until recently I haven’t updated it. The app used such libs as greenDAO , ButterKnife , GoogleAnalytics, and RecyclerView. After the update, only the last one remained 🙂

I’ve decided to completely re-write Look Counter, using the modern tools. The first step was to update all of the dependencies and set project’s target API to 27. It’s a good idea to set yours to 26 as a min, because of Google Play’s new requirements — “Google Play will require that new apps target at least Android 8.0 (API level 26) from August 1, 2018, and that app updates target Android 8.0 from November 1, 2018.”

As the second step I chose to refactor layouts and use ConstraintLayout in order to flatten the hierarchy. It allowed me to make both Calendar and About screens completely flat, which I think is awesome 🙂

Next I wanted to convert Java to Kotlin. I used Android Studio’s Convert Java file to Kotlin file option, and then cleaned up the code. I got rid of !! and used vals instead of vars whenever possible. Also, objects instead of classes, extension methods, etc. In general, simply converting Java to Kotlin is easy, but to make Kotlin code look good and not like some Java-adaption, requires an extra effort.

Continue reading Look Counter app is now in Kotlin and stores data in Room DB

Like and share:

[Tutorial] How to use SharedPreferences in Kotlin

Android development can be (and usually is) much easier and satisfying with Kotlin, compared to Java. But it’s also quite different. Lots of things, like predefined nullability (or lack of it), no static as we know it, extension and top-level functions are there to be used in our favor. No wonder that it may be confusing what approach to choose, especially when the same thing can be done in different ways.

Today I’m gonna present you a better way of initializing and using SharedPreferences in your Kotlin app. No more repeating code with initialization in every place you want to get a preference, no more long lines to get or set a pref. How to accomplish this? Use object with lateinit and custom getters & setters.

Continue reading [Tutorial] How to use SharedPreferences in Kotlin

Like and share:

Online courses: Learn new skills!

If your summer was lazy and sleepy, it’s about time to wake up and do something! Why wait till New Year’s resolutions if you can still learn new skills this year? 😉

Below I present a collection of online courses, on a very different topics and various difficulty levels. Some of them are free and will take a weekend to finish and others are as long as a few school semesters. Your choice which one to master. All you need is the desire and determination, the rest is available on your fingertips, literally!


Introduction to Kotlin Programming [ Free Trial, ~5h of video materials ]


Women Techmakers Nanodegree Courses [ Member’s free, ~6 months ]

Continue reading Online courses: Learn new skills!

Like and share: