반응형
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 로 만들어 보았다.
어떻게 달라질지...
반응형
'모바일 앱(안드로이드)' 카테고리의 다른 글
안드로이드 앱 admob 정책 위반 이야기 (2) (3) | 2022.01.22 |
---|---|
안드로이드 앱 만들기 : 구글 로그인 One Tap (오류사항 정리) (2) | 2022.01.19 |
안드로이드 앱 만들기 : 구글맵 최종 위치 표시 하기. (2) | 2022.01.11 |
안드로이드 앱 만들기 : qrscan , barcode 스캐너 (2) | 2022.01.10 |
안드로이드 앱 만들기 : 리사이클 뷰의 활용성에 대해서. (3) | 2022.01.09 |