kotlin 15

[kotlin]Delegate Pattern을 알아보자

먼 옛날부터 사람들은 코드를 좀 더 아름답게 짜기 위해서 여러 가지 시도를 했습니다. 객체지향 원칙에 맞게끔 항상 고민하고 끊임없는 설계를 구상해왔죠. 그러면서 좀 더 유연하고 유지보수가 쉬운 설계 방식을 연구했고, 기존 개발에 있어서 발생하는 일반적인 문제들(반복 코드 제거, 수정 교체 용이 등등..)에 대해 솔루션을 구상하기 시작했습니다. 그렇게 해서 나온 게 바로 개발 설계를 좀 더 빠르고 잘할 수 있도록 도와주는 솔루션의 집약체 디자인 패턴입니다. Delegate Pattern이란? 디자인 패턴 중 하나인 Delegate Pattern은 어떠한 객체가 기능을 수행할 때 해당 기능을 다른 객체에게 위임하는 패턴입니다. 동일한 기능에 대해 여러번 구현하는 것은 귀찮고 피곤한 일입니다. 그렇다면 한번만..

kotlin 2022.04.11

[Android/Kotlin] SpringAnimation - 2. 강성과 감쇠비

이전 포스팅에서 언급했다싶이 스프링 애니메이션은 스프링력이라는 특정 값과 속도에 따라서 계산되는 애니메이션입니다. 물리학 효과가 들어간 스프링 애니메이션에서 가장 중요한 부분인 강성과 감쇠비에 대해서 얘기해보고자 합니다. 이전 포스팅을 못 보신 분들이라면 보고 오시는 것을 추천드립니다. 참고 링크 https://developer.android.com/guide/topics/graphics/spring-animation?hl=ko 스프링 물리학으로 움직임 애니메이션화 | Android 개발자 | Android Developers 스프링 기반 애니메이션에서 스프링의 속성, 값, 속도는 애니메이션을 만드는 데 사용됩니다. developer.android.com 강성과 감쇠비? 스프링 애니메이션을 적용할 때 사..

안드로이드 2021.11.03

[Android/Kotlin] SpringAnimation - 1. 스프링 애니메이션이란?

여러 서비스가 동작할 때 얼마나 그 기능이 문제없이 잘 작동하는 것도 중요하지만 사용자의 반응에 맞춰 적절한 애니메이션이 가미된다면 보다 역동적인 앱을 만들 수 있습니다. 안드로이드에서는 다양한 방법으로 애니메이션을 제공해주고 있는데, 그 중 물리학 모션을 기반으로 만들어진 SpringAnimation에 대해서 알아보겠습니다. 스프링 애니메이션이란? 안드로이드 개발자 문서에서는 다음과 같이 설명하고 있습니다. Spring force is one such force that guides interactivity and motion. A spring force has the following properties: damping and stiffness. In a spring-based animation, t..

안드로이드 2021.07.08

[Android/Kotlin] 중복 클릭을 막아보자(SingleClick) - MingSingleClickListener

현재 회사에 입사해서 열심히 안드로이드 개발자로서 삶을 살아가다 보니 블로그의 관리가 엄청 뜸해지더군요... 첫 직장이라서 피로감이 엄청난 것도 있고, 회사에서 개발하는 것만 해도 엄청나게 양이 많다 보니 포스팅할 체력이 남아나질 않았습니다 ㅜ 그래도 최근에는 어느정도 적응이 돼서 퇴근 후 자기 계발을 틈틈이 하는데요 개인적인 공부를 하다가 문득 라이브러리 제작에 흥미를 가지게 되었습니다. 막연하게 인터넷을 뒤져가며 라이브러리 제작하는 것을 찾아보고 실습해보면서 실제로 배포를 해보고 남들이 잘 써주면 얼마나 좋을까?라는 생각을 안 할 수가 없더군요 ㅋㅋㅋ 그래서 간단하면서도 유용하게 쓰일 만한 기능이 뭐가 있을까 생각하다가 뷰의 중복클릭을 막아주는 라이브러리를 만들어보자 생각했습니다. 물론 뷰의 중복클릭..

안드로이드 2021.05.21

[Android/Kotlin] SharedPreferences 대신 쓰는 DataStore

지금까지 우리들은 로컬에 간단한 데이터들을 저장하기 위해서 SharedPreferences를 사용했습니다. 하지만 현재 안드로이드에서는 DataStore의 사용을 적극 권장하고 있습니다. ( 개발자 문서에서도 SharedPreferences 사용 가이드를 빼버렸더군요 ㄷㄷ... ) DataStore가 무엇 인가요? DataStore는 프로토콜 버퍼를 사용하여 키-값 쌍 또는 유형이 지정된 객체를 저장할 수 있는 데이터 저장소 솔루션입니다. 코루틴 및 Flow를 사용하여 비동기적이고 일관된 트랜잭션 방식으로 데이터를 저장하는 것이 특징이라고 할 수 있습니다. DataStore는 키 - 값 으로 구성되어 있는 Preferences DataStore , 사용자가 정의한 데이터를 저장할 수 있는 Proto Da..

안드로이드 2021.03.12

