본문 바로가기

안드로이드/Guide

(9)
안드로이드 개발 - (9) PendingIntent의 활용 Intent는 메세징 객체이며, 다른 앱 구성요소(Activity, Service, Broadcast Receiver, Content Provider)에 작업(Action)을 요청하는데 사용한다(An Intent is a messaging object you can use to request an action from another app component). 간단한 예로, Activity에서 다른 Activity를 실행하거나, Service를 호출해 작업을 진행하는 등의 과정에서 Intent로 요청을 하는 것이다. Intent는 번들(Bundle)로 구성되는데 번들은 Parcelable을 구현한 데이터 객체라 생각하면 될 것 같다. 따라서 우리는 Intent에 전달하고 싶은 데이터를 담아서 다른 앱 구..
안드로이드 개발 - (8) View의 Listener 활용 - OnClickListener, OnLongClickListener 안드로이드에서의 이벤트 중 가장 간단한 OnClickListener에 대해 알아보고자 한다. OnClickListener는 뜻 그대로 View를 클릭했을 때 발생하는 이벤트이다. 우리는 앱과의 상호작용에서 버튼을 클릭하거나, 길게 누르거나 스크롤을 조작하는 등의 활동을 한다. 이 때 안드로이드에서는 해당 상호작용에 대한 이벤트를 Callback한다. 이벤트가 발생할 때 처리할 로직을 작성하는 부분이 바로 각 Listener들이다. 1. OnClickListener 먼저 간단한 OnClickListener에 대해 알아볼 것이다. 기능은 명칭 그대로 View를 클릭했을 때 작동하는 인터페이스로 대상 View에 리스너를 설정하여 사용이 가능하다. OnClickListener는 View에 정의된 인터페이스로 아..
안드로이드 개발 - (7) View, ViewGroup, Inflation의 개념 안드로이드는 View 클래스를 기반으로한 다양한 레이아웃 등 UI 인터페이스를 제공한다. 글자를 보여주는 TextView, 사용자 입력값(Soft Input)을 도와주는 EditText, 사진 등의 이미지를 제공하는 ImageView, 클릭하여 이벤트를 전달하는 Button, 선택 목록을 제공하는 Selector, 리스트를 제공하는 RecyclerView 등 다양한 View들이 있으며, 이러한 뷰들을 감싸는 컨테이너 역할인 ViewGroup이 있으며, 이를 Layout이라 표현한다. 따라서 우리는 UI를 구성할 때 필요한 View를 선택하고, 구성에 맞게 Layout으로 감싸야 하며, 이를 Activity에 Inflation해야 사용자에게 UI를 보여줄 수 있다. 여기서 Inflation은 간단히 말하면..
안드로이드 개발 - (6) Android Component: Content Providers 중앙 레파지토리의 데이터를 관리한다. Android Application의 일부로 흔히 데이터 작업을 위한 UI 제공을 한다. 그러나 기본적으로 Content Provider는 Provider 클라이언트 오브젝트를 이용하여 Provider에 엑세스하는 다른 Application에서 사용하기 위한 것이다. Provider와 Provider 클라이언트가 결합하면 데이터에 하나의 일관적인 표준 인터페이스를 제공하여 이것이 프로세스간 통신과 보안 데이터 엑세스도 처리한다. 일반적으로 두 경우 중 하나에서 Content Provider를 사용한다. 다른 Application의 존재하는 Content Provider에 엑세스하기 위해 나의 Application의 데이터를 다른 Application과 공유하기 위해 ..
안드로이드 개발 - (5) Android Component: Broadcast Receiver Android 시스템 및 기타 Android 앱에서 브로드캐스트 메시지를 보내거나 받을 수 있다. 이러한 브로드캐스트는 관심 이벤트가 발생할 때 전송된다. 시스템에서 보내는 브로드캐스트와 앱에서 보내는 커스텀 브로드캐스트가 있다. ex) 시스템 : 부팅, 디바이스 충전 시작 등 / 커스텀 : 데이터 다운로드 완료 등 Android 플랫폼별 변경점 Android 10(Q, API 29) Android 9 (Pie, API 28) NETWORK_STATE_CHANGED_ACTION 브로드캐스트에서 사용자 위치나 개인 정보 데이터를 받을 수 없다. 앱이 Android 9 이상을 실행하는 기기에 설치된 경우 Wi-Fi 브로드캐스트에 SSIDs, BSSIDs, 접속 정보, 스캔 결과가 포함되지 않는다. 해당 정보..
안드로이드 개발 - (4) Android Component: Service Android Component 2번째로는 서비스(Service)이다. 백그라운드에서 오래 실행되는 작업을 수행하며 UI를 제공하지 않는다. 다른 컴포넌트가 서비스를 시작할 수 있으며, 또 다른 앱으로 전환하더라도 백그라운드에서 계속 실행된다. 컴포넌트를 서비스에 바인드하여 서비스와 상호작용할 수 있고, 프로세스간 통신(IPC)도 수행할 수 있다. 서비스의 형태는 다음과 같이 Foreground, Background 상태를 갖는다. Foreground의 경우 사용자에게 노출되는 알림(Notification)을 반드시 제공해야 한다. Foreground : Foreground 서비스는 사용자에게 반드시 알림을 제공해야 한다. 사용자가 앱과 상호작용이 있는 한 서비스는 계속 실행된다. Background :..
안드로이드 개발 - (3) Android Component: Activity Android Component(구성요소)는 안드로이드 개발에 있어 가장 중요한 기본이라 할 수 있다. 4대 컴포넌트라고도 불리며 Activity, Service, Broadcast Receiver, Content Provider 이다. 그중 Activity에 대해 먼저 알아보고자 한다. Activity - 사용자와 앱간의 상호작용을 할 수 있는 화면(View)을 제공한다. Activity에 UI를 배치할 수 있다. - 생명주기(Lifecycle) 상태별 콜백 메서드가 존재하며, 각 메서드는 Lifecycle의 상태 변화에 알맞은 특정 작업을 수행할 기회를 제공한다. 메서드 설명 중단가능 다음 onCreate() 시스템에서 Activity를 처음 생성할 때 호출 setContentView() 를 호출하여..
안드로이드 개발 - (2) Android Studio 프로젝트 생성 Android Studio의 설정을 마쳤다면, 이제 프로젝트를 생성해볼 차례이다. Android APP을 제작하기 위해선 다양한 방법이 많지만 Android Studio의 프로젝트 생성으로도 가능하다. Android Studio를 실행하고 'Start a new Android Studio project'를 클릭한다. 물론 Android Studio는 VCS를 지원하기 때문에 (Git, SVN, Google cloud 등) VCS 연동을 통해 혹은 외부 소스를 열어볼 수도 있으나 지금은 새로 생성하는 방법만 다루도록 하겠다. 프로젝트의 기본 Activity를 지정할 수 있다. 프로그래머의 편의성을 돕기위해 다양한 Template을 제공하고 있다. 이 템플릿은 프로젝트를 생성한 후에도 Activity를 추가..