[ 앱 개발자 도전기 : 안드로이드 ]
안드로이드 앱 개발의 특징 정리해보기.
∇ 안드로이드 앱 개발의 특징.
목 차
1. 컴포넌트 기반의 개발 진행.
2. 리소스를 활용한 개발.
Ⅰ. 컴포넌트 기반의 개발 진행.
★ 안드로이드 앱 개발의 핵심 === "컴포넌트 (component) "
◎ [ 컴포넌트(component) 는 애플리케이션의 구성 요소 ! ]
● " 컴포넌트 " == 안드로이드 앱 이외에도, 여러 애플리케이션을 개발할 때 사용하는 개념.
● " 컴포넌트 "를 한마디로 정의하면, " 애플리케이션의 구성 요소 " 라고 할 수 있습니다.
== "컴포넌트" 는 애플리케이션이 아니라, "애플리케이션을 구성하는 단위 !"
● 즉, 하나의 애플리케이션은 "여러개의 컴포넌트"로 구성됨.
== 안드로이드 앱의 기본 구조 역시 컴포넌트에 기반을 두므로
하나의 앱은 여러개의 컴포넌트로 구성됩니다.
○ " 안드로이드에서는 '클래스'로 '컴포넌트'를 개발합니다 ! "
== 즉, 하나의 클래스가 하나의 컴포넌트가 되는 것 !!
◎ [ 안드로이드 앱을 구성하는 클래스는 모두 컴포넌트인가?? ]
● 애플리케이션을 구성하는 모든 클래스가 컴포넌트는 아님. !
== 앱은 여러 클래스로 구성 : "컴포넌트 클래스" & "일반 클래스"
- 런타임 시에 "생명주기"를 누가 관리하느냐에 따라서 차이가 있습니다.
◇ 일반 클래스.
○ 앱이 실행될 때, 클래스의 객체 생성부터 소멸까지의 생명주기 관리를
개발자 코드에서 합니다.
○ 안드로이드 앱의 구성-요소인 컴포넌트가 아닌, 개발자가 임의의 목적으로 만든 클래스,
◆ 컴포넌트 클래스.
○ 개발자가 코드를 구성하기는 했지만, 생명주기를 안드로이드 시스템에서 관리.
◎ [ 안드로이드 컴포넌트의 4가지 종류.]
● 컴포넌트는 [ Activity, Service, Content Provider, Broadcast reciver ]
이렇게 4가지로 구분됩니다.
● 이 4가지 분류의 컴포넌트들은 앱이 실행될 때 각각 다른 기능을 합니다.
▼ Activity(액티비티)
- 화면을 구성하는 컴포넌트
- 앱의 화면을 안드로이드폰에 출력하려면, 액티비티를 만들어야 합니다.
- 앱이 실행되면, 액티비티에서 출력한 내용이 안드로이드폰에 나옵니다.
▼ Service(서비스)
- 백그라운드 작업을 하는 컴포넌트.
- 화면 출력 기능이 없으므로, 서비스가 실행되더라도 화면에는 출력되지 않습니다.
- 서비스 컴포넌트는 화면과 상관없이,
백그라운드측면에서 장기간 실행해야 할 업무를 담당합니다.
▼ Content Provider(콘텐츠 프로바이더)
- 앱의 데이터를 공유하는 컴포넌트.
- 안드로이드폰에는 많은 앱이 설치되어 있으며, 앱 간에 데이터를 공유 가능합니다.
- 하나의 앱이 자신의 데이터를 다른 앱에 공유하려면 '콘텐츠 프로바이더'를 만들어야 하며,
다른 앱에서는 그 콘텐츠 프로바이더를 활용해서 데이터에 접근합니다.
ex) 카카오톡 앱에서 프로필을 변경하려고 할 때, 갤러리에 있는 사진을 불러오려고 한다면
콘텐츠 프로바이더를 활용해서 데이터를 주고 받아야 합니다.
▼ Broadcast Receiver (브로드캐스트 리시버)
- 시스템 이벤트가 발생할 때, 실행되게끔 하는 컴포넌트 !
- 이 이벤트는 화면에서 발생하는 '유저 이벤트'가 아니라,
"시스템에서 발생하는 특정 상황"을 의미합니다 !
ex) 부팅 완료, 배터리 방전
◎ [ 4가지 컴포넌트 구분 방법.]
● "컴포넌트"는 앱이 실행될 때, 안드로이드 시스템상에서 생명주기를 관리하는 클래스이지만,
개발자가 만들어주어야 하는 클래스이기도 합니다.
● 개발자가 컴포넌트를 만들 때는 "지정된 클래스를 상속받아야" 하는데
이 때는 "상위 클래스를 보고서 구분" 할 수 있습니다.
- Activity : Activity 클래스를 상속받아 만듦
- Service : Service 클래스를 상속받아 만듦
- Content Provider : ContentProvider 클래스를 상속받아 만듦
- BroadCast Receiver : BroadcastReceiver 클래스를 상속받아 만듦
◎ [ main 함수가 없음 !]
● 앱은 실행 시점이 다양합니다.
- 컴포넌트가 앱 내에서 독립해서 실행되는 특징 덕분에 앱의 실행 시점이 다양할 수 있습니다.
● 일반적으로, 앱을 설치 시 홈 화면에 아이콘이 생기고 그 아이콘을 활용해 사용자가 터치하여 실행.
● 다양한 시점에서 실행되는 앱의 특성상, 앱에는 메인 함수 main function 개념이 없습니다.
- > '메인 함수'란 앱의 단일 시작점을 의미하는데,
안드로이드 "앱은 실행 시점이 다양" 하므로 메인 함수 개념이 없다고 볼 수 있습니다.
Ⅱ. 리소스를 활용한 개발.
※ 컴포넌트를 활용하는 것과 함께,
안드로이드 앱 개발의 또 다른 특징은 '리소스'를 많이 활용한다는 점 입니다 !
§ 리소스.
○ 코드에서 '정적인 값'을 분리한 것 !
○ 앱에서 발생하는 '데이터'나 '유저 이벤트'에 따른 동적인 값이 아니라,
'항상 똑같은 값'이라면 굳이 코드에 담지 않고 "분리해서 개발"을 진행하는 것입니다.
= > 코드가 짧아지므로, 개발 생산성과 유지*보수성이 좋아지게 됩니다.
◎ [ ex ) 문자열을 리소스로 이용 !]
- 대표적인 케이스 : 문자열을 리로스로 이용하는 것 !
- 애국가 가사를 출력하려는 경우
/문자열을 코드로 작성하기/
textView.text = ”””
동해 물과 백두산이 마르고 닳도록
하느님이 보우하사 우리나라 만세
무궁화 삼천리 화려 강산 대한 사람,
대한으로 길이 보전하세
“””
이렇게 적었던 코드를, 항상 똑같이 반복되기에 "리소스로 등록해서 사용" 하고자 한다면?
/문자열을 리소스로 등록하기/
<string name=”mytxt”>
동해 물과 백두산이 마르고 닳도록
하느님이 보우하사 우리나라 만세
무궁화 삼천리 화려 강산 대한 사람,
대한으로 길이 보전하세
</string>
이런 식으로 리소스로 등록하게 되면,
textView.text = resources.getString(R.string.mytxt) ```
이런식으로 간편하게 활용이 가능해집니다.
◎ [ 특징 !]
- 안드로이드 앱을 개발할 때는 많은 요소를 '리소르'로 등록해서 사용합니다.
- 문자열 이외, 색상*크기*레이아웃*이미지*메뉴 등 많은 요소를 리소스로 활용 가능합니다.
- 이미지 등 몇몇을 제외하면, 대부분의 리소스는 "xml" 파일로 작성합니다. !
'App_Dev > Android' 카테고리의 다른 글
[ 앱 개발자 도전기 : 안드로이드 ] View가 그려지는 순서 (0) | 2024.11.07 |
---|---|
[ 앱 개발자 도전기 : 안드로이드 ] 안드로이드의 Activity LifeCycle ( 액티비티 생명주기 ) (1) | 2024.11.07 |
[ 앱 개발자 도전기 : 안드로이드 ] 안드로이드 4대 컴포넌트 정리. (1) | 2024.11.07 |
[ 앱 개발자 도전기 : 안드로이드 ] 안드로이드 운영체제 부분 정리하기. (4) | 2024.11.05 |
[ 앱 개발자 도전기 : 안드로이드 ] 안드로이드 UI - - 뷰(View)와 XML 레이아웃 기본 구조 (0) | 2024.11.04 |