Apple is Apple
article thumbnail

일일 회고

 

안드로이드 UI 및 4대 컴포넌트 중 하나인 액티비티에 대하여 학습하였다.

 

아직까진 큰 어려움은 없는 것 같다.

 

과제를 시작하고, 시행착오가 생기면 글로 남겨보자..


오늘의 키워드

  • 안드로이드 UI
  • 액티비티 & 인텐트

뷰(view)

안드로이드 앱의 UI를 구성하는 기본 단위 - 위젯, 레이아웃이 있다.

안드로이드 UI를 구성할 때 중요한 것이 있는데, 다양한 기기 해상도에 맞게끔 UI을 만들어야 한다는 것이다.

이에 관해서는 추가 글을 써보려고 한다.

https://aaapple.tistory.com/29

위젯(widget)

View의 서브 클래스로서, 앱 화면을 구성하는 시각적인 모양을 지닌 UI요소이다.

안드로이드 스튜디오를 살펴보면 굉장히 다양한 위젯이 있는 것을 볼 수 있다.

앱을 만들 때, 요구되는 기능에 따라 선택하여 사용을 하면 된다.

 

ex) 텍스트를 보여줄 때 - TextView

      이미지를 보여줄 때 - ImageView

      버튼 - Button

      상태 진행 - ProgressBar

      등등..

design탭의 widget

레이아웃(layout)

ViewGroup의 서브 클래스로서, 다른 뷰(위젯 혹은 레이아웃)를 포함하면서 이들을 정렬하는 기능을 지닌 UI요소이다.

이 또한 안드로이드 스튜디오를 살펴보면 굉장히 다양한 레이아웃이 있는 것을 볼 수 있다.

주로 사용되는 layout은 constraint layout, linear layout, frame layout이 있다.

xml의 design탭에 보면 legacy라는 항목이 있는데, 과거에 많이 쓰였지만 현재는 많이 쓰이지 않는 레이아웃 들이다.

design 탭의 layout

 

 

액티비티(Activity) & 인텐트(Intent)

안드로이드 4대 컴포넌트 중 하나로 사용자와 직접적으로 상호 작용 할 수 있는 화면을 제공하는 애플리케이션의 구성요소이다. 

한 액티비티에서 다른 액티비티로 전환할 수 있으며 전환 할 때 데이터를 주고받을 수 있다.

 

 

인텐트(Intent)는 일종의 메시지 객체이다.

이것을 사용해 다른 앱 구성요소(액티비티, 서비스, 브로드 캐스트리시버 - 다른 컴포넌트)로 작업을 요청할 수 있습니다.

 

인텐트에는 2가지 종류의 인텐트가 있다.

 

1. 명시적 인텐트

  • 보통 현재 앱 안에 있는 구성요소 (예, 액티비티나서비스)를 시작시킬  때사용 (acitivity to activitie, service to service..)
startActivity(Intent(this, nextAcitivity::class.java))

 

2. 암시적 인텐트

  • 시작할 구성 요소의 이름을 지정하지 않고 일반적인 작업 (예, 전화 걸기, 지도 보기 등)을 인텐트 객체에 설정하고 이를 startActivity()에 넘긴다.
  • 보통 다른 앱 안에 있는 구성 요소를 구동하는 데 사용된다.
startActivity(Intent(Intent.ACTION_DIAL, Uri.parse("tel:114")))

 

 

액티비티 간 데이터 전달

  • 인텐트에 컴포넌트 실행을 요청할 때 데이터를 함께 전달하려면 Extra를 이용.
  • Extras를 활용하여 이름과 값의 쌍으로 된 정보(Bundle)를 전달
profile

Apple is Apple

@mjjjjjj