본문 바로가기

전체 글

koin 기초 정리 어느분의 블로그가 너무 정리를 잘해놓으셔서 그분 블로그 링크로 달아놓고 나도 써먹어서 체화되면 글로 정리해야겠다 0편 프롤로그 https://gus0000123.medium.com/android%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%80-%EB%B3%B8-di-%EB%9E%80-dependency-injection-876b61dd0799 Android개발자가 본 DI 란??(Dependency Injection) 해당 문서는 안드로이드 공식 문서를 기반으로 만들어졌습니다. 공식문서: https://developer.android.com/topic/libraries/data-binding/?hl=ko gus0000123.medium.com 1편 koin사용법 https://gus000.. 더보기
AAC ViewModel은 무엇인가? 찍먹부터하고 가보자 Viewmodel은 무엇인가 생각보다 심오하다. 사용법이 심오한건가? 어쨋든 개념부터 살펴보자 뭐 일단 MVVM 의 ViewModel과 AAC의 ViewModel은 엄연히 다른것이다. MVVM의 ViewModel 설명하려면 날새야하고 그걸 생략하고 우리가 다룰 AAC의 ViewModel은 MVVM의 ViewModel을 잘만들라고 구글에서 안드로이드의 특성에 맞도록 보조적인 장치들을 달아서 만들어준 느낌이다. 그래서 ACC의 ViewModel을 썻다고 사실 MVVM 에서 요구하는 ViewModel의 조건을 충족하지 못할 수 있다. 여타 많은 DataBinding이라던지 다양한 작업을 해줘야 MVVM의 ViewModel을 충족할수있다. 그래서 결국에 AAC ViewModel 에서 제공하는게 뭔데 씹덕아 하고.. 더보기
Glide 사용시 필요한기능 찾아놓은것 최초 사용법 https://blog.yena.io/studynote/2020/06/10/Android-Glide.html [Android] Glide 로 이미지 Load하기 Glide Glide, 글라이드는 안드로이드에서 이미지를 빠르고 효율적으로 불러올 수 있게 도와주는 라이브러리이다. 사용 방법도 간단하고 확장성도 넓어서 이미 메이저하게 사용되고 있는 라이브러 blog.yena.io 다양한기능 정리 https://gomsfactory.tistory.com/19 Glide에 대한 기능 정리 Glide에 대한 기능을 자주 사용하는데, 매번 찾기도 그래서 아예 블로그로 옮겨옴 ^^ Setup Add to your app/build.gradle file: dependencies { compile 'com.g.. 더보기
DataBinding의 BindingAdapter BindingAdapter는 우리가 기존에 DataBinding을 통해서 변수의 데이터를 직접 뷰에다 선언적으로 붙여주는것을 할때 직접 정의하지는 않았지만 androidx.databinding.adatpers 에 정의되어있는 어댑터들을 통해 textView 같은 View의 text속성에 변수를 선언 해줄수있었다. 이런식으로 이미 정의되어있는 어댑터들도 있지만 모든 부분이 다 정의 되어있지 않기에 우리가 원하는 부분의 Adapter가 정의되어있지 않은 경우 직접 커스텀해서 사용해야한다. ex)이미지뷰의 src 같은속성 혹은 뷰의 visibility같은것들을 조정하기 위하여 이런경우에 직접 BindingAdapter를 통해서 조작하여주는데 코드단에서 조작해줄수있는 부분을 미리미리 작성하는 느낌으로 타겟이되는.. 더보기
databinding의 Two-way Binding 안드로이드의 Two-way Binding을 살펴볼것이다. 우선 Two-way Binding 이 무엇인가? 개념적으로 보면 여태까지 적용시킨 데이터 바인딩은 코틀린 파일에있는 변수들을 직접 xml에 가져다 붙여서 변수의 내용을 xml에 표시하는것이였다. 그렇다면xml 파일에서 즉 사용자가 view에서(ex. edittext) 같은거에서 작성하는것을 변수로 받아오는것을 databinding으로 할수 없는것인가? 이 부분이 Two-way Binding이다. 즉 사용자가 xml에 입력한데이터 들을 변수와 연결시켜놓으면 그 변수에 저절로 들어가게 만드는것이다. 물론 실시간으로 하려면 livedata를 곁들인 그런형태가 되어야 하지만 어쩃든 그렇다. 그래서 이것의 쓰임새를 생각해보면 MVVM에서 뷰와 뷰모델을 느슨.. 더보기
리사이클러 뷰에 databinding적용해보기 사실 3주차 과제정리에 쭉해놨고 실제로 적용도 했다 하지만 빡갈통인 날 믿을수없어 나중에 찾아헤멜것을 걱정해서 다시 한번 정리한다. 두괄식으로 결론부터 말하자면 data를 적용하는 xml은 각 리사이클러 뷰의item xml파일에 를 넣어주고 각각 viewholder에서 데이터를 각각 받아온것들을 집어넣어주는 형태이다 viewholder에서는 각각 xml들을 갖고있을테니까 ㅎㅎ 그래서 실제로해본것을 정리했다 dataBinding을 리사이클러 뷰에 적용하기 리펙토링을 해보자 1. 당연히 gradle추가해주고 android { ... dataBinding { enabled = true } } 2.리사이클러의 아이템뷰 의 xml을 으로 감싼다. 아이템을 감쌌다. 3.data variable 추가 layout안에.. 더보기
3주차 과제중 배운것들 라디오 버튼 커스텀 selector의 state_checked 속성을 이용하기위해 그냥 버튼이아닌 라디오 버튼을 이용해서 버튼을 만들어줬다. - android:button="@null" 라디오 버튼에 동그라미 버튼 부분 없애려면 속성에 이렇게 넣어주면된다. fragment안의 fragment 처리 fragment안에서 fragment 처리할때는 activity에서 처리할때와 다르게 supportFragmentManager 를 사용하는것이 아닌 childFragmentManager를 사용해야한다. 또한 프래그먼트에서 부모의 프래그먼트 매니저를 접근하려면 ex)fragment1에서 activity의 fragment로 접근 이럴경우에는 parentFragmentManager를 사용한다. https://ddan.. 더보기
2주차 과제중 배운것 level 2 2-1 1.리사이클러뷰 항목마다 이벤트 리스너 달아주기 각 항목마다 클릭 이벤트 리스너 달아서 이벤트를 처리해보자 ViewHolder 혹은 onBindViewHolder() 함수 두곳에서 이벤트 처리 하는 방법이 있는데 우선 viewholder에서 처리해주는것부터 부터 봐볼것이다. 1-1ViewHolder에서 처리 우리가 viewbinding 을 이용해서 viewHolder를 만들었기에 ViewHolder의 생성자로 binding객체를 꽂아줬다. 그래서 이 binding객체의 root가 리사이클러뷰가 표현하는 항목하나 즉 item의 레이아웃에 접근할수있다 그래서 init함수를 만들어 root에 onClicklistener를 추가한다. 1-2 onBindViewHolder() 에서 처리 이 .. 더보기