Constraint Layout – Part2. 뷰의 배치를 돕는 가상 오브젝트

Virtual Helpers objects(뷰의 배치를 돕는 가상 오브젝트) 지난시간 Part1에서는 ConstraintLayout을 이용하여 기본적인 레이아웃을 잡는 연습을 했습니다. 이번시간에는 ConstraintLayout에서 가상 오브젝트들에 사용을 통해 좀 더 다양한 레이아웃을 만드는 연습을 해보도록 하겠습니다. 가상오브젝트의 종류에는 Guidline, Barrier, Group, Placeholder가 있습니다. Guideline 뷰의 위치를 잡는데 도움을 주는 유틸리티 클래스로 기본적인 동작은 visibility의 상태는 View.GONE이므로 더보기…

Constraint Layout – Part1. 만능 레이아웃

ConstraintLayout ConstraintLayout은 ViewGroup을 상속받아 확장시킨 라이브러리 입니다. 지난 2017년 2월에 1.0 버전이 출시되어 많은 개발자들이 이 라이브러리를 유용하게 써왔습니다. 출시때는 Android API9 수준까지 지웠했었는데요, 2.0부터는 API 14 수준부터 지원하게되었습니다. 사실상 API 14이상만되어도 안드로이드 전체 이용자 99.9%가 이에 해당하기 때문에 특수한 개발목적 또는 환경을 제외하고는 범용적으로 쓰일 수 있는 라이브러리입니다. ConstraintLayout 더보기…

Charles로 웹 디버깅 하기!

Charles란?? 웹 디버깅 프록시 프로그램으로 HTTP 프록시 / HTTP 모니터링 / 역방향 프록시로서 개발자가 자신의 기기의 모든 HTTP 및 SSL / HTTPS 트래픽을 볼 수 있도록 합니다. 여기에는 Request / Response 및 HTTP 헤더 (쿠키 및 캐싱 정보 포함)가 포함됩니다.   Charles 설치하기 https://www.charlesproxy.com/download/ 에서 다운 받아 설치 가능합니다. 무료 버전은 더보기…

Android Runtime Permission을 RxJava로 처리하기

Android Runtime Permission을 RxJava로 처리하기 Android 6.0 API 23 Marshmallow 버전 이상 부터는 Danger Level 권한에 대해서 Runtime Permission 요청 / 처리 를 해야합니다. 위험한 권한 및 권한 그룹 권한 그룹 권한 CALENDAR READ_CALENDAR, WRITE_CALENDAR CAMERA CAMERA CONTACTS READ_CONTACTS, WRITE_CONTACTS, GET_ACCOUNTS LOCATION ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION MICROPHONE RECORD_AUDIO PHONE READ_PHONE_STATE, CALL_PHONE, READ_CALL_LOG 더보기…

Android Final Architecture – (1) 개요

Final Architecture – (1) 개요 이 가이드는 이미 기초적인 안드로이드앱을 만들줄 알고, 조금 구조적인면에서 더 나은 앱을 만들기를 원하는 개발자를 위한 글입니다. 애플리케이션을 만들다보면 초기에는 어찌어찌 돌아는 가는데, 기능을 추가하고 업데이트를 하면 할 수록 유지보수가 힘들어 지는 것을 느낄수 있습니다. 어디부터 어디까지 손을봐야 할지… 한군데를 건드렸더니 이곳 저곳에서 터지는 사이드이펙트… 더보기…

Paging – DataSource 종류

2018 구글 I/O 에서 Paging라이브러리 발표이후 로컬(Room)로만 페이징을 했는데, Retrofit 등을 이용한 네트워크나 Cursor를 통한 페이징을 할때는 DataSource를 직접 구현해줘야한다는 사실을 알게 되었다. 그래서 DataSource의 종류에 대해서 알아보고 테스트를 해본것을 정리하고자 한다. 1.PositionalDataSoure 첫번째로 PositionalDataSource는 Position기반의 데이터 로더로 셀수 있는 고정된 사이즈를 갖는 데이터집합을 페이징 하는데 적합하다. 임의의 포지션으로부터 원하는 더보기…

글쓴이 Charlezz,

Activity 또는 Fragment는 언제든지 부서질 수 있다.

많은 개발자들이 처음 안드로이드 개발에 입문할 때 알게 되는것이 안드로이드의 4대 컴포넌트일 것이다. 컴포넌트만 잘 이해하고 개발해도 좋은 품질의 앱을 만들 수 있다고 자부한다. (정말? ㅇㅇ) 오늘은 UI컨트롤러(Activity or Fragment)의 생명주기와 관련된 이야기를 하고자 한다. 많은 안드로이드 개발자들이 놓치는 것이 있다. 흔히들 UI컨트롤러를 다룰 때 onCreate()를 시작으로 onDestroy()가 되기까지의 한 사이클만을 더보기…

Android Architecture Component – Paging

Paiging라이브러리 개요 페이징 라이브러리는 데이터 로딩을 쉽게, 점진적으로 그리고 아주 우아하게 RecyclerView와 함께 작동하도록 도와주는 라이브러리이다. 많은 앱들이 많은 양의 데이타를 로딩해두고, 실제로는 전체의 일부만을 실제로 보여주게 된다. 페이징라이브러리는 합리적으로 이런 데이터의 부분집합만을 표현하고 관찰하는것을 도와준다. 이런 기능은 몇몇 장점을 갖게 된다. 데이터를 점진적으로 로딩하기 때문에 네트워크 사용량 및 시스템 더보기…

글쓴이 Charlezz,

Fragment와 onSaveInstance (feat.ViewPager)

Fragment는 Runtime에 단독으로 실행될 수 없으며, 반드시 Activity가 필요하다. 대표적인 configuration change인 스크린 회전은 Activity를 재생성하게 되고, 이때 개발자는 onSaveInstanceState()와 onRestoreInstanceState() 콜백을 오버라이드 하여, 뷰나 기타 상태등을 유지할 수 있게 된다. 물론 매니페스트에서 액티비티의 configurationChange옵션을 추가하여서 Activity가 재생성되지 않게 하는 방법 하나의 방법이 될 수 있다. 액티비티가 재생성 되면 액티비티에 속해 더보기…