안드로이드
-
[Android] RecyclerView 사용법안드로이드 2022. 3. 5. 21:17
RecyclerView란 Android에서 List형태로 구성하고 싶을 때 사용하는 View입니다. 기존의 ListView는 커스텀하기에는 구조적인 문제로 많은 제약이 따랐으며, 구조적인 문제로 인해 성능 문제가 있었습니다. ViewHolder 패턴을 활용해 View를 재활용해 사용할 수 있어 메모리 관리에 매우 효율적입니다. 🔥 RecyclerView의 재활용성♻️ ListView와는 다르게 RecyclerView는 사용자가 스크롤 할 때마다 맨 위에 위치한 뷰 객체를 삭제하지 않고 아래쪽에서 새로 나타날 파란색 뷰 위치로 객체를 이동시킵니다. 즉 뷰 객체 자체를 재사용하는 것인데, 중요한 점은 뷰 객체를 재사용할 뿐이지 뷰 객체가 담고 있는 데이터는 새로 갱신되는 것이므로 효율적입니다. 주요 클래스👀..
-
[Android] LiveData란안드로이드 2022. 2. 24. 12:41
LiveData란👀 LiveData는 Data의 변경을 관찰할 수 있는 데이터 홀더 클래스입니다. 일반적인 Observable과는 달리 LiveData는 안드로이드 LifeCycle을 따르고 있습니다. 여기서 LifeCycle은 Activity, Fragment, Service 등과 같은 안드로이드 컴포넌트의 LifeCycle을 인식합니다. 이에 따라 LiveData는 해당 컴포넌트의 LifeCycle의 상태가 ACTIVE(STARTED or RESUMED) 일 때만 데이터를 업데이트합니다. LiveData 객체는 Observer 객체와 함께 사용되어 LiveData가 가지고 있는 데이터에 어떤 변화가 감지되면 LiveData는 Observer객체에 변화를 알리고 Observer의 onChanged메서드..
-
[Android]Glide 라이브러리를 통해 이미지 Load하기안드로이드 2022. 2. 11. 12:37
안드로이드 개발을 할 때 이미지를 띄우고자 할때, 여러 방법이 있습니다. 1. 안드로이드 프로젝트의 drawable폴더의 리소스를 보여주는 경우 2. 안드로이드 디바이스 안에 저장되어있는 사진(갤러리 등)을 보여주는 경우 3. 이미지 URL을 로드해서 보여주고자 하는 경우 Glide란‼️ Glide는 위와 같은 3가지 방법들을 안드로이드에서 이미지를 빠르고 효율적으로 불러올 수 있게 도와주는 라이브러리입니다. 이미지, GIF,비디오 스틸의 로딩과 디코딩, 캐싱 등의 다양한 API를 사용할 수 있습니다. 기본적으로 커스텀하게 만들어진 HttpUrlConnection 기반이지만, Volley나 okHttp 라이브러리를 사용할 수 있는 플러그인도 지원합니다. Glide 사용 방법 1. build.gradle(..
-
[Android] Android Context란?안드로이드 2022. 2. 7. 13:30
안드로이드 개발을 하다 보면 Parameter로 Context를 빈번하게 넘겨주게 됩니다. 하지만 이 Context가 뭔지도 모르고서 계속 사용하다가 Context를 잘못 사용 시 메모리 누수가 쉽게 발생하게 됩니다.🤦🏻♂️ 그래서 Context가 무엇인지, 어떻게 사용해야 하는지에 대해서 알아보았습니다. Context란 애플리케이션의 현재 상태 Activity와 Application에 대한 정보를 얻는 데 사용 Resource, Database 및 Shared Preference에 대한 액세스 권한을 얻는 데 사용할 수 있다. Activity 및 Application 클래스 모두 Context 클래스 확장한 클래스 Context의 종류 Application Context : 싱글톤 인스턴스이며 get..
-
[Android] SwipeRefreshLayout과 ScrollView 동시 사용시 문제안드로이드 2022. 1. 24. 16:49
화면을 아래로 당겨서 UI를 새로고침 하기 위해서 사용한 SwipeRefreshLayout과 세로로 긴 화면을 스크롤하여 보여주기 위해 사용한 ScrollView를 동시에 사용했을 때 아래로 스크롤 한 다음, 다시 위로 스크롤하려 했을 때 스크롤되지 않고 무조건 새로고침이 되는 상황이 발생했었습니다.🤷🏻♂️ 위 문제점을 해결하기 위한 방법이 2가지가 있습니다. 1. NestedScrollView 사용 이 방법은 간단한데, ScrollView 대신에 NestedScrollView를 사용하면 해결됩니다. 안드로이드 개발자 문서에서도 나와있다시피 NestedScrollView는 ScrollView와 비슷하지만 부모와 자식 사이에서의 중첩 스크롤을 지원한다고 나와있어서 아주 간단한 해결책이 될 수 있습니다. ..
-
[Android] Kotlin의 coroutine안드로이드 2022. 1. 20. 15:00
Coroutine이란 (co(동시에) + routine) Coroutine은 일시 중단이 가능한 작업 객체라는 의미를 가지고 있습니다. 즉 비동기적으로 실행되는 코드를 단순화하기 위해 Android에서 사용할 수 있는 동시성 디자인 패턴 중 하나입니다. Android에서의 Coroutine은 기본 스레드를 차단하고 앱이 응답하지 않게 만들 수 있는 장기 실행 작업을 관리하는데 도움이 됩니다. 특징🔥 경량화 : Coroutine이 실행 중인 Thread를 차단하지 않는 서스펜션 지원(많은 동시 작업을 지원하면서도 차단보다 메모리를 절약)으로 인해 단일 Thread에서 많은 Coroutine을 실행할 수 있습니다. 메모리 누수 감소 : 구조화된 동시성(새로운 Coroutine 객체는 반드시 Coroutine..
-
[Android] Fragment LifeCycle안드로이드 2022. 1. 12. 14:29
Fragment란? Fragment는 앱 UI의 재사용 가능한 부분을 나타냅니다. Fragment는 자체 Layout을 정의 및 관리하고 자체 생명주기를 가지며 자체 입력 이벤트를 처리할 수 있습니다. Fragment는 단독으로 존재할 수 없으며 Activity 또는 다른 Fragment에서 호스팅 해야 합니다. Fragment의 View 계층은 호스트의 View 계층의 일부가 되거나 연결됩니다. Fragment LifeCycle Fragment 인스턴스에는 고유한 수명 주기가 있습니다. 사용자가 앱을 탐색하고 상호작용할 때 프래그먼트는 추가, 제거, 화면 진입 또는 종료에 따라 수명 주기의 다양한 상태로 전환됩니다. 수명 주기를 관리하기 위해 Fragment는 LifecycleOwner를 구현하여 ge..
-
[Android] Activity Life Cycle안드로이드 2022. 1. 11. 15:00
Activity Life Cycle이란? 사용자가 앱을 탐색하고 앱에서 나왔다가 다시 돌아올 대 앱의 Activity 인스턴스는 생명 주기의 다양한 상태로 전환됩니다. Activity 클래스는 Activity 상태가 변경되었음을 알 수 있도록 하는 여러 가지 콜백 함수들을 제공합니다. 즉 시스템이 Activity를 생성, 중지 또는 재개하거나 Activity가 있는 프로세스를 파괴하고 있다는 것입니다. Activity 클래스가 제공하는 CallBack 함수들 onCreate() onStart() onResume() onPause() onStop() onDestroy() onCreate() 시스템이 처음 활동을 생성할 때 실행되는 콜백 함수입니다. Activity 생성 시 Activity는 onCreate..