안드로이드 26

[Android/Kotiln] DataBinding(데이터바인딩)3 - Observable(실시간 데이터)

이번 포스팅에서는 데이터를 실시간으로 관찰할 수 있는 Obsevable 데이터에 대해서 알아보도록 하겠다. 이전 포스팅과 연관되는 부분은 아니지만 그래도 이전 포스팅들을 보고 오면 좋다. 1. DataBinding 1 - 기초 2. DataBinding 2 - BindingAdapter 실시간으로 데이터를 관찰해보자! 기존 안드로이드 개발을 할 때 화면에 보여주는 데이터에 변화가 생긴다면 어떻게 했는지를 생각해보자. A 텍스트 뷰에 적혀 있는 글자를 버튼을 눌러 다른 글자로 바꿀 경우 우리는 다음과 같이 값을 바꿔주었다. text_A.text = "내가 변경할 값" 이는 데이터가 변경될 때마다 우리가 직접 그 변경됨을 xml에 알려줘야 함을 의미한다. 그래서 우리는 값이 변경되면 뷰에서 알아서 변화를 감..

안드로이드 2020.02.06

[Android/Kotlin] DataBinding(데이터바인딩) 2 - BindingAdapter(바인딩 어댑터)

지난 번 포스팅에서 DataBinding에 대한 기초 실습을 통해 어떤 방식으로 DataBinding을 하는지 알아보았다. 이번에는 BindingAdapter라는 걸 이용하는 실습을 해보겠다. BindingAdapter란? 리사이클러뷰 아이템 요소에 프로필 사진, 이름, 나이가 들어간다고 해보자. DataClass에는 프로필 사진 Url (보통 이미지는 Glide를 이용하기 때문), 이름, 나이 요소가 들어가 있을 것이다. data class ProfileData( var profile : String, var name : String, var age : Int ) 우리는 데이터 바인딩을 할 것이기 때문에 각 요소를 바인딩 시켜주는 작업은 xml에서 진행을 할 것이다. 그런데, 여기서 문제가 발생한다! ..

안드로이드 2020.01.31

[Android/Kotlin] DataBinding(데이터바인딩) 1 - 기초

혼자서 데이터 바인딩을 학습했다. 중간에 헤맸던 부분이 너무 많아서 이제야 포스팅한다... 지금까지 학습한 부분을 예제를 통해서 알아보자. 데이터바인딩이란? 우리는 안드로이드 어플의 한 화면을 만들 때, 뷰를 생성하고 그 뷰에 적절한 값들을 넣어준다. 평소처럼 개발을 한다고 생각하면 이런 식으로 액티비티에 뷰를 바인딩시켜주는 작업을 한다. val button : Button = findViewById(R.id.btnSample) 한 두 개라면 괜찮지만 한 화면의 뷰가 10개 이상 넘어간다고 했을 경우 굉장히 막막하다.... 코틀린은 extenstion을 이용해 편하게 작업이 가능하긴 하나, 이 또한 모든 바인딩을 액티비티에서 해주므로 내가 현재 공부하려는 MVVM패턴에서는 적절치 못하다. 그래서 데이터 ..

안드로이드 2020.01.24

자 이제 무엇을 할것이냐? (MVVM 패턴)

지금까지 나는 개발을 할 때 activity에 모든 코드를 때려 박았다. 어떻게 보면 대가리만 큰 코드가 되었다고 할 수 있다. 이렇게 activity에 모든 코드를 넣어버리면 자연스럽게 어플은 무거워지고, 뭐가 뭔지 보기 힘들 것이다. 그래서 자연스럽게 디자인 패턴으로 눈이 돌아갔고, 그중 MVVM패턴을 공부할 예정이다. 현재 나의 머리로는 이해하는데 많은 시간이 소요될 것으로 본다... 누가 알려주는 사람도 없고 구글링을 하면서 공부하고 있기 때문에 계속 찾아내면서 공부해야지.. ㅎ MVVM이 뭔데? MVVM은 View - ViewModel - Model 로 구성된 디자인 패턴이다. 웬만한 어플은 MVVM을 적용하고 있다고 봐도 무방하다. MVC와 MVP에서도 의존성이 해결되지 않아 만들어진 MVVM..

안드로이드 2020.01.15

[Kotiln/Android] TabLayout과 ViewPager를 이용한 화면 이동

안드로이드 개발함에 있어서 하단 탭은 자주 등장한다. 보통 하단 탭을 이용할 때 BottomNavigation을 이용하였는데, 좀 더 유연하게 TabLayout과 ViewPager를 통해 여러 Fragment를 이동하는 실습을 해보겠다. TabLayout을 이용할 때 우리는 아이콘뿐만 아니라 밑에 글씨까지 같이 추가하고 싶을 때가 있다. 단순하게 TabLayout에 글자와 아이콘을 추가하게 되면 서로 겹쳐 보이게 되는 불상사가 일어나기 때문에 위에 실습처럼 아이콘과 글씨가 같이 보이게 하고 싶으면 CustomView를 통해 내가 원하는 아이콘을 만들면 된다. 주의할 점은 TabLayout을 이용해 위와 같은 화면을 만들고 싶을 때 최소 3개 이상의 화면이 필요하다. (안드로이드 자체에서 권장하는 최소 개..

안드로이드 2019.12.18

AnimationListener를 이용한 페이지 슬라이드

안드로이드 개발에 있어서 앱에 더욱 활기를 불어넣어 줄 Animation에 대해 보자. Animation에는 scale, translate, rotate, alpha 등 다양한 애니메이션 효과들이 존재하고 이를 적절히 섞어 내가 원하는 애니메이션을 만들 수 있다. 이번 포스팅에서는 햄버거 메뉴바처럼 버튼을 누르면 옆에서 또 하나의 페이지가 나오는 예제를 포스팅하겠다. translate_left.xml translate_right.xml res 폴더에 anim 폴더를 만들고 애니메이션을 설정하는 xml을 만든다. left와 right의 차이점은 fromXDelta와 toXDelta의 차이점이다. 코드에 대한 기능을 살짝 보면 다음과 같다. fromXDelta : x좌표에 대한 시작 위치 toXDelta :..

안드로이드 2019.12.13