인텐트(intent)의 필요성


안드로이드 스튜디오에서 New Project - empty project를 생성하면 기본적으로 하나의 Main Activity가 존재한다.

가장 기본이다. 하지만 실제 어플리케이션 내에서는 화면 간 이동이 존재하고 그 속에서 데이터가 오고간다.

하나의 화면에 앱이 사용자에게 제공하고자 하는 모든 기능과 뷰를 담을 수는 없다.

그렇기 때문에 우리는 화면을 여러개로 나누어 전환하며 데이터를 주고 받으며 처리하여 사용자에게 원하는 서비스를 제공한다.

 

이 역할을 인텐트(intent)가 한다.

 

 

인텐트(intent)의 두 가지 역할


인텐트의 핵심 두 가지 역할은 화면 전환과 데이터 전달이다.

 

 

화면 전환

Activity 하나당 하나의 화면을 구성한다고 생각하면 되며, intent 를 이용해 이러한 화면을 전환할 수 있다.

 

 

데이터 전달

물론 화면을 이동할 때 전 화면에서 가지고 있던 데이터를 전달할 필요가 생긴다. 이러한 데이터 전달 또한 인텐트가 해낸다.

 

 

 

 

명시적 인텐트(Explicit Intent)와 묵시적 인텐트(Implicit Intent)


명시적 인텐트는 Intent 객체에 다음 화면으로 전환할 때 쓰일 컴포넌트를 직접 지정하며, 이러한 화면 전환은 주로 어플리케이션 내부에서 일어난다.

 

묵시적 인텐트는 Intent 객체에 다음에 수행할 액션(ex. uri 웹 검색, 전화 걸기, 지도 보기 등)을 지정한다. 동작 시 해당 액션을 수행할 관련 어플리케이션을 탐색하고 선택하여 인텐트 객체를 기반으로 실행한다.

'Android' 카테고리의 다른 글

[Android] XML, View 그리고 LayoutInflater  (0) 2021.03.16
[Android] Layout 과 View  (0) 2021.03.16

이전에 Layout과 View의 차이에 대해서 알아보았다.

이번엔 XML과 View 사이에서 LayoutInflater가 하는 역할에 대해 알아본다.

 

View


View는 앱 사용자에게 실제로 보여지는 위젯이다.

 

Xml


XML은 View에 사용되는 Resource를 정의하여 저장해두는 문서이다.

이렇게 하면, Xml에 저장된 뷰를 재사용할 수 있어 용이하고, 로직과 뷰를 분리할 수 있어 가독성과 관리 측면에서 유리하다.

 

 

 

LayoutInflater


LayoutInflater는 xml에 정의된 뷰 리소스를 메모리에서 사용할 수 있는 View객체로 반환하는 역할을 한다.

따라서, 뷰 리소스가 정의되어 있는 Xml을  객체화(Objectify) 실제 앱에 사용하고 싶을 때 이 과정을 담당하는 것이 LayoutInflater이다.

'Android' 카테고리의 다른 글

[Android] 인텐트 (intent)  (0) 2021.03.24
[Android] Layout 과 View  (0) 2021.03.16

안드로이드 앱 개발을 시작하면 View와 Layout이 등장한다.

둘의 차이점이 모호하게 느껴져 명확하게 하고 싶었다.

 

Layout, View


Layout은 View를 포함하는 보이지 않는 틀이다.

View는 실제로 사용자가 어플을 사용할 때 보이는 위젯이다.

 

그렇다면 Layout은 보이지 않는데 왜 필요할까?


View 위젯들을 배치하는 과정에서 Layout의 존재가 없다면 중구난방일 것이다. 앱을 개발하다보면 View는 각각 독립적으로 따로 노는 것이 아닌, 하나의 흐름을 갖기도 하고, 하나의 기능을 나타내기도 하며, 사용자에게 제공하고자 하는 작은 단위 서비스의 묶음이 되기도 한다. 그래서, View들을 그룹화해 정렬하거나 배치하고자 하는 필요가 생길 것이다.

Layout이 이를 담당한다.

 

 

Layout과 View의 포함관계


Layout이 View를 그룹화하는데 사용되지만, 이렇게 View를 그룹화한 Layout이 다시 상위 View로 나타내지기도 한다.

 

View안에 (ex. HorizontalScrollView) 여러 View들(ex. TextView)을 그룹화하여 나타내고 싶을 때, Layout(ex. LinearLayout)을 통해서 작은 여러 View들을 묶어 큰 View(ex. HorizontalScrollView)로 나타내줄 때도 있다는 것이다.

'Android' 카테고리의 다른 글

[Android] 인텐트 (intent)  (0) 2021.03.24
[Android] XML, View 그리고 LayoutInflater  (0) 2021.03.16

+ Recent posts