SlideShare a Scribd company logo
1 of 19
AndroidAnnotations
Enhanced components
작성자 – 김태희 최종 수정일: 151202
Enhanced components
Enhanced components는
안드로이드의 기본 컴포넌트들을
쉽고 빠르게 사용할 수 있도록 해 줍니다.
Enhanced components
구성
@EActivity
@EApplication
@EBean
@EFragment
@EProvider
@EReceiver
@EIntentService
@EService
@EView
@EViewGroup
Enhanced components
구성
@EActivity
@EApplication
@EBean
@EFragment
@EProvider
@EReceiver
@EIntentService
@EService
@EView
@EViewGroup
본 강에서는 이 중 가장 가주
사용되는 컴포넌트 몇 가지를
활용한 예제 어플리케이션을
통해 사용법을 익혀보도록
합니다.
@EActivity
@EActivity annotation을
이용하여 왼쪽과 같은
기본적인 액티비티를 만들어
봅시다!
그 전에, 1강의 안내에 따라
빌드 환경 세팅을 해 주셔야
하는 것 기억하시죠?
LinearLayout을 베이스로 한
레이아웃 xml을 구성하였습니다.
이번에는 Java 소스 코드입니다.
일반적인 경우라면 MainActivity라고 이름을
지었겠지만, AndroidAnnotations를 사용하는
Activity임을 명시하기 위해 앞에 AA라는
접두어를 붙여 보았습니다.
Manifest 파일입니다.
블록 쳐진 부분의 _에 유의하여야 합니다!
AAMainActivity가 아니라 AAMainActivity_입니다!
나머지 부분은 동일합니다.
빌드를 해볼까요?
왼쪽과 같은 Activity가 정상적으로
Main으로 설정되어 화면에
출력되는 것을 볼 수 있습니다. 와
신난다~
여기서의 질문, setContentView()가 없는데
레이아웃이 어떻게 출력되나요?
여기서의 질문, setContentView()가 없는데
레이아웃이 어떻게 출력되나요?
빌드를 하면 annotation processor가
AAMainActivity_ 를 생성하게
됩니다.
생성되는 위치는 왼쪽의 프로젝트의
구조와 같습니다.
우리는 onCreate()를
정의하지 않았지마는, AA는
onCreate()를
정의하였습니다.
이러한 상속 구조를 활용하여
onCreate()에서의
setContentView()를 비롯한
기본적인 Activity의
구성요소들을 활용할 수 있게
됩니다!
Sample
Application
AAMainActivity
BroadcastReceive
r
AAService
BroadcastReceive
r
이를 활용하여
AAMainActivity에서 Button을 눌러
Service와 Broadcast로 통신하는
어플리케이션을 만들어 보겠습니다.
Full 코드는 아래의 링크에 있습니다.
https://github.com/JuranoSaurus/EnhancedComponentsSample
Structure
프로젝트의 구조는 다음과 같습니다.
AAMainActivity
완성된 코드입니다.
onCreate()에서 startService()로 서비스
시작을 요청하고,
@Receiver를 통해 해당 action이
들어오는지 Broadcast에 대한 대기를
하고 있으며,
@Click을 통해 sendBroadcast()를
수행할 준비를 하고 있습니다.
특이점은 BroadcastReceiver를 사용하는
것으로 보임에도 불구하고
registerReceiver(),
unregisterReceiver()의 호출이 없습니다.
AAService
완성된 코드입니다.
앞의 Activity와 마찬가지로
@Receiver를 통해 해당 action이
들어오는지 Broadcast에 대한
대기를 하고 있으며,
Broadcast를 받는 경우 다시
Activity로 Broadcast를 보내게
됩니다.
마찬가지로 Receiver에 대한
등록과 해제는 따로 명시해 주지
않습니다.
Layout & Manifest
activity_main.xml과
AndroidManifest.xml입니다.
레이아웃 파일은 앞에서 소개한
activity_main.xml과 완전히 동일합니다.
Activity과 마찬가지로 Service도 맨 뒤에
생성된 Service(_가 붙은)를 명시해
주어야 한다는 것을 다시 한 번
강조합니다. (자주 실수해요..ㅠㅠ)
버튼을 누르면, 정상적으로 서비스와
통신하여 토스트가 뜨는 것을 확인할 수
있습니다 ^_^
Thank you

More Related Content

Similar to Jurano강의 lec3 android_annotations_enhanced_components

Google App Engine의 이해
Google App Engine의 이해Google App Engine의 이해
Google App Engine의 이해Sun-Jin Jang
 
Project anarchy로 3d 게임 만들기 part_2_vforge피하기
Project anarchy로 3d 게임 만들기 part_2_vforge피하기Project anarchy로 3d 게임 만들기 part_2_vforge피하기
Project anarchy로 3d 게임 만들기 part_2_vforge피하기Dong Chan Shin
 
N02 app engineseminar
N02 app engineseminarN02 app engineseminar
N02 app engineseminarSun-Jin Jang
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기JinKwon Lee
 
