본문 바로가기

Android52

[Android] 화면 크기 별 Layout 생성 화면 크기 별 Layout이 필요한 이유 모바일 환경에서 layout은 여러 가지 화면으로 변형될 수 있다. 예를 들면 하나의 layout을 스마트폰과 태블릿 두 곳에서 사용하면 분명 layout 객체들의 크기가 달라 보일 것이다. 또한 세로, 가로 화면의 전환에 따라 view가 달라질 수 있기에 귀찮더라도 화면의 크기에 따라 또 화면 모드에 따라 맞춰서 layout을 각자 생성해 주는 경우가 있다. ​ 구현해보기 기본 화면은 아래와 같이 세로 모드 portrait로 생성된다. ​ 그럼 가로모드 landscape 화면을 생성해 보자. New -> Layout Resource File ​ File name을 activity_main(본인이 만들려는 layout 이름과 동일하게) -> Orientation .. 2021. 3. 5.
[Android] Serialize, Parcelable, Parcelize 정리 Serialize, Parcelable, Parcelize를 사용하는 이유 기본 자료형과 참조 자료형 객체를 갖고 있는 데이터 클래스를 전달하기 위해 사용한다. 주로 안드로이드에서는 Intent에 데이터 객체 담아 보낼 때 사용된다. ​Serialize 이름 그대로 데이터를 직렬화 해주는 방식이다. Kotlin에서 구현하면 아래처럼 굉장히 짧게 구현할 수 있다. data class Player(val league: String, val skill: String): Serializable reflection이라는 기술을 사용하여 런타임에서 데이터를 직렬화/역 직렬 화하는 과정을 진행하기 때문에 GC가 할 일이 늘어나 속도가 느리다. Parcelable 기존 java를 이용해 앱 개발했을 때, 사용하던 방식.. 2021. 3. 5.
화면 회전에도 상태 값 유지하기 아래 프로젝트는 8개월 전 Udemy에서 Kotlin for Android:Beginner to Advanced강좌를 통해 공부했던 내용이다. 화면을 회전하게 되면 Activity는 저절로 OnPause -> OnStop -> OnDestroy -> OnCreate -> OnStart -> OnResume을 수행하게 된다. 이 과정에서 당연히 우리가 변수로 저장했던 값들을 null 값으로 변하게 되고 다음 Activity 또는 fragment로 보내려던 값을 정상적으로 보내지 못하게 된다. ​ 이 경우 여러 가지 방법이 있겠지만 가장 쉽고 대표적인 방법으로 OnSaveInstanceState()와 onRestoreInstanceState()를 사용하는 방법이 있다. ​ activity_league.xml.. 2021. 3. 5.
개인정보처리방침(Best Way) 1. 개인정보의 처리 목적 (‘junyoeng.tistory.com/’이하 ‘bestway’) 은(는) 다음의 목적을 위하여 개인정보를 처리하고 있으며, 다음의 목적 이외의 용도로는 이용하지 않습니다. - 고객 가입의사 확인, 고객에 대한 서비스 제공에 따른 본인 식별.인증, 회원자격 유지.관리, 물품 또는 서비스 공급에 따른 금액 결제, 물품 또는 서비스의 공급.배송 등 2. 개인정보의 처리 및 보유 기간 ① (‘junyoeng.tistory.com/’이하 ‘bestway’) 은(는) 정보주체로부터 개인정보를 수집할 때 동의 받은 개인정보 보유․이용기간 또는 법령에 따른 개인정보 보유․이용기간 내에서 개인정보를 처리․보유합니다. ② 구체적인 개인정보 처리 및 보유 기간은 다음과 같습니다. ☞ 아래 예시.. 2021. 3. 4.