Jurano강의 lec1. AndroidAnnotations 시작하기

23
AndroidAnnotations 시시시시 시시시 – 시시시 시시 시시시 : 151202

Transcript of Jurano강의 lec1. AndroidAnnotations 시작하기

Page 1: Jurano강의 lec1. AndroidAnnotations 시작하기

AndroidAnnotations 시작하기

작성자 – 서주리 최종 수정일 : 151202

Page 2: Jurano강의 lec1. AndroidAnnotations 시작하기

목차1. AndroidAnnotations 소개

2. AndroidAnnotations 목표

3. AndroidAnnotations 샘플 코드 살펴보기

4. AndroidAnnotations 환경 설정 하기

5. AndroidAnnotations 시작하기

Page 3: Jurano강의 lec1. AndroidAnnotations 시작하기

소개

• Androidannotations 란 무엇일까요 ?

Fast Android Development. Easy maintenance.

빠른 Android 개발과 쉬운 유지보수를 위한

오픈 소스 프레임

워크 !

출처 - https://github.com/excilys/androidannotations

Page 4: Jurano강의 lec1. AndroidAnnotations 시작하기

목표

로버트 C. 마틴 (Robert C. Martin)

Clean code 의 저자

曰 :

“ 코드 읽기와 쓰기에 소요되는 시간의 비율은 10:1 을 훨씬 넘는다 .그러므로 읽기 쉽게 만든 것은 더 쓰기 쉽다 .”

( 원문 - The ratio of time spent reading [code] versus writing is well over 10 to 1 [therefore] making it easy to read makes it easier to write.)

AndroidAnnotations 는 명확한 의도와 간단한 코드가

그 목표를 달성하는 가장 좋은 방법이라는 것을 목표로 하고 있다 .

Page 5: Jurano강의 lec1. AndroidAnnotations 시작하기

목표

• 어떻게 ?!

Java annotations 를 사용 !

컴파일 시에 generated code 를 생성하여

개발자들이 자신의 의도를 분명히 나타낼 수 있도록 ! ( 자세한건 뒤에서 ^_^)

Page 6: Jurano강의 lec1. AndroidAnnotations 시작하기

목표

AndroidAnnotations 의 특징

• Dependency injection : inject views, extras, system services, resources, ...

• 간결화 된 thread 모델 : UI thread 에서 또는 background thread 에서 실행되도록 할 수 있다 .

• 이벤트 바인딩 : 이벤트를 처리 할 때 더 이상 보기 안 좋은 리스너 클래스들을 만들 필요가 없다 .

• REST 클라이언트 : 클라이언트 인터페이스를 생성 , AndroidAnnotations 는 구현을 생성한다 .

• AndroidAnnotations 이 컴파일 시에 서브 클래스를 생성 할 때 , 어떻게 작동하는지 확인하기 위해 코드를 확인할 수 있다 .

• runtime 성능에 영향 없이 , 150kb 보다 더 적은 용량으로 이러한 장점들을 제공한다 .

원문 - https://github.com/excilys/androidannotations/wiki

Page 7: Jurano강의 lec1. AndroidAnnotations 시작하기

샘플 코드

AndroidAnnotations 에서

제시하는

예시코드를

살펴봅시다 ^_^

Page 8: Jurano강의 lec1. AndroidAnnotations 시작하기

샘플 코드

가장 기본적인 @EActivity annotation 을 적용한 모습이다 .

코드가 훨씬 간결해짐을 알 수 있다 .

적용 전 적용 후

Page 9: Jurano강의 lec1. AndroidAnnotations 시작하기

샘플 코드

뒤에서 나올 내용이니

지금은 간단한 모양만

보면 된다 . ^_^

사용 예를 보았으니

AndroidAnnotations 를

사용하기 위한

환경 설정을 시작해봅시다 !

Page 10: Jurano강의 lec1. AndroidAnnotations 시작하기

환경 설정https://github.com/excilys/androidannotations/wiki/Configuration

위의 주소로 들어가면

여러 환경에서의 사용법이

문서화 되어있다 .

해당 강의에서는

Android Studio 를

이용하기 때문에

Gradle 을 기준으로

진행을 하도록 하겠습니다 ^_^

Page 11: Jurano강의 lec1. AndroidAnnotations 시작하기

환경 설정1. Android Gradle 빈 프로젝트를 생성한다 .

