Your First Kotlin Android App: An App From Scratch
Part 3: Coding in Kotlin Challenge: Rewrite the Code
— Android & Kotlin

Lesson Complete

Play Next Lesson

Challenge: Rewrite the Code

This video was last updated on Jul 5 2022

Learn the ropes of code refactoring. Try to rewrite the method using another algorithm with less code.


In the previous episode, I mentioned that there’s another way to calculate the difference that requires fewer lines of code - and that’s what you’re going to be doing in this challenge.

The new algorithm for calculating the difference looks like this:

  • First, subtract the target value from the slider’s value.
  • Then, if the result is a negative number, multiply it by -1 to make it a positive number.

At this point, pause the video and try changing the calculation for the difference to this new algorithm. Make sure you try it out.

If you dont get it. Then you can keep watching to compare your code to my solution.

Alright good luck!!!

How did the challenge go for you? Hopefully, you made progress, but if you got stuck, that’s okay too. Just follow along with me.

Now, inside the pointsForCurrentRound() method, go ahead and delete all the code related to the if/else statement.

Then update the difference variable declaration to the following:

var difference = targetValue - sliderValue

Then, you need to check if the difference is a negative value. If so, you’ll go ahead and multiply the difference by negative 1 to make it a positive integer like so:

if (difference < 0) {
    difference = difference * -1

Before you try it out, let’s check what android studio is trying to tell us. I’ll go ahead and hover. And it says this code can be replaced with an operator assignment. Go ahead and select the suggestion below.

And this replaces the previous code assignment with an operartor assignment that multiplies the variable on the left with -1. This is a shorther syntax for writing such an assignment.

Run your app and try it out. The current point is displayed in the dialog.

But what if i tell you there’s another way to write this function with even less code? Let’s take a look at this in the next episode.