원본출처: 티스토리 바로가기
https://developer.android.com/courses/pathways/android-basics-kotlin-four
앱을 하나 만들어 보았다. Kotlin 으로 하는 첫번째 프로젝트. 이 걸 해 보는 이유는 java 만으로 하는 앱은 많이 해 보았는데, kotlin 으로 하는 코딩은 처음인지라, 배워보고자 해서 developer 에서 코트랩을 살펴보았다.
ㅋ 구현되는 모습은 어떨까 ?
동작은 그냥 하는 주사위 모양이다. 동작하는 기능 구현은 아래 소스를 보는 도움이 될 것 같다.
import android.os.Bundle import android.util.Log import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import com.billcoreatech.kotlinexam0115.databinding.ActivityMain2Binding class MainActivity2 : AppCompatActivity() { var TAG: String = "MainActivity2"; lateinit var binding: ActivityMain2Binding ; override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMain2Binding.inflate(layoutInflater) setContentView(binding.root) binding.button.setOnClickListener{ Log.e(TAG, ""); Toast.makeText(this, rollDice(), Toast.LENGTH_SHORT).show() } } private fun rollDice(): String { val dice = Dice(6) val diceRoll = dice.roll() binding.textView3.setText(diceRoll.toString()) when(diceRoll) { 1 -> binding.imageView2.setImageResource(R.drawable.dice_1) 2 -> binding.imageView2.setImageResource(R.drawable.dice_2) 3 -> binding.imageView2.setImageResource(R.drawable.dice_3) 4 -> binding.imageView2.setImageResource(R.drawable.dice_4) 5 -> binding.imageView2.setImageResource(R.drawable.dice_5) 6 -> binding.imageView2.setImageResource(R.drawable.dice_6) } return diceRoll.toString() } }
이게 java 로 구현이 되면 아래와 같이 이렇게 구현이 될 것 같다.
import android.os.Bundle; import android.view.View; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import com.billcoreatech.kotlinexam0115.databinding.ActivityMain2Binding; public class MainActivity3 extends AppCompatActivity { ActivityMain2Binding binding ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); binding = ActivityMain2Binding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); binding.button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(getApplicationContext(), rollDice() , Toast.LENGTH_SHORT).show(); } }); } private String rollDice() { Dice dice = new Dice(6); int iDice = dice.roll() ; binding.textView3.setText(String.valueOf(iDice)); switch (iDice) { case 1: binding.imageView2.setImageResource(R.drawable.dice_1); break ; case 2: binding.imageView2.setImageResource(R.drawable.dice_2); break ; case 3: binding.imageView2.setImageResource(R.drawable.dice_3); break ; case 4: binding.imageView2.setImageResource(R.drawable.dice_4); break ; case 5: binding.imageView2.setImageResource(R.drawable.dice_5); break ; case 6: binding.imageView2.setImageResource(R.drawable.dice_6); break ; } return String.valueOf(iDice) ; } }
아직은 어떤게 더 코드 작업이 수월하지는 잘 모르겠다. 이런 걸 여러번 하다 보면, 알게 될려는지... layout 은 그대로 하나 만들어서 했고, 구현하는 부분만 kotlin 으로, java 로 만들어 보았다.
어떻게 달라질지...
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
댓글
댓글 쓰기