Kotlin is a new official language for Android development. It’s certainly a step towards safer, readable and quicker to write code.
Kotlin supports properties, you don’t have to call “findViewById()”, and it also tries to get rid of the dreaded null reference exception.
Whether you are a complete beginner who is just starting out in Android app development or you are a Java Android developer looking for something new, you cannot go wrong with Kotlin in Android.
This post contains all the code that’s been written in this YouTube video.
You can also check out this GitHub repository: https://github.com/ResoCoder/FirstKotlinAndroidApp
MainActivity.kt
package com.resocoder.firstapptut
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.SeekBar
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val initialTextViewTranslationY = textView_progress.translationY
seekBar.setOnSeekBarChangeListener(object: SeekBar.OnSeekBarChangeListener{
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
textView_progress.text = progress.toString()
val translationDistance = (initialTextViewTranslationY +
progress * resources.getDimension(R.dimen.text_anim_step) * -1)
textView_progress.animate().translationY(translationDistance)
if (!fromUser)
textView_progress.animate().setDuration(500).rotationBy(360f)
.translationY(initialTextViewTranslationY)
}
override fun onStartTrackingTouch(seekBar: SeekBar?) {
}
override fun onStopTrackingTouch(seekBar: SeekBar?) {
}
})
button_reset.setOnClickListener { v ->
seekBar.progress = 0
}
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.resocoder.firstapptut.MainActivity">
<TextView
android:id="@+id/textView_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:textSize="60sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.369" />
<SeekBar
android:id="@+id/seekBar"
android:layout_width="239dp"
android:layout_height="40dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:max="10"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView_progress" />
<Button
android:id="@+id/button_reset"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="Reset"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/seekBar"
app:layout_constraintVertical_bias="0.112" />
</android.support.constraint.ConstraintLayout>
dimens.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="text_anim_step">5dp</dimen>
</resources>


Hi,
there seems to be a type conflict.
val translationDistance = (initialTextViewTranslationY +
progress * resources.getAnimation(R.dimen.text_anim_step) * -1)
/home/toraus/StudioProjects/AppTutorial/app/src/main/java/com/example/toraus/apptutorial/MainActivity.kt: (20, 34): None of the
following functions can be called with the arguments supplied:
public final operator fun times(other: Byte): Int defined in kotlin.Int
public final operator fun times(other: Double): Double defined in kotlin.Int
public final operator fun times(other: Float): Float defined in kotlin.Int
public final operator fun times(other: Int): Int defined in kotlin.Int
public final operator fun times(other: Long): Long defined in kotlin.Int
public final operator fun times(other: Short): Int defined in kotlin.Int
It is really helpful for the beginners who started learning kotlin
Thanks bro
Can you give me call number
Thanks for sharing. I read many of your blog posts, cool, your blog is very good.
I don’t think the title of your article matches the content lol. Just kidding, mainly because I had some doubts after reading the article.
Your article helped me a lot, is there any more related content? Thanks!
Can you be more specific about the content of your article? After reading it, I still have some doubts. Hope you can help me. https://accounts.binance.com/pt-PT/register?ref=DB40ITMB
Your point of view caught my eye and was very interesting. Thanks. I have a question for you.