https://velog.io/@orinugoori_art/알고리즘-CODEKATA-57-모의고사-nvjg7e22
오늘 문제는 모드연산자를 쓰는 방법을 생각 못해버려서 도저히 못풀겠어서 다른 사람 풀이 참고해서 풀었음..
수학적인 사고는 언제나 벽이구만
주말에 까먹고 빼먹은 알림 구현을 했당.
강의 들었던거 다시 듣고 강의 자료 보면서 구현하는거 자체는 성공했는데
강의 자료 없이는 다시 만들라고해도 기억안날 거 같고
다른 사람한테 설명 할 수 있나? 하면 그것도 제대로 못 할 것같음..
스탠다드반 과제가 급해서 일단은 그냥 완성은 했는데,
스탠다드반 과제 다 끝내고 강의내용 중에 아직 제대로 이해 못한 부분이나 부족한 부분은 다시 정리하면서 이해해야함
저번 과제였던 클론 코딩 프로젝트에 이번에 배운 리사이클러 뷰를 적용시키고,
아이템 클릭시 상세페이지 까지 구현해야함!
오늘은 일단 메인 페이지에 있는 애들을 리사이클러 뷰로 대체 해주는 것 까지 완료했다.
다른건 강의에서 다 배운 거 였는데, 아이템 간격을 조정하는 부분과 레이아웃 매니저를 LinearLayout 말고 다른 레이아웃 매니저를 사용하는 방법은 안배워서 그 부분을 조금 더 공부했음
MainActivity.kt
binding.rvRecentPlaylist.adapter = adapterRecent
binding.rvRecentPlaylist.layoutManager = GridLayoutManager(this,2)
binding.rvRecentPlaylist.addItemDecoration(recentPlayDecoration)
이렇게 layoutManager를 할당해줄 때 그 동안은 LinearLayout만 사용했는데 이번에는 그리드를 써야할 것 같아서 GridLayoutManager를 씀
방법은 짱 간단. 그냥 ()안에 this,랑 그리드 몇 행으로 만들건지 숫자 써주면됨
리사이클러 뷰를 쓰면서 지금까지는 아이템 사이의 간격을 따로 정의할 일이 없었는데
스포티파이 앱은 아이템 사이가 띄워져있어서 ItemDecoration에 대해 찾아서 구현했다.
RecyclerDecoration.kt
class RecyclerDecoration(
private val topSpace : Int,
private val startSpace : Int,
private val endSpace : Int,
private val bottomSpace : Int) : RecyclerView.ItemDecoration() {
override fun getItemOffsets(
outRect: Rect,
view: View,
parent: RecyclerView,
state: RecyclerView.State
) {
super.getItemOffsets(outRect, view, parent, state)
val position = parent.getChildLayoutPosition(view)
val count = state.itemCount
outRect.left = startSpace
outRect.right = endSpace
outRect.bottom = bottomSpace
if(parent.getChildAdapterPosition(view)== 0){
outRect.top= topSpace
}
}
}
MainActivity.kt
val recentPlayDecoration = RecyclerDecoration(16,16,16,16)
val horizontalDecoration = RecyclerDecoration(0,0,40,0)
binding.rvRecentPlaylist.addItemDecoration(recentPlayDecoration)
binding.rvRecommendStation.addItemDecoration(horizontalDecoration)
이런식으로 적용할 때 변수하나 만들어서 객체로 만들어주고, 적용할 리사이클러뷰에 addItemDecoration으로 적용해준다.
팀 프로젝트 때부터 바빠져서 TIL 따로 안올리고있었는데
순회시간에 매니저님이 저격해주심히히히
그래서 오늘은 귀찮지만 TIL을 대충 써왔당~
숙련주차되니까 진짜 너무 정신 없어버림
강의 듣고 다 이해하려면 하나하나 알아볼게 너무 많아서 공부할 게 많고,,, 거기에,, 과제도 많고,,,
주말까지 나와서 과제했는데도 이정도!!!!
주말에 공부안하시는분들은..어떻게 따라가는걸까?
내가 빡대가리인거같기도?
현지님!😁 매일 열심히 학습해주시고 계시는 것 잘 보고 있습니다!
숙련 개인 과제의 우선 순위가 더 높은데, 수준별 학습반 과제도 챙겨야하고..! 점점 태스크가 많아져서 공부시간만으로도 바쁘시죠! 이럴 때 시간관리역량을 기를 수 있도록 염두해 두시고 학습하시면 소프트스킬도 챙기셔서 더 풍부한 경험 쌓으실 수 있지 않을까 합니다! 또, 저희는 튜터님들을 비롯해서 도움 받을 수 있는 환경이 잘 되어있으니, 상황을 잘 설명해서 도움을 받아 ETA를 맞춘다면 의사소통능력도 기를 수 있겠죠!😊
TIL의 경우는 하루의 기록도 기록이지만, 오늘 내가 공부한 내용 중에 기억하고 싶은 함수, 만났던 오류, 구현하다가 막혀서 찾아보았던 내용들 등 더 작은 단위로 부담 없이 기록하셔도 됩니다! 나중에 다시 찾아봤을 때 찾아보는 시간을 줄이고, 현지님이 직접 작성하신 거라 더 이해도 빨리 되어 구현 중인 프로젝트에 적용 하는 시간이 빨라지는 효과를 볼 때 TIL 작성 기록이 더 빛을 발하지 않을까 싶습니다!👍
사실 지금도 너무 잘해주고 계셔서 현지님도 컨디션 관리만 잘 해나가시면 걱정없을 것 같습니다! 이번 챕터도 마지막까지 파이팅입니다~!