2. build.gradle 를 아래와 같이 setting 한다 . (Top-level build file)

Android plugin 의 최신버전으로 !

Android-apt plugin 의 최신버전으로 !

Page 12: Jurano강의 lec1. AndroidAnnotations 시작하기

환경 설정3. build.gradle 를 아래와 같이 setting 한다 . (Application build file)

Page 13: Jurano강의 lec1. AndroidAnnotations 시작하기

환경 설정4. Annotation processor 설정

File → Other Settings → Default Settings...

Page 14: Jurano강의 lec1. AndroidAnnotations 시작하기

환경 설정 Build, Execution, Deployment -> Compiler -> Annotation Processor 

여기에 체크 !

4. Annotation processor 설정

Page 15: Jurano강의 lec1. AndroidAnnotations 시작하기

환경 설정5. 이제 사용하면 된다 ~!

Page 16: Jurano강의 lec1. AndroidAnnotations 시작하기

시작하기환경 설정이 모두 되었다면 이제 시작하면 된다 !

1. 새로운 Activity 를 생성한다 ! ( 또는 이미 존재하는 Activity 를 사용해도 된다 )

2. Activity 에 @EActivity, @ViewById, @Click 을 사용한다 !- 아래의 예제를 보고 따라해보자 ^_^

Page 17: Jurano강의 lec1. AndroidAnnotations 시작하기

시작하기3. 파일을 저장한다 .

( 컴파일을 하고 우리가 만든 Activity 의 이름 뒤에 '_' 가 붙은 이름의 서브 클래스를 generate 한다 . "MyActivity" 의 generate 된 서브클래스 이름은 "MyActivity_")

4. Manifest 에 MyActivity 대신에 MyActivity_ 를 등록한다 . 이렇게 ~!

AndroidAnnotations Activity 에 적용하기 끝 !참 쉽죵 ^0^

Page 18: Jurano강의 lec1. AndroidAnnotations 시작하기

시작하기덧 1,Android 에서 Activity 를 시작할 때 아래와 같이 해왔을 것이다 !

그러나 AndroidAnnotations 를 사용한다면 반드시 MyListActivity_ 가 호출되어 시작되어야 한다 !

왜 ??

Page 19: Jurano강의 lec1. AndroidAnnotations 시작하기

시작하기덧 1,

AndroidAnnotations 는 Annotation 이 적용된 각각의 Activity 마다

서브클래스를 generate 한다 .

generate

이 서브 클래스는 super 를 부르는 것을 위임하기 전에

몇 가지 메소드들 (ex. onCreate(), ...) 을 overrinding 하여 사용자의 Activity 에 동작을 추가한다 .

Page 20: Jurano강의 lec1. AndroidAnnotations 시작하기

시작하기덧 1,

그러므로 !

우리는 항상 Android Manifest 에 Activity 이름 뒤에

'_' 접미사를 붙여서 등록해 사용해야 한다 ! ^_^ 바로 이렇게

같은 패키지 , 같은 이름에 그냥 _ 접미사만 붙이면 된다 . 만약 AndroidManifest.xml 에 등록을 깜빡해도

AndroidAnnotations 가 알려주니 걱정말자 ~ ^_^

Page 21: Jurano강의 lec1. AndroidAnnotations 시작하기

시작하기

앗 ! 제대로 따라했는데 build 가 안된다 ?!혹시 Not find my class ( ...MyActivity_ ) 라며 문제가 발생했나요 ..?!

generate 가 아직 안된 경우 ! 프로젝트를 Clean 해주면 된다 ~!

[ Build -> Clean Project ]

덧 2,

Page 22: Jurano강의 lec1. AndroidAnnotations 시작하기

시작하기

AndroidAnnotations 는 generate 된 소스 폴더로부터

반복적으로 이동하여 AndroidManifest.xml 파일을 찾는다 .

덧 3,

프로젝트 구조에 적합하지 않는 경우 프로세서에

androidManifestFile 옵션을 제공함으로써 AndroidManifest.xml 의 절대 경로를 지정할 수 있다 !

• javac - 옵션 추가 : -AandroidManifestFile=/path/to/AndroidManifest.xml

• Eclipse - "Properties > Java Compiler > Annotation Processing" 으로 가서

Processor options 에서 add

• 다른 빌드 시스템 , IDE - customization page 를 살펴보길

Page 23: Jurano강의 lec1. AndroidAnnotations 시작하기

Thank you