DEV Community

Cover image for I'm Learning Kotlin By Creating Apps - This is my journey so far. [Part 1]

I'm Learning Kotlin By Creating Apps - This is my journey so far. [Part 1]

eleftheriabatsou profile image Eleftheria Batsou Updated on ・3 min read

🧠Objective: Learn Kotlin by creating apps
🤓Help: Android App Development Masterclass using Kotlin
📚Technologies: Kotlin, MaterialUI (& Github)
💻Editor: Android Studio
⌛️Duration: About 4 weeks

► In this post you'll find 4 apps.

► To create these apps I followed the tutorial "Android App Development Masterclass using Kotlin" from Udemy, instructed by Tim Buchalka and Jean-Paul Roberts.

► In every application, I tried to learn and create something different. These apps are far from perfect, but it's a sample of my work and learning progress. 

► In the future, better apps are going to be added.

1. Calculator App

Calculator App

About the calculator: It is a very basic calculator where you enter numbers using the apps buttons. It performs the calculation when any of the operation keys are pressed (plus, minus, multiple and divide). It works both in landscape and in portrait view. 

I worked with:

  • Group widgets, to see how I can do things like constraining them to be positioned as a group, as well as common properties for multiple widgets at the same time.

  • OnClickListener: so that the same method can be used by multiple buttons

code | demo

2. Top 10 Downloader

Top 10 Downloader

About the To 10 Calculator app: You can find the top 10 most famous apps currently on app store! Or you can see the same list with 25 results and even change it to show songs, paid, or free apps.

I worked with:

  • Downloading data over the internet, running task in the background using AsyncTask (which although in java works well in kotlin it is not recommended)

  • Parsing XML to extract data from a download feed

  • The list ListView widget for displaying a scrollable list of items (which is not a very modern method, but for simple projects, it works fine)

  • Adapters for providing data to ListViews

  • Creating a menu/sub-menu for the app

code | demo

3. Simple YouTube Player

Simple YouTube Player

About the simple youtube player: With this app you can see a particular video or a playlist from youtube. There are also small hints while the actions that are being performed, such as "video paused" or "video stopped".

I worked with:

  • Youtube android player API and Google API key
  • Adding widgets dynamically
  • Intents

code | demo

4. Flickr Browser

Flickr Browser

About the Flickr browser: It allows us to query and download a list of recent photos from the hugely popular Flickr website.

I worked with:

  • Material Design: Google introduced material design in android5, Lillipop (API 21) to encourage good design and allow a consistent user experience across different platforms and device sizes
  • Making an app compatible with previous versions
  • Downloading JSON data from the web (using AsuncTask)
  • Callback functions and interfaces
  • RecyclerView and RecyclerViewAdapter (which like a younger brother of the ListView)
  • Listening for taps on a RecyclerView, and the purpose of a GestureDetector
  • Themes and styles, and a look at how they work for different versions of Android
  • Searching with multiple tags 

code | demo

Thank you for reading, feel free to comment :)

👋Hello, I' m Eleftheria, an app developer, master student, freelancer, public speaker, and chocolate lover.

🍩Would you care about buying me a coffee? You can do it here: but If you can't that's ok too!

🌈Youtube | Codepen | GitHub | Twitter | Site | Instagram

Discussion (7)

Editor guide
gvetri profile image
Giuseppe Vetri

Hey! Great job starting with Kotlin. Here are some actual topics you may be interested:

  1. Coroutines, Asynctask is deprecated in the last target version of Android. Where I work we use coroutines and are pretty good. You should also check out rxJjava (It's in java but you can use it in kotlin with rxKotlin or using the Kotlin syntax with the RxJava library).
  2. It's also important to have an architecture in your projects, the most used in Android are MVP and MVVM.
  3. You can avoid all those conversions from the JSON that you receive from the APIS using Retrofit., it's almost a standard in Kotlin and Android.

Also if you want to learn about testing with Kotlin you can check my blog post about it here.

Here are some resources from youtube:

If you have any question feel free to ask! :D

eleftheriabatsou profile image
Eleftheria Batsou Author

That s amazing, thanks! I ll definitely check your tips and suggestions 😊

domenicosolazzo profile image
Domenico Solazzo

I also need to learn Kotlin!!

hanpari profile image
Pavel Morava

How do you test your app? Last time I was messing with Android Studio it was slow and virtualization of the device near to impossible.

eleftheriabatsou profile image
Eleftheria Batsou Author

Hi Pavel,
I don't use virtualization at all.

I connect a physical device (a.k.a my phone) and test only with that.

I think if you want to use the visualization you could go to BIOS and enable the virtualization from there. It will make your machine more powerful but yet again not "strong" enough... (at least that works for Windows)

nitinreddy3 profile image
Nitin Reddy • Edited

Nice work.
How about giving Flutter a try?

eleftheriabatsou profile image
Eleftheria Batsou Author

I m learning Kotlin because I'll need it for my work...
(If I had more free time maybe I'd go with Flutter as well)