Android Developer ViewModelViewModel 클래스는 수명 주기를 고려하여 UI 관련 데이터를 저장하고 관리하도록 설계되었습니다. ViewModel 클래스를 사용하면 화면 회전과 같이 구성을 변경할 때도 데이터를 유지할 수 있습니다.기존에 앱은 화
Android JetPack 라이브러리에서 제공하는 기능 중 하나로써 (xml파일) 레이아웃을 binding하는데 필요한 코드를 줄이는 방법이다.보통 MVVM 패턴을 구현 할 때 "LiveData"와 함께 거의 필수적으로 사용한다고 한다.developer.android
BaseActivity란 여러 Activity를 사용할 때 중복되는 코드를 미리 정의하여 소스를 간소화 및 간단하게 만든다.화장품으로 치면 본격적인 화장에 들어가기 전에 바르는 파운데이션 느낌액티비티에서 사용하기프로그래밍 언어에는 Int, Long, Char 등 여러
Firebase 홈페이지에서 프로젝트 생성 페이지에서 시키는대로 진행 한다.파이어 베이스 구성 파일(google-service.json)을 다운로드 하여 프로젝트 app폴더에 넣는다.signingReport에서 SHA1 찾아서 키값 입력signingReport 없으면
들어가기 전에 개념적으로 알아야 할 것이 있다.ACC : Android Architecture ComponentQ. MVVM에서의 ViewModel과 ACC에서 제공하는 ViewModel은 서로 다른가?정답은 Yes라고 하기도 애매하다. 왜냐하면 두 ViewModel의
코로나 확진 현황 및 근황을 긁어 모아서 출력해주는 앱을 만들으면서 진행했던 과정이다. GitHub 링크 XML 파싱 공공데이터 포털에서 제공하는 API로 서울의 최근 일주일동안 코로나 확진자 수를 파싱하였다. 파싱했던 데이터 구조 incDec -> 신규
GitHub Link네이버 API로 가져온 뉴스들이다.뉴스를 화면에 뿌려주는 것까지는 좋았는데 뉴스를 클릭할 시에 각각 뉴스의 링크로 이동하고 싶은데 어떻게 해야할까?어뎁터 함수내에서 외부와 연결해 사용할 interface를 만들어 주기ViewHolder에서 bind할
보통 사용자가 핸드폰 앱에 저장할 수 있는 곳은 SharedPreference, SQLite, Room DB정도가 있다.그중 Room DB란 제트팩 라이브러리의 구성요소 중 하나이며Room 지속성 라이브러리는 SQLite를 완벽히 활용하면서 원활한 데이터베이스 액세스가
Android Developer Coroutine이란? 써보기 이 코루틴은 viewModelScope로 시작되므로 ViewModel 범위에서 실행됩니다. 사용자가 화면 밖으로 이동하는 것으로 인해 ViewModel이 소멸되는 경우 viewModelScope가 자동
Generic : 포괄적인, 총칭의(네이버사전)제너릭이란 데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있도록 하는 방법이다.제너릭 클래스코틀린에서의 클래스는 자바와 같이 타입파라미터를 가진다.코드를 작성하다 보면 다양한 타입에 동일한
RoomDB -> ViewModel -> Repository로 연결되는 구조를 생성하기 위해 뷰모델을 생성하다가 난 오류Cannot create an instance of class HospitalViewModel의 인스턴스 클래스를 생성할 수 없다고 한다.소스를 들여
지도에서 마커를 선택했을 때 각각 마커마다 어떻게 다른 이벤트를 연결 할 수 있을까?? EX) ㅇㅇ병원에서 이름 클릭 : ㅇㅇ병원의 정보창으로 이동 --- ### ViewModel 구조 현재 마커를 클릭했을 때 뜨는 Info창을 따로 관리하는 ViewModel을
모바일 환경에서 타앱을 실행시키거나 또는 문자메시지에서 링크를 누르면 앱이 자동으로 실행하는 것과 같은 행동을 어떻게 할까?외부에서 앱을 실행시킬 수 있는 방법에 대해 알아보자지금까지는 Intent를 다른 액티비티를 실행하는 것 까지밖에 사용하지 않았었지만, Inten
간단하게 요약하자면 DataStore는 다음과 같은 특징이 있습니다. DataStore는 코루틴과 Flow를 통해 읽고 쓰기에 대한 비동기 API를 제공합니다. DataStore는 UI 스레드를 호출해도
비동기로 수행되는 여러 작업들 중 먼저 해야하는 작업이 있을 때 어떻게 하면 좋을까?서버쪽 DB에 공공API 최신 정보가 바뀔때 마다 Version Data를 Update해준다.프론트는 Splash화면에서 로컬의 Version Data와 서버의 Version 데이터 만
개발을 진행하다보면 싱글톤 패턴을 사용하길 권장하는 소스가 몇개 있다. 보통 이런상황에서는 싱글톤 구조를 사용하지 않으면 메모리 릭이 발생하거나, 수명주기를 벗어나 계속 객체가 살아있는 상황이 종종 일어난다고 한다. 그렇다면 싱글톤패턴이 무엇일까? 싱글톤 패턴 앱
Rxjava와 Reactive프로그래밍에 대하여
Problem Pager 3 library을 사용한 RecyclerView에서 사진을 선택하고 스크롤을 진행하고 나면 Item들이 섞이는 문제 RecyclerView의 특성상 뷰를 재사용함에 있어 각각의 뷰에 State를 지정하는데에 있어 문제가 발생했다. 다음과
Jetpack은 개발자가 관심 있는 코드에 집중할 수 있도록 권장사항 준수, 상용구 코드 축소, 모든 Android 버전 및 기기에서 일관되게 작동하는 코드 작성을 돕는 라이브러리 모음입니다.안드로이드 앱을 더 완성도있게 만들 수 있는 라이브러리라고 생각하면 될 것 같
안드로이드개발에 빠질 수없는 MVVM패턴 그에 빠질 수 없는 옵저버 패턴을 구현하기 위해 지금까지 사용했던 LiveData 하지만 안드로이드 디벨로퍼에서는 LiveData를 StateFlow로 교체하여 사용하는 것을 권장한다고 한다.Android developerSta
Hilt가 뭘까요? Android Developer Hilt공식 홈페이지의 내용을 나만의 언어로 정리해 보자. > Hilt는 프로젝트의 모든 Android 클래스에 컨테이너를 제공하고 수명 주기를 자동으로 관리함으로써 애플리케이션에서 DI를 사용하는 표준 방법을
다음과 같이 여러 프래그먼트에서 공통된 관심사의 로직을 수행할때 데이터를 공유하려면 어떻게 해야할까?(fragment-ktx 라이브러리의 by activityViewModels() Kotlin 속성 위임을 사용)이러한 방법은 Activity의 라이프사이클에 의해 생존주
디자이너의 요청 앱 자체내에서 커스텀 인스타 풍의 커스텀 캘러리를 만들기를 원하신다. 안드로이드 커스텀 갤러리 마침 다음 블로그에서 인스타풍 커스텀 갤러리를 친절히 만들어 놓으셔서 해당 글을 참고하며 진행했다. 1. Content Provider를 사용하여 전체
Binding Adapter(결합 어댑터)에 대해 Binding Adapter, 즉 결합 어댑터는 적절한 프레임워크를 호출하여 XML에 사용자가 지정하는 값을 설정하는 작업을 담당한다. 사전정의된 예로는 android:text 와 같이 속성 값을 설정하는 것 또는
DataBinding과 ViewBinding의 차이 데이터 바인딩과 뷰 바인딩은 모두 직접 뷰를 참조하는데 사용할 수 있는 결합 클래스를 생성한다. 이 두 바인딩의 차이점을 무엇일까? viewBinding annotaion processing이 필요하지 않아 컴파
stack-overFlow Is it a bad practice to have multiple Viewmodels, approximately one for each fragment?앱의 아키텍처에서 UI 레이어와 데이터 레이어의 로직을 분리하여 사용하라는 말을 들었을
라는 질문을 받았을 때, 뭐라 대답해야 할까? 그 대답에 대해 명확하게 답변하기 위해 안드로이드의 앱 아키텍쳐 가이드를 살펴보자.앱 아키텍처 카이드 - 안드로이드 디벨로퍼일반적으로 안드로이에서 앱구성요소에는 4대 컴포넌트(액티비티, 서비스, 브로드캐스트 리시버, 콘텐트
코루틴이란?? 백그라운드 작업을 위한 쓰레드를 직접 만들고 사용할 수도 있지만, Kotlin에서 멀티테스킹을 더 유연하고 쉽게 관리할 수 있는 코루틴을 제공한다. 코루틴은 비동기적이고 non-blocking한 프로그래밍을 제공하는 경량스레드이다. 많은 리소스가 필
Compose에서의 컴포넌트는 remember API를 사용하여 메모리에 객체를 저장할 수 있다.왜? remember객체를 사용해야 하는가?remember에 의해 계산된 값은 초기 컴포지션 중에 컴포지션에 저장되고 저장된 값은 리컴포지션 중에 반환된다. 초기 컴포지션:
How are Android activities handled with Jetpack Compose and Compose Navigation?기존에 Jetpack Navigation라이브러리를 사용하여 SAA로 개발을 진행하였다. 그렇다면 Compose를 사용할 때는
특정 공간이나 구역에 드로잉을 할 수 있게해주는 컴포넌트이다. Component that allow you to specify an area on the screen and perform canvas drawing on this area. 사용자는 Modifier.f
Compose스럽게, Composically 하게 버튼을 만드는 방법
코틀린은 가독성에 초점이 맞추어진 언어이다. 어떻게 하면 가독성을 늘릴 수 있을까? 안드로이드를 개발할 때 구글에서 사용하는 코틀린 스타일을 알아보자.
네트워크 요청을 Flow 및 Sealed클래스를 사용해 비동기로 관리해보자. + 비동기 네트워크 요청에 대한 로딩 처리
아니요. 하던대로 관심사를 분리하고 많이 쓰세요
컴포즈에서 Jetpack의 페이징 라이브러리 사용해보기, 폴더별 이미지 가져와서 커스텀 갤러리 만들기
구글에서 권장하는 Compose의 State관리를 나만의 언어로 바꾸어 설명해보자. 또한 Compose Navigation을 사용하며 return intent를 구현해보자.
나중에 내가 유용하게 쓸 패스워드 용 BasicTextField 커스텀
시스템 UI상관없이 뷰를 가득차게 만드는 방법, Window Insets이 무엇이고 Compose에서 이를 활용하는 방법을 설명한다.
안드로이드 스튜디오 - 전기뱀장어 패치 노트
컴포즈에서 안드로이드 권장 아키텍처를 준수하는 방법을 에시와 함께 알아보자.
File URI와 Content URI의 차이점은 무엇인지, 실제 카메라에서 File Provider와 Content URI를 활용해 이미지를 가져와보기
JWT란 무엇이고, 안드로이드에서 JWT를 자동 재발급 받는 방법에 대하여 알아본다.
앱을 관리하고 업데이트하기 위해서 Analytics와 Crashlytics를 등록하고 관리하는 방법
서버에서 10Mb 넘는 이미지를 줄 때 당신은 어떻게 할 것인가??
20분만에 익명 채팅 어플리케이션 만들기
Compose에서의 UI 테스트를 알아보고 TDD기반 개발을 해보자.
스레드가 무엇인지, 안드로이드에서 이를 어떻게 다루어야 하는지에 대하여
Flow란 무엇이고 어떻게 활용해야 하는가?? 반응형 프로그래밍에서의 RxJava와 Kotlin Flow에 대한 정리
안드로이드 디벨로퍼에서 설명하는 안드로이드 플랫폼 아키텍쳐에 관하여
Android의 런타임 환경인 Dalvik과 ART에 관하여
JAR : 자바 라이브러리 패키지, AAR : 안드로이드 특화 라이브러리 패키지, DEX : 안드로이드 런타임에 사용되는 파일, APK : 앱 설치시에 활용되는 파일
빌드와 빌드 도구 그리고 빌드 과정에 대하여
2023 Google I/O 내용 중 하나인 Best practices for saving UI state on Android를 정리했습니다.
Github Action을 활용하여 Firebase App Distribution 자동화 하기