Intro
- 안드로이드 심화과정 과제는 당근마켓 홈, 상세페이지 클론이다. 여기에 올려도 될지 몰라서 이미지는 첨부하지않겠지만 그냥 당근마켓과 똑같이 만드는데 기능이 거의 없는 당근마켓이라고 보면 될것같다.
- 어제 과제를 진행하고 질문을하며 발견한 내용들에관한 회고이다.
Android SDK_VERSION확인을 잘하자
- 어제 registerForActivityResult를 사용하여 모델클레스를 Parcelize로 직렬화/역직렬화 하여 Activity간 통신을 구현하는 일이있었다.
private fun registActivityResult() {
resultLauncher =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode == RESULT_OK) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
val res = result.data?.getParcelableExtra(
getString(R.string.intent_todoModel),
TodoModel::class.java
)!!
updateTodoFragment(res)
} else {
val res =
result.data?.getParcelableExtra<TodoModel>(getString(R.string.intent_todoModel))!!
updateTodoFragment(res)
}
}
}
}
- 전날새벽까지 붙들어보았지만 안되서 로그도 찍어보았지만 나중에 발견한것이 내가 테스팅하는 폰의 sdk가 티라미수보다 낮아서 저 위의 if분기에서 윗줄을 실행하지않고 아래 Deprecated된 함수를 실행하는것이었는데 나는 계속 위에만 붙들고있었던것이다.
- 실수할수있다고 생각하지만 이런 실수들은 한번으로 족하다. 다음번에 발생하지않도록 내가 만드는 코드에서 당연하게 생각하는것이 아니라 흐름이 맞는지 검증해가며 짜는 습관을 만들어가야겠다.
튜터님께 질문드리는 과정에서 생긴 미흡함
- 어제 튜터님께 질문을 드리는데 질문의 요지는 플로팅액션버튼(fab)을 누르면 writeActivity로 넘어가고 그곳에서 작성한 내용이 MainActivity에 있는 두개의 탭 Fragmenet화면 중 TodoFragment 화면에 보이도록 하는 작업에서 writeActivity -> MainActivity로 data를 넘기면 Main에 있는 TodoFragment에 있는 Recyclerview(TodoFragment에 RecyclerView로 데이터를 보여준다)의 adapter에게 해당 data를 넘겨주어 처리하는 방식인데 이렇게되면 Main에도 adapter에도 list 변수를 만들어주어야하는 불편함이 생겨 이것을 개선하는 방향에대한 질문을 드렸다.
- 질문과정에서 내가 사용하는 IDE 글자가 너무작아 튜터님 화면에 제대로 글자가 보이지 않는 상황이었는데, 이부분에대한 인지가 없었고 그래서 질문도중 튜터님이 중간에 글자크기 키워달라는 요청이 있었지만 단축키가 먹지않아 그냥 말로 설명하고 답을 받았다.
- 이 과정에서 내가 생각한 개선점은 2가지 정도였다.
- 질문할때 스크립트를 작성해 질문을 하기위해 아셔야할 background에대한 부분과 내가 알고싶은 부분의 질문을 잘 전달하는 것.
- 질문을 받는 사람의 입장에서 소통을 위해 불편사항은 무엇이있을지, 어떤식으로 준비해야할지.
- 질문을 하던지, 내가 원하는 뭔가를 얻으러 갈때에 내 입장과 상황, 생각만 하게되기 쉽다는것을 발견하게되었다. 대화는 상호작용이고 그렇기에 상대방에대한 배려가 필요한 부분인데 이부분을 놓쳤던 것 같아 정리하는 시간을 가져보았다.
Outro
- 유튜브를 보다보면 다른개발자분들의 생각을 들을 기회가 종종있다. 내가 유튜브에서 보았던 몇몇분들은 개발도 도구라는 말씀을 많이하셨다. 회사에서 요구하는 문제들, 일상의 문제들을 풀어가기위해 개발자는 개발이라는 도구를 사용해서 풀어간다.
- 문제는 혼자 풀어가는데에 명확한 한계가 존재한다. 내가 갈 회사라는곳도 결국 문제를 다른 파트와 다른 사람들과 함께 풀어가야하는데, 상호간의 배려가 있다면 문제를 풀어가는 부분에서 서로 기분좋게 풀어갈 수 있지않을까싶다.