Intro
- 오늘부터는 숙련주차 강의를 듣는것으로 시작된다. 강의는 ViewBinding을 시작으로 Recyclerview와 다이얼로그 그리고 알람까지 진행된다. 오늘은 다이얼로그까지 듣고 구현해봤다.
ViewBinding
- 뷰바인딩을 공부해봤다. 실제로 만들어진 클래스를 뜯어보며 얼추 비슷하게 구현해봤다. 자세한내용은여기
ListView, GridView, RecyclerView, CustomView
- 각종 View들을 구현해봤다. 강사님도 RecyclerView를 가장많이 쓴다고 강조해주신만큼 RecyclerView를 구현해봤다.
- 커스텀뷰는 어떤것일까 기대했는데 이전 선발대 과제로 RecyclerView에서 구현하던것과 별반 차이가 없어서 지금도 앞으로도 그냥 RecyclerView를 주우욱 구현해서 사용할 것 같다.
- RecyclerView와 관련된 내용은 아래에서 한번 다룬적이 있다.
RecyclerView DeepDive#1
230809 오늘의 회고
Fragment
- 이부분이 가장 흥미로웠다. 관심사에따른 화면을 분리할 수 있고, 한 Activity에 과중한 책임이 주어지지않는다는 점에서 앱을 개발할때 잘 활용해야겠다는 생각이 들었다.
- 강의에서 봤던 실습내용은 먼저 fragment를 2개 만들고, activity_main.xml에 버튼 2개와 fragment가 들어갈 FrameLayout을 정의한 후 supportFragmentManager를 사용하여 FrameLayout에 fragment를 버튼 클릭에따라 다르게 교체해서 보여주는식으로 구현했다.
class MainActivity : AppCompatActivity() {
val binding : ActivityMainBinding by lazy { ActivityMainBinding.inflate(layoutInflater) }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(binding.root)
binding.apply {
fragment1Btn.setOnClickListener {
setFragment(FirstFragment())
}
fragment2Btn.setOnClickListener {
setFragment(SecondFragment())
}
}
setFragment(FirstFragment())
}
private fun setFragment(frag: Fragment) {
supportFragmentManager.commit {
replace(R.id.frameLayout, frag)
setReorderingAllowed(true)
addToBackStack("")
}
}
}
Outro
- 하나씩 구현해보고 동작원리를 생각해보며 실습하다보니 생각보다 많은 시간이 걸렸던 것 같다. 내일부터는 개인과제 앱을 만들면서 배운것들을 잘 적용해보는 시간을 갖도록 해야겠다.