[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔NAVER D2
 
한양대학교 셔틀시스템 셔틀콕 개발기
한양대학교 셔틀시스템 셔틀콕 개발기한양대학교 셔틀시스템 셔틀콕 개발기
한양대학교 셔틀시스템 셔틀콕 개발기Yunhwan Na
 
2016년 #implude 안드로이드 단기속성 - 2. 간단한 화면 인터페이스 (+토스트)
2016년 #implude 안드로이드 단기속성 - 2. 간단한 화면 인터페이스 (+토스트)2016년 #implude 안드로이드 단기속성 - 2. 간단한 화면 인터페이스 (+토스트)
2016년 #implude 안드로이드 단기속성 - 2. 간단한 화면 인터페이스 (+토스트)Sung Woo Park
 
maven 소개
maven 소개maven 소개
maven 소개Suan Lee
 
컴포넌트 제대로 만들기
컴포넌트 제대로 만들기컴포넌트 제대로 만들기
컴포넌트 제대로 만들기HyunSeob Lee
 
[1A4]자바스크립트 라이브러리 개발 운영 경험기
[1A4]자바스크립트 라이브러리 개발 운영 경험기[1A4]자바스크립트 라이브러리 개발 운영 경험기
[1A4]자바스크립트 라이브러리 개발 운영 경험기NAVER D2
 
포트폴리오 Next door
포트폴리오 Next door포트폴리오 Next door
포트폴리오 Next doorChanggyun Moon
 
191221 unreal engine 4 editor 확장하기
191221 unreal engine 4 editor 확장하기191221 unreal engine 4 editor 확장하기
191221 unreal engine 4 editor 확장하기KWANGIL KIM
 
18 안드로이드 리스트뷰_속도향상
18 안드로이드 리스트뷰_속도향상18 안드로이드 리스트뷰_속도향상
18 안드로이드 리스트뷰_속도향상운용 최
 
보다 나은 웹 어플리케이션 설계
보다 나은 웹 어플리케이션 설계보다 나은 웹 어플리케이션 설계
보다 나은 웹 어플리케이션 설계Eb Styles
 
webdynpro에서 link_to_action parameter사용하기
webdynpro에서 link_to_action parameter사용하기webdynpro에서 link_to_action parameter사용하기
webdynpro에서 link_to_action parameter사용하기jung_se_hun
 
08 fragment 태블릿 대응
08 fragment   태블릿 대응08 fragment   태블릿 대응
08 fragment 태블릿 대응운용 최
 

Similar to Jurano강의 lec3 android_annotations_enhanced_components (20)

Google App Engine의 이해
Google App Engine의 이해Google App Engine의 이해
Google App Engine의 이해
 
Project anarchy로 3d 게임 만들기 part_2_vforge피하기
Project anarchy로 3d 게임 만들기 part_2_vforge피하기Project anarchy로 3d 게임 만들기 part_2_vforge피하기
Project anarchy로 3d 게임 만들기 part_2_vforge피하기
 
React native study
React native studyReact native study
React native study
 
N02 app engineseminar
N02 app engineseminarN02 app engineseminar
N02 app engineseminar
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
 
[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔
 
한양대학교 셔틀시스템 셔틀콕 개발기
한양대학교 셔틀시스템 셔틀콕 개발기한양대학교 셔틀시스템 셔틀콕 개발기
한양대학교 셔틀시스템 셔틀콕 개발기
 
2016년 #implude 안드로이드 단기속성 - 2. 간단한 화면 인터페이스 (+토스트)
2016년 #implude 안드로이드 단기속성 - 2. 간단한 화면 인터페이스 (+토스트)2016년 #implude 안드로이드 단기속성 - 2. 간단한 화면 인터페이스 (+토스트)
2016년 #implude 안드로이드 단기속성 - 2. 간단한 화면 인터페이스 (+토스트)
 
Maven
MavenMaven
Maven
 
maven 소개
maven 소개maven 소개
maven 소개
 
컴포넌트 제대로 만들기
컴포넌트 제대로 만들기컴포넌트 제대로 만들기
컴포넌트 제대로 만들기
 
[1A4]자바스크립트 라이브러리 개발 운영 경험기
[1A4]자바스크립트 라이브러리 개발 운영 경험기[1A4]자바스크립트 라이브러리 개발 운영 경험기
[1A4]자바스크립트 라이브러리 개발 운영 경험기
 
deview2014
deview2014deview2014
deview2014
 
Start unreal
Start unrealStart unreal
Start unreal
 
포트폴리오 Next door
포트폴리오 Next door포트폴리오 Next door
포트폴리오 Next door
 
191221 unreal engine 4 editor 확장하기
191221 unreal engine 4 editor 확장하기191221 unreal engine 4 editor 확장하기
191221 unreal engine 4 editor 확장하기
 
18 안드로이드 리스트뷰_속도향상
18 안드로이드 리스트뷰_속도향상18 안드로이드 리스트뷰_속도향상
18 안드로이드 리스트뷰_속도향상
 
보다 나은 웹 어플리케이션 설계
보다 나은 웹 어플리케이션 설계보다 나은 웹 어플리케이션 설계
보다 나은 웹 어플리케이션 설계
 
webdynpro에서 link_to_action parameter사용하기
webdynpro에서 link_to_action parameter사용하기webdynpro에서 link_to_action parameter사용하기
webdynpro에서 link_to_action parameter사용하기
 
08 fragment 태블릿 대응
08 fragment   태블릿 대응08 fragment   태블릿 대응
08 fragment 태블릿 대응
 

Jurano강의 lec3 android_annotations_enhanced_components