Android Studio 4.1로 오면서 사라진 Kotlin extension 대응법

27기 Sopt 안드 파트장으로 활동하고, 학교도 다니고, 프로젝트도 하는 바쁜 일상을 사는 2020년 하반기... Android Studio가 4.1로 최신 업데이트가 되면서 여러 가지 기능들이 생겼습니다. (이에 대해서는 추후 포스팅해보겠습니다.) 자료도 만들 겸 안드로이드 스튜디오를 켜고 작업을 시작하던 찰나... 이상한 것이 있었으니.... 여느 때처럼 아무렇지 않게 사용하던 kotlin extension이 안 되는 겁니다... 그래서 다른 프로젝트들도 안되나 싶어서 허둥지둥 열어봤지만 다른 프로젝트들은 다 잘되더군요... 마침 이와 같은 고민을 하고 계시던 파트원분들 중 한 분이 저에게 헬프를 요청하셨었는데, 저도 이러한 현상을 겪으니 해결해야겠다는 마음가짐(을 빙자한 빡침)으로 찾아보게 되었습..

안드로이드 2020.10.15

[Android/Kotlin] MotionLayout - 2 ( 실제로 적용해보자.)

지난 포스팅에서 다룬 MotionLayout의 개념을 바탕으로 실제로 실습한 내용에 대해 포스팅하겠습니다. 지난 글을 못 읽으셨던 분은 아래 링크를 타고 한 번 읽고 오신다면 이해하기 편하실 겁니다. kangmin1012.tistory.com/41 [Android/Kotlin] MotionLayout (애니메이션을 쉽게 적용하기) 안드로이드 앱을 만들 때마다 항상 하는 고민이 있습니다. 어떻게 해야 앱을 멋있게 만들 수 있을까.... UI/UX에 맞게 앱을 만드는 것도 멋있지만 거기에 애니메이션이 추가가 된다면 얼마나 멋있� kangmin1012.tistory.com 지난 글에 저는 Android Studio가 4.0으로 올라오면서 MotionLayout Editor를 지원한다고 얘기했었습니다. 그래서 ..

안드로이드 2020.09.17

[Android/Kotlin] MotionLayout (애니메이션을 쉽게 적용하기)

안드로이드 앱을 만들 때마다 항상 하는 고민이 있습니다. 어떻게 해야 앱을 멋있게 만들 수 있을까.... UI/UX에 맞게 앱을 만드는 것도 멋있지만 거기에 애니메이션이 추가가 된다면 얼마나 멋있을까요? 다음 웹툰만 보더라도 애니메이션을 넣어서 엄청 예쁘게 보이게 됩니다. 유튜브나 유튜브 뮤직에서 보이는 슬라이드 애니메이션을 생각하시면 될 것 같네요. ㅎㅎ 이를 만족시키기 위해 여기저기 돌아다니던 중 MotionLayout을 알게 되었습니다. 그럼 MotionLayout이 뭔지 한 번 확인해 보도록 하겠습니다. 해당 포스팅은 Android Developer에 있는 내용을 중심으로 작성하였습니다. developer.android.com/training/constraint-layout/motionlayout..

안드로이드 2020.09.06

[Android/Kotlin]( MVVM 다가가기 )ViewModel + LiveData + DataBinding

이번 포스팅에는 MVVM 디자인 패턴을 실현하기 위한 핵심인 ViewModel을 사용하는 실습을 포스팅하려고 합니다. MVVM 패턴을 왜 하려고 하는지, 또 이전 포스팅 DataBinding을 보지 못한 분들은 보고 오는 것이 이번 포스팅을 이해하는데 더 편할 것이라고 생각합니다. 자 이제 무엇을 할것이냐? (MVVM 패턴) 자 이제 무엇을 할것이냐? (MVVM 패턴) 지금까지 나는 개발을 할 때 activity에 모든 코드를 때려 박았다. 어떻게 보면 대가리만 큰 코드가 되었다고 할 수 있다. 이렇게 activity에 모든 코드를 넣어버리면 자연스럽게 어플은 무거워지고, kangmin1012.tistory.com 데이터 바인딩 기초 [Android/Kotlin] DataBinding(데이터바인딩) 1 ..

안드로이드 2020.08.03

[Android/Kotlin]ViewPager에 wrap_content 가능케 하기

ConstraintsLayout을 사용할 때 뷰의 크기는 match_parent, wrap_content, 0dp로 크기를 조정하는게 일반적이다. 이 때 ScrollView안에 ViewPager가 들어가게 되면 제대로 화면에 보여주지 않을 때가 있다. 고정 dp를 주게 되면 잘 보이지만 이는 ConstraintLayout을 사용하는 의미가 퇴색된다. 그렇다고 wrap_content를 사용하려고 하자니 wrap_content는 제대로 작동하지 않는다. 그럴 때 우리는 어떻게 해야 ConstraintLayout의 장점을 살리면서 wrap_content 뿐 아니라 ViewPager의 ScrollView 이슈를 해결 할 수 있을까? 방법은 다음과 같다. 다음과 같은 클래스를 하나 만들어 준다. 해당 클래스는 V..

안드로이드 2020.07.06