Android/JETPACK
![[JETPACK개론] ViewModel ?](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbHyp9Y%2FbtrJlzx6ukg%2FAAAAAAAAAAAAAAAAAAAAAKUrYAT9iTLXPBa3Fvx8tMxqtryzAlm5qNugueZHlzdL%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DL1wz8JhQr8IlotJt3rXYpE1GEDk%253D)
[JETPACK개론] ViewModel ?
ViewModel ViewModel 개요 | Android 개발자 | Android Developers ViewModel을 사용하면 수명 주기를 인식하는 방식으로 UI 데이터를 관리할 수 있습니다. developer.android.com 위의 안드로이드 공식문서를 읽어보면 자세히 나와있지만 처음 접하는 나같은 사람들에게는 어렵게 다가올 수 있다. 정리하자면 ViewModel은 안드로이드의 생명주기를 관리하기 쉽게한다. 다시말해, UI컨트롤러(Activity, Fragment)에서 모든 것을 다 하려고 하면 복잡해지는데, ViewModel을 사용하면 테스트나 관리가 용이해진다. 먼저 간단하게 Activity에서 ViewModel을 사용해보면서 이해해보자!! 위의 그림을 이해하기 위해 다음과 같이 로그를 찍..
![[JETPACK개론] View,DataBinding + Adapter](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fb8g1mP%2FbtrJj6jegUT%2FAAAAAAAAAAAAAAAAAAAAAHQ6-b-tRJ-aN5QuoyJLf8xmpKfYP_AQBS3zOaQU6Lka%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DiI0CO0o1kll1CVHQculOaHCevrw%253D)
[JETPACK개론] View,DataBinding + Adapter
ViewBinding + Adapter view(Acitivty, Fragment)뿐만 아니라 Adapter에서도 ViewBinding을 사용할 수 있다. 먼저, Adapter를 사용하는 리사이클러뷰를 준비하자! class CustomViewAdapter (private val dataSet : ArrayList) : RecyclerView.Adapter(){ class ViewHolder(binding : TextRowItemBinding) : RecyclerView.ViewHolder(binding.root){ val myText : TextView = binding.myText } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int):..
[JETPACK개론] DataBinding 과 data class
DataBinding TLOVER라는 앱을 론칭하면서 DataBinding을 계속 사용해왔고, 블로그에도 개념을 정리했었지만 강의를 들으면서 부족했던 부분을 보완하고 그 부분들을 정리하고자 한다. databinding ? 이름 처럼 데이터를 연결, 결합 해줄 수 없을까? 라고 생각해보면 된다. viewbinding을 사용했을 때 해당 뷰에 있는 id에 접근해서 값을 변경해주었다. 하지만 서버에서 받은 많은 데이터들을 활용하여 값을 변경해줄 때는 binding을 통하여 데이터를 한 번에 저장한다음 xml에서 변경하면 편리할 것이다!!! 바로 databinding을 사용하면 된다! 1. gradle 파일에 다음과 같이 작성하자 buildFeatures{ dataBinding = true } 2. xml파일안..
[JETPACK개론] ViewBinding
1. findViewById 위와 같은 xml코드가 있다고 가정해보자. btn1, btn2 가 써져있는 버튼 두개가 생길 것이다. 클래스에서 위의 버튼의 텍스트를 어떻게 변경할까? 맨 처음 생각할 수 있는 것은 findViewById이다. val btn1 : Button = findViewById(R.id.btn1) btn1.text = "abcd" val btn2 : Button = findViewById(R.id.btn2) btn2.text = "abcd" 위의 코드에서는 버튼이 2개라 이 정도로 끝나지만 만일 바꾸고 싶은 버튼이 100개라면 적어도 200줄의 코드를 더 적어야한다. 이렇게 하면 가독성이 떨어지는 문제가 발생한다. 따라서 Kotlin Extensions이 등장했다. gradle파일에 ..
[JETPACK개론] 들어가며
1. 들어가며 아무런 안드로이드, 코틀린 지식 없이 TLOVER라는 앱을 제작하면서 부족한 점을 많이 느꼈다. 자바에 익숙했던 나는 코틀린이라는 언어에 친숙하지 않아 구글링을 진짜 많이 했던 기억이 있다. 결국 앱 론칭에는 성공했지만 전체적인 코드 구성, 및 개발 방식이 마음에 들지 않았다. 아무래도 개발지식 없이 구글링만으로 개발하다보니 부족한 점이 많았다. 나름, 안드로이드 공식문서를 들어가서 신기술을 적용해보기도 하는 등 많은 시도를 하였다. 그러다 JETPACK에 대해서 흥미가 생겼고, TLOVER앱에도 JETPACK navigation을 적용함으로 프래그먼트간 데이터 이동 등 많은 장점을 활용할 수 있었다. 또한, MVVM패턴을 적용하고 싶어 ViewModel, LiveData 등 시도를 해보았..