BindingAdapter BindingAdapter는 적절한 프레임워크를 호출하여 값을 설정하는 작업을 담당합니다. 액티비티 또는 레이아웃에서 원하는 속성이 없어 해당 기능을 처리할 수 없을 때 BindingAdapter을 사용하여 View의 속성 값을 커스터마이징할 수 있습니다. 결합 어댑터 | Android 개발자 | Android Developers 결합 어댑터 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 결합 어댑터는 적절한 프레임워크를 호출하여 값을 설정하는 작업을 담당합니다. 한 가지 예로 developer.android.com BindingAdapter 생성 BindingAdapter는 Java의 static 함수로 되어 있기 때문에 @JvmStatic 어..
LiveData LiveData는 Data의 변경을 관찰할 수 있는 Data Holder 클래스입니다. 이는 일반적인 Observable과는 다르게 LifeCycleOwner를 통해 안드로이드 생명주기를 알고 있습니다. 즉, 액티비티나, 프레그먼트, 서비스 등과 같은 안드로이드 컴포넌트의 생명주기를 인식하며 그에 따라 LiveData는 활성 상태일 때만 데이터를 업데이트 합니다. 또한, LiveData 객체는 Observer 객체와 함께 사용됩니다. LiveData가 가지고 있는 데이터에 어떠한 변화가 일어날 경우, LiveData는 등록된 Observer 객체에 변화를 알려주고 Observer의 onChanged() 메소드가 실행되게 됩니다. LiveData 개요 | Android 개발자 | Andro..
ViewBinding ViewBinding을 사용하면 각 XML 레이아웃 파일의 Binding 클래스가 자동으로 생성됩니다. Binding 클래스의 인스턴스를 통해 상응하는 레이아웃의 모든 뷰를 직접 참조할 수 있습니다. Null 안정성 : 유효하지 않은 id를 사용하는 null exception를 방지할 수 있습니다. Type 안정성 : view 타입을 잘못 캐스팅하는 cast exception를 방지할 수 있습니다. 속도 : findViewById()보다 빠릅니다. 뷰 결합 | Android 개발자 | Android Developers 뷰 결합 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 뷰 결합 기능을 사용하면 뷰와 상호작용하는 코드를 쉽게 작성할 수 있습니다. 모..
ML Kit ML Kit의 얼굴 인식 API를 사용하면 이미지 속 얼굴을 인식하고 주요 얼굴 특징을 식별하며 인식된 얼굴에서 윤곽을 가져올 수 있습니다. 얼굴 인식 | ML Kit | Google for Developers 이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 얼굴 인식 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. ML Kit의 얼굴 인식 API를 사용하 developers.google.com ML Kit 구현하기 1. build.gradle에 의존성 추가 ML Kit를 사용하기 위해서 build.gradle에 ML Kit 라이브러리를 추가합니다. implementation 'com.google.mlk..
CameraX CameraX는 Camera2 패키지를 기반으로 만들어진 Jetpack 라이브러리입니다. CameraX는 Camera2보다 API가 훨씬 단순하고 기기 호환성 문제가 없기 때문에 안드로이드에서 권장하고 있습니다. 미리보기, 이미지 분석, 이미지 캡처 등의 use case를 활용해 카메라 앱을 제작 추가적으로 인물 사진, HDR, 야간, 뷰티 등의 네이티브 카메라 기능을 편리하게 사용 저수준의 기기별 코드를 포함할 필요 X API 21부터 사용 가능 CameraX 개요 | Android 개발자 | Android Developers 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. CameraX 개요 Android Jetpack의 구성요소 CameraX는 더 쉬운 ..
Touch 안드로이드에서는 모든 행동이 Touch로 인해 이루어집니다. 기본적으로 Activity를 통해 화면을 구성하며, 사용자는 화면을 터치함으로써 애플리케이션에 다양한 이벤트를 전달할 수 있습니다. ViewGroup에서 터치 이벤트 관리 | Android 개발자 | Android Developers ViewGroup에서 터치 이벤트 관리 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. ViewGroup에서 터치 이벤트를 처리할 때는 특별히 주의해야 합니다. 왜냐하면 View developer.android.com MotionEvent Touch의 모든 행동은 MotionEvent에 보고됩니다. MotionEvent에는 4가지의 Action이 있습니다. 여기서 제스쳐는 ..
ExoPlayer ExoPlayer는 Google에서 제공하는 앱 수준 미디어 재생 라이브러리입니다. MediaPlayer 대신 사용할 수 있으며, 로컬 및 인터넷을 통해 오디오/비디오를 재생할 수 있습니다. 또한, MediaPlayer에서 지원되지 않는 HTTP 및 SmoothStreaming과 같은 많은 기능을 지원합니다. ExoPlayer | Android 개발자 | Android Developers ExoPlayer 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. ExoPlayer는 Android 프레임워크에 속하지 않고 Android SDK에서 별도로 배포되는 오픈소스 프로젝트입니다. developer.android.com ExoPlayer 구현하기 1. Manif..
AppBarLayout AppBarLayout은 Toolbar를 포함하여 Toolbar 이외에 액티비티 화면 상단을 다양하게 구성할 수 있는 레이아웃입니다. Material Design Build beautiful, usable products faster. Material Design is an adaptable system—backed by open-source code—that helps teams build high quality digital experiences. m3.material.io AppBarLayout 구현하기 CoordinatorLayout을 부모 레이아웃으로 하며, AppBarLayout 내에 CollapsingToolbarLayout(툴바 영역)이 들어가고 NestedScrol..