안드로이드: 196개의 글
1. Tab Button 요즘 Tab을 이용한 앱 구성이 많이 활발해졌습니다. 페이스북이나 인스타그램, 카카오톡만 해도 탭 버튼을 이용한 화면 구성 법을 사용하고 있습니다. 이 앱들의 소스코드에서는 어떤 방식으로 Tab을 구현하였는지는 알지 못하나 저희도 Tab을 쉽게 구현 할 수 있다는 것은 확실합니다! [그림 1] 카카오톡과 인스타그램의 탭 버튼 구성 Tab버튼을 구성하는데는 여러가지의 방법이 있습니다. 이 포스팅에서는 아래 그림과 같이 Activity의 버튼(보여줄 화면의 수 만큼)과 나머지 영역에 framLayout이라는 위젯을 배치하여 전체적인 레이아웃을 구성하고, 버튼 선택 시 framLayout에 원하는fragment를 띄우는 방식으로 구현할 것 입니다. [그림 2] FrameLayout과 ..
1. ListView, CustomListView 무엇이 다른가? 안드로이드의 리스트뷰(ListView)는 주로 같은 분류에 속하는 데이터를 나열하거나거나 그 데이터에 대한 개별적 처리를 하기위해 사용합니다. 예를들면 내가 개발하는 앱 내부에 어떤 분류의 게시글이 존재하며 그 게시글을 누르면 상세 내용을 볼 수 있도록 UI를 설계했다고 생각해봅시다. 어떤 배치가 좋을까요? TextView와 같은 위젯을 사용한다면 추가해야하는 게시글이 많아질 수록 Layout의 소스는 길어지고 관리도 힘들어질겁니다. 하지만 이를 하나의 리스트뷰로 보여준다면 Layout의 소스도 줄어들 뿐만 아니라 관리도 쉬워질 것 입니다. 앞서 설명드린 리스트뷰(ListView)는 하나의 리스트에 한 가지의 컨텐츠(예:텍스트)만 존재하는..
이번 포스팅은 안드로이트 4대 컴포넌트 중 액티비티의 생애주기에 관한 내용을 다루겠습니다. 1. ACITIVITY 액티비티는 안드로이드 프로그래밍을 배우면서 가장 먼저 접하게되는 컴포넌트입니다. 액티비티는 주로 화면에 보이는 UI에 관한 처리를 하기 위한 요소입니다. 예를 들면 화면에 버튼을 만들고 버튼을 눌렀을 때 이벤트를 처리하는 모든 과정이 액티비티에 담겨있습니다. 하지만 이런 액티비티에 생애주기라는 중요한 사이클 존이 있습니다. 이는 액티비티의 상태에 따라 특정 메서드를 호출해 작업을 수행하며, 구조적으로 데이터를 초기화하고 삭제하여 메모리나 CPU의 부하를 줄여주는 작업을 할 수도 있습니다. 액티비티의 상태라면 어떤 것 들이 있을까요? 아래와 같은 상황이 있을 수 있습니다. - CASE - - ..
오늘은 안드로이드 4대 컴포넌트 중 하나인 Service에 대한 포스팅입니다. 안드로이드 4대 컴포넌트가 뭐냐구요? 안드로이드 어플리케이션을 구성하는 메인 구성 요소라 할 수있는데, 우리가 가장 많이 사용하는 Activity가 그 중 하나입니다! 1. Android Components [그림 1] 안드로이드 4대 컴포넌트 2. 서비스(Service)란? 안드로이드에서 Activity는 Background에서 작업을 수행할 수 없다. 이를 위해 우리는 Service를 사용한다. 예를 들면 노래를 켜고 웹 서핑을 하는 상황이 있다. 우리가 음악을 듣는 어플을 사용할때 보통 어플에 들어가 노래를 켜고 다른 화면으로 가거나 화면을 끄거나 다른 어플리케이션을 사용한다. 그럼에도 불구하고 노래를 들을 수 있는건 백..
Firebase 구글에서 Firebasse를 통합 앱 플랫폼으로 확장했습니다. Firebase는 웹과 모바일 개발에 필요한 기능을 제공하는 BaaS(Backend as a Service)입니다. 쉽게말해 백엔드 개발을 통해 서버를 따로 설계, 구현하지 않고 프론트엔드 개발에 집중할 수 있도록 도와주는 서비스입니다. 기능으로는 실시간 데이터베이스, 간편한 사용자 인증, 클라우드 저장소, 호스팅, 앱 테스트와 수익 창출을 도와주는 등 다양한 기능을 제공해줍니다. Firebase는 크게 두가지 컨텐츠를 제공합니다. 제품 개발과 제품 성장을 도와주는 컨텐츠입니다. 자세한 기술은 아래 Firebase의 공식 홈페이지의 Product를 참고하였습니다. https://firebase.google.com/product..
애플리케이션에 머티리얼 디자인을 적용하다 보면, 이전에 사용하던 아이콘과 궁합이 맞지 않는 경우가 많습니다. 디자이너가 있는 앱이라면 새로 아이콘을 제작하면 되지만, 디자이너 없이 개인 개발자 한 명 만으로 만드는 앱의 경우 새로운 아이콘을 제작한다는 것이 보통 쉬운 일이 아닙니다. 이러한 고충을 덜어 주기 위한 것인지, 구글에서는 2014년 머티리얼 디자인을 발표한 이후 이에 어울리는 여러 아이콘들을 Github 저장소를 통해 제공했습니다. 당시엔 단순히 제공되는 아이콘들의 모양과 이름만 조회할 수 있었는데요, 최근 구글 I/O 2015 이후 해당 페이지가 개편되어 아이콘을 조회하는 것 뿐 아니라 색상, 크기별로 바로 다운로드 할 수 있는 기능이 추가되었습니다. 업데이트된 페이지는 아래 링크에서 확인할..
네비게이션 드로어는 꽤 오래 전부터 널리 사용되던 패턴 중 하나입니다. 그러다 보니, 공식 버전의 네비게이션 드로어가 없을 때부터 시작하여 현재 널리 사용되는 AppCompat 버전의 네비게이션 드로어까지 생각보다 다양한 종류의 구현이 있습니다. 하지만, 지금까지 네비게이션 드로어에 대한 정확한 가이드라인은 없었습니다. 때문에, 같은 패턴임에도 불구하고 다른 동작과 외형을 보여주게 되어 사용자들에게 혼란을 주기도 했습니다. 이 문제를 구글에서도 인식했는지, 안드로이드 5.0과 함께 발표된 '머티리얼 디자인'의 가이드라인에서는 네비게이션 드로어가 어떻게 표시되어야 하는지 명확하게 제시하고 있습니다. 다음 그림을 통해 휴대폰과 태블릿에서 네비게이션 드로어가 어떻게 표현되어야 하는지 확인할 수 있습니다. (그..
안드로이드 5.0이 공개된 이후, 구글 앱들에 머티리얼 디자인이 속속히 적용되기 시작했습니다. 그 중 대표적인 예가 플레이 스토어 앱인데요, 머티리얼 디자인이 적용된 것 외에 네비게이션 드로어 상태 버튼이 빙글빙글 돌아가는 애니메이션이 추가되었습니다. 머티리얼 디자인이 적용된 네비게이션 드로어. (출처: http://chrisrenke.com/drawerarrowdrawable/) 적용하는 방법은 크게 다음과 같이 정리할 수 있습니다. targetSdkVersion=21compile 'com.android.support:appcompat-v7:21.0.0'import android.support.v7.app.ActionBarDrawerToggle 간단한 예제를 통해 적용 절차를 알아보겠습니다. 프로젝트 ..
지금까지 네비게이션 드로어와 프래그먼트를 연동하여 사용하는 방법에 대해 알아 보았는데요, 앞에서 만든 예제들은 '탄탄한 애플리케이션'을 위한 대비가 제대로 되어 있지 않습니다. 바로, '액티비티 생애주기'를 고려하고 있지 않습니다. 안드로이드 애플리케이션에서 화면을 표시하는 역할을 담당하는 액티비티는 동작 모습에 따라 여러 상태를 가지며, 각 상태가 변경될 때마다 그에 맞는 콜백 메서드가 호출되어 개발자가 각 상태에 알맞는 작업을 할 수 있게끔 구성되어 있습니다. 그런데, 액티비티는 별도의 예외 처리를 하지 않는 한 시스템 환경이 변할 때 새로 생성됩니다. 즉, 처음부터 다시 생애주기 메서드가 호출되므로 이전의 액티비티 상태 정보를 잃게 됩니다. 그러므로, 액티비티 상태가 변하더라도 기존에 사용하던 액티..