AAC ViewModel 안드로이드 앱에서 화면 전환, 화면 크기 변경, 언어설정, 키보드 숨김 변경 등의 경우 configuration change(구성 변경) 이 일어난다. 이때 Activity/Fragment 에서 일시적으로 onDestory() 되었다가 다시 onCreate() 되면서 화면이 다시 그려지게 된다. 그렇기 때문에 어떤 data가 뷰를 통해 보여주고 있었다면 data 가 초기화 되는 현상이 발생할 수 있다. 이를 방지하기 위해서는 화면이 다시 그려져도 data가 보존될 수 있도록 해야 하는데 그 방법도 다양하다. SharedPreference를 사용해 전역적으로 저장하거나 DB 등을 이용할 수도 있고, 일반적으로는 onSaveInstanceState() 메서드를 사용해 destroy ..
분류 전체보기
요즘 기업에서 안드로이드 직군 자격요건&우대사항을 뒤져보면 MVVM을 다루본 개발자를 찾는 경우가 많은데 트민녀인 나는 또 그냥 지나칠 수가 없었다ㅎㅎ 또 작년엔 디자인패턴 공부도 열심히 했기 때문에 새로운 패턴에 관심도 많이 갔다. 그런데 MVC 패턴도 제대로 써본 적 없는 내가 글만 보고 MVVM 패턴을 단박에 이해하기란 쉽지 않았다. 그래서 MVVM 관련 블로그도 있는대로 찾아서 읽고 또 읽었고, 블로그 코드들을 참고하며 냅다 프로젝트에 적용해 보았다. 그러다 크나큰 실수를 저지르게 되었는데.... 바로 사실 내가 MVVM 패턴을 사용한 것이 아니라 단지 AAC의 ViewModel을 사용했다는 것이다. 아마 나같은 실수를 하는 사람이 굉장히 많을 것이다. 많은 블로그에서 정확하게 명명하고 있지 않기..
이전에 객체를 전달하기 위해 Parcelable을 상속받아 Parcelable객체를 만들어 사용하는 방법에 대해서 포스팅했었다. Parcelable을 사용하는 이유는 객체 전달시 객체 직렬화 필요하기 때문인데 직렬화는 객체가 갖고 있는 다양한 변수들을 하나의 Byte 별 형태로 만드는 작업이라고 배웠다. Parcelable 인터페이스를 상속받고 메서드 오버라이딩을 통해 객체 -> Parcel, Parcel -> 객체 의 변환 과정을 명시적으로 구현 한다. 그런데 새로운 프로젝트를 진행하며 retrofit을 사용하게 되었고 자연스럽게 객체를 송수신하기 위해서 직렬화와 관련된 기술에 대해 더 찾아보던 중 Serializable에 대해서 알게 되었다. Serializable 표준 JAVA 인터페이스 내부적으로..
최근 진행하고 있는 프로젝트에서 구글 로그인/회원가입 방식을 사용하고 있고 간단하게 개발자 등록을 하고 키를 발급받아 간단하게 인증을 진행한 내용의 포스팅을 적었었다. 그때 난 우여곡절 끝에 네이티브키를 사용해 구글 로그인에 성공해 간단한 회원정보를 받아왔었다. 그런데 현재 우리 앱 상황은 백엔드 동료가 따로 aws 웹서버를 구축해 내 앱과 서로 통신하며 개발하고 있고, JWT 토큰 방식으로 인증 및 세션 유지 등을 하고 있기 때문에 조금 다른(?) 방식으로 Google Oauth를 사용해야 할 것 같아서 포스팅을 적는다. 무수한 검색과 질문, 삽질을 통해 내가 이해한 우리의 구글 오우ㄸth 프로세스는 아래와 같다. 1. 앱에서 웹클라이언트 키를 사용함 2. 앱에서 사용자가 구글 계정을 선택하도록 하고..