I'm Learning Kotlin By Creating Apps - This is my journey so far. [Part 2]
Tags: android, kotlin, app, devlive
Published: 2020-05-16 16:02:43

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


► In this post, you'll find 1 app while in my [previous post](https://dev.to/eleftheriabatsou/i-m-learning-kotlin-by-creating-apps-this-is-my-journey-so-far-f3j) you can find 4 apps.

► To create the app I followed the tutorial "_Android App Development Masterclass using Kotlin_" from Udemy, instructed by Tim Buchalka and Jean-Paul Roberts.

► In every application I've done so far, 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. My next goal is to study Kotlin through [Developing Android Apps With Kotlin](https://www.udacity.com/course/developing-android-apps-with-kotlin--ud9012), a course from Udacity.

#5. Task Timer
![Task Timer](https://cdn-images-1.medium.com/max/800/1*cVEICxnYoVlX09LQc8pJUw.png)

About the task timer: In this app, you can define a task, add a description and an 'order' that you want the task to appear in your list of tasks. You can also edit or even delete the task. Of course, you can add multiple tasks as well they will be saved in a database. By long-tapping on a task, a timer will start and if you click it again the timer will stop. If you long click on a task but then long click on another task, then the timer for the first one will stop.

In this app you can also find the 'settings', from there you can change the starting day of the week (for example is it going to be Sunday or Monday) as well as the minimum duration your timer is going to work (for example you can set the timer to track the time only if a task runs for more than 2 minutes). Last but not least, you can find additional information about the app and the creator of it! 

I worked with:

- SQL databases and tables, I learned the basics actions like add/edit/delete plus a few more basic things…
- Fragments (swapping fragments, multi-pane fragments), and wow, fragments are so important in Kotlin! I had no idea!!
- Activity and Fragment lifecycle
- ViewModel, Singleton class, ContentProvider, UriMatcher, Mime Types, Extension functions, Coroutines, Shared preferences, Image Asset Studio
- Multiple layouts and different layouts for different APIs
- Dialogs and dialog callbacks, Seekbars
- Versioning and build.gradle, supporting older versions
- Fixing warnings and bugs


[code](https://github.com/EleftheriaBatsou/TaskTimerAndroidAppByEleftheria) | [demo](https://photos.app.goo.gl/PAmXnZPTDLBXCBoF8)


_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: [paypal.me/eleftheriabatsou](paypal.me/eleftheriabatsou) but If you can't that's ok too!

🌈[Youtube](https://www.youtube.com/c/EleftheriaBatsou) | [Codepen](https://codepen.io/EleftheriaBatsou) | [GitHub](https://github.com/EleftheriaBatsou) | [Twitter](https://twitter.com/BatsouElef) | [Site](http://eleftheriabatsou.com/) | [Instagram](https://www.instagram.com/elef_in_tech/)