RecyclerView with multiple item types in Kotlin이란?개발을 하다보면 여러 개의 Recycler View를 만들게 되어 프로젝트 구조가 복잡해지기 마련이다. 예를 들면 하나의 Recycler View에 여러 타입의 뷰를 띄워야 하는 경우도 있습니다. 예를 들면, 네이버 카페 어플에서 글을 본다고 할 때, 사진+제목, 제목, 광고와 같은 타입으로 아이템이 나눠질 수 있다. 하나의 View에는 하나의 DataItem밖에 들어가야하지 않을까?나도 처음에는 그렇게 생각하였지만 공부를 하면서 그렇게 하지 않아도 된다는 점을 발견하였다. 여러가지 방법이 있다. 하지만 이번 포스팅에서는 "Sealed Class를 활용해서 ViewHolder와 Item 묶어내는 방법"으로 Mutip..
SharedPreferences란안드로이드 앱 개발을 진행하다 보면, 앱의 데이터들을 저장하여 관리해야 할 상황이 존재한다. 데이터의 양이 많거나 중요 데이터의 경우 서버나 DB에 저장해야겠지만, 간단한 설정 값이나 문자열 같은 데이터를 저장하기 위해 DB를 사용하기는 부담스럽기 때문에 SharedPreferences를 사용하는 것이 적합하다.보통 초기 설정값이나 자동 로그인 여부 등 간단한 값을 저장하기 위해 사용Application에 파일 형태로 데이터를 저장한다.Application이 삭제되기 전까지 저장한 데이터가 보존된다.Key-value 방식xml 파일 형태로 데이터를 저장 (data/data/패키지명/shared_prefs/SharedPreferences파일 형태로 저장되므로 너무 많은 데이..
Android Thread에 대해서 알아보자.일반적으로 Thread는 메인 스레드와 백그라운드 스레드로 나누어진다. 메인 스레드앱이 처음 시작되면 시스템이 스레드 하나를 생성하는데 이를 메인 스레드라고 한다. 메인 스레드의 역할은 크게 두 가지로 액티비티의 모든 생명 주기 관련 콜백을 실행을 담당하거나, 버튼, 에디트텍스트와 같은 UI 위젯을 사용한 사용자의 이벤트와 UI드로잉 이벤트를 담당한다. 그렇기 때문에 UI 스레드라과 불린다. 백그라운드 스레드작업량이 큰 연산이나, 네트워크 통신, 데이터베이스 쿼리 등은 처리에 긴 시간이 걸린다. 이 모든 작업을 메인 스레드의 큐에 넣고 작업하면 한 작업이 처리가 완료될 때까지 다른 작업을 처리하지 못하는 현상이 발생한다. 이러한 현상을 피하기 위해서 백그라운드..
onNewIntent()란 onNewIntent는 안드로이드 액티비티(Activity) 생명주기(LifeCycle)에 속하는 콜백 메소드 중 하나이다. 이 메소드는 현재 액티비티가 이미 생성되어 있고, singleTop, singleTask 또는 singleInstance와 같은 특정 launch mode를 가지고 있을 때, 새로운 인텐트로 인해 액티비티가 다시 시작할때 호출된다. 즉 onNewIntent()는 매니페스트에서 액티비티의 launchMode를 singleTop으로 설정하거나, FLAG_ACTIVITY_SINGLE_TOP 플래그를 썼을 경우, 액티비티 스택의 최상위 액티비티가 새로운 인텐트를 통해 재시작될 때 호출되는 메서드다. 왜 사용하는가? 인텐트 업데이트 : 실행 중이던 액티비티가 새 ..
Retrofit에 대한 간단 정리 https://superohinsung.tistory.com/151 [Android] Retrofit Retrofit이란 Retrofit은 안드로이드 앱에서 RESTful API와 통신할 때 사용되는 라이브러리 중 하나입니다. Retrofit은 Square Inc.에서 개발된 오픈 소스 라이브러리로, 안드로이드 앱 개발을 위한 RESTful API superohinsung.tistory.com OkHttp란 OkHttp는 안드로이드 개발에서 인터넷을 통한 데이터 교환을 위해 널리 사용되는 오픈소스 HTTP 클라이언트 라이브러리이다.Square Inc.에 의해 개발되었으며, HTTP 요청을 보내고 받는 것을 간소화하고, 네트워크 속도가 느린 환경에서도 효율적으로 동작하도록..
오늘은 테스트에 대해서 공부를 해보자. Junit4란 JUnit은 Java 프로그래밍 언어용 단위 테스트 프레임워크 중 하나이며, 안드로이드 앱의 테스트에도 널리 사용된다. 안드로이드에서는 JUnit 4가 주로 사용되며, 이를 활용하여 단위 테스트 및 통합 테스트를 작성할 수 있다. 테스트 코드를 작성하는 이유 자동화된 테스트 실행: JUnit4를 사용하면 테스트를 자동으로 실행할 수 있다. 안드로이드 스튜디오나 빌드 도구를 통해 테스트를 쉽게 실행하고 결과를 확인할 수 있다. 이는 반복적인 테스트를 통해 개발자가 신속하게 피드백을 받을 수 있게 해주며, 코드 변경 사항에 대한 신뢰성을 높일 수 있다. 안정성 및 신뢰성 확보: JUnit4를 사용하면 안드로이드 앱의 여러 부분에 대한 단위 테스트를 작성할..
오늘은 Room에 대해서 공부를 해보자. Room이란 Android에서 Room은 SQLite 데이터베이스를 쉽게 다룰 수 있도록 도와주는 지원 라이브러리이다. 안드로이드에서 앱의 데이터를 저장하는 방법은 크게 파일, 데이터베이스, 프리퍼런스로 나뉜다. 그 중 데이터 베이스 프로그래밍을 이용하여 안드로이드 폰에서 DB를 관리하는 오픈소스 SQLite 가 있다. Room은 SQLite를 완벽히 활용하면서 원활한 데이터베이스 액세스가 가능하도록 SQLite에 추상화 계층을 제공한다. Realm에 비해서 낮은 용량(약 64KB)을 가지면서 꽤 괜찮은 성능과 쉽게 사용할 수 있다는 장점이 있다. Room의 구성요소 Entity(엔터티): 엔터티는 데이터베이스의 테이블을 나타내는 클래스이다. 각 엔터티는 데이터베..
지난 프로젝트에 대한 회상 겸 정리할 겸 작성을 해보았다. (물론 너무 오랜 시간이 지나긴했지만...) 프로젝트를 진행하였을 때 ViewBinding을 일일히 Activity마다 혹은 Fragment마다 설정하는 것이 너무나도 귀찮았다. 그래서 추상화 클래스를 이용하여 ViewBindingActivity 그리고 ViewBindingFragment을 개발하였다. 결과적으로 효율적으로 ViewBinding을 사용할 수 있었으며, 문제가 생긴다면 위 2 클래스를 확인하면 되는 효율적임이 생겼다. 우선 ViewBinding이란 아래 포스팅 링크를 남기겠다. https://superohinsung.tistory.com/239 [Android] ViewBinding(뷰 바인딩) 정리 ViewBinding(뷰 바인딩..