Jurano강의 lec1. AndroidAnnotations 시작하기
Transcript of Jurano강의 lec1. AndroidAnnotations 시작하기
AndroidAnnotations 시작하기
작성자 – 서주리 최종 수정일 : 151202
목차1. AndroidAnnotations 소개
2. AndroidAnnotations 목표
3. AndroidAnnotations 샘플 코드 살펴보기
4. AndroidAnnotations 환경 설정 하기
5. AndroidAnnotations 시작하기
소개
• Androidannotations 란 무엇일까요 ?
Fast Android Development. Easy maintenance.
빠른 Android 개발과 쉬운 유지보수를 위한
오픈 소스 프레임
워크 !
출처 - https://github.com/excilys/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 는 명확한 의도와 간단한 코드가
그 목표를 달성하는 가장 좋은 방법이라는 것을 목표로 하고 있다 .
목표
• 어떻게 ?!
Java annotations 를 사용 !
컴파일 시에 generated code 를 생성하여
개발자들이 자신의 의도를 분명히 나타낼 수 있도록 ! ( 자세한건 뒤에서 ^_^)
목표
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
샘플 코드
AndroidAnnotations 에서
제시하는
예시코드를
살펴봅시다 ^_^
샘플 코드
가장 기본적인 @EActivity annotation 을 적용한 모습이다 .
코드가 훨씬 간결해짐을 알 수 있다 .
적용 전 적용 후
샘플 코드
뒤에서 나올 내용이니
지금은 간단한 모양만
보면 된다 . ^_^
사용 예를 보았으니
AndroidAnnotations 를
사용하기 위한
환경 설정을 시작해봅시다 !
환경 설정https://github.com/excilys/androidannotations/wiki/Configuration
위의 주소로 들어가면
여러 환경에서의 사용법이
문서화 되어있다 .
해당 강의에서는
Android Studio 를
이용하기 때문에
Gradle 을 기준으로
진행을 하도록 하겠습니다 ^_^
환경 설정1. Android Gradle 빈 프로젝트를 생성한다 .
2. build.gradle 를 아래와 같이 setting 한다 . (Top-level build file)
Android plugin 의 최신버전으로 !
Android-apt plugin 의 최신버전으로 !
환경 설정3. build.gradle 를 아래와 같이 setting 한다 . (Application build file)
환경 설정4. Annotation processor 설정
File → Other Settings → Default Settings...
환경 설정 Build, Execution, Deployment -> Compiler -> Annotation Processor
여기에 체크 !
4. Annotation processor 설정
환경 설정5. 이제 사용하면 된다 ~!
시작하기환경 설정이 모두 되었다면 이제 시작하면 된다 !
1. 새로운 Activity 를 생성한다 ! ( 또는 이미 존재하는 Activity 를 사용해도 된다 )
2. Activity 에 @EActivity, @ViewById, @Click 을 사용한다 !- 아래의 예제를 보고 따라해보자 ^_^
시작하기3. 파일을 저장한다 .
( 컴파일을 하고 우리가 만든 Activity 의 이름 뒤에 '_' 가 붙은 이름의 서브 클래스를 generate 한다 . "MyActivity" 의 generate 된 서브클래스 이름은 "MyActivity_")
4. Manifest 에 MyActivity 대신에 MyActivity_ 를 등록한다 . 이렇게 ~!
AndroidAnnotations Activity 에 적용하기 끝 !참 쉽죵 ^0^
시작하기덧 1,Android 에서 Activity 를 시작할 때 아래와 같이 해왔을 것이다 !
그러나 AndroidAnnotations 를 사용한다면 반드시 MyListActivity_ 가 호출되어 시작되어야 한다 !
왜 ??
시작하기덧 1,
AndroidAnnotations 는 Annotation 이 적용된 각각의 Activity 마다
서브클래스를 generate 한다 .
generate
이 서브 클래스는 super 를 부르는 것을 위임하기 전에
몇 가지 메소드들 (ex. onCreate(), ...) 을 overrinding 하여 사용자의 Activity 에 동작을 추가한다 .
시작하기덧 1,
그러므로 !
우리는 항상 Android Manifest 에 Activity 이름 뒤에
'_' 접미사를 붙여서 등록해 사용해야 한다 ! ^_^ 바로 이렇게
같은 패키지 , 같은 이름에 그냥 _ 접미사만 붙이면 된다 . 만약 AndroidManifest.xml 에 등록을 깜빡해도
AndroidAnnotations 가 알려주니 걱정말자 ~ ^_^
시작하기
앗 ! 제대로 따라했는데 build 가 안된다 ?!혹시 Not find my class ( ...MyActivity_ ) 라며 문제가 발생했나요 ..?!
generate 가 아직 안된 경우 ! 프로젝트를 Clean 해주면 된다 ~!
[ Build -> Clean Project ]
덧 2,
시작하기
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 를 살펴보길
Thank you