빠른 Android 개발과 쉬운 유지보수를 위한 오픈소스 프레임워크 AndroidAnnotations.
AndroidAnnotations에 대해서 알고 함께 사용해 봅시다^_^!
오늘은 JuranoSaurus의 첫 번째 강의인 AndroidAnnotations 시작하기 입니다.
JuranoSaurus Project Team. 김성근 김태희 서주리
2. 목차
1. AndroidAnnotations 소개
2. AndroidAnnotations 목표
3. AndroidAnnotations 샘플 코드 살펴보기
4. AndroidAnnotations 환경 설정 하기
5. AndroidAnnotations 시작하기
3. 소개
• Androidannotations 란 무엇일까요?
Fast Android Development.
Easy maintenance.
빠른 Android 개발과 쉬운 유지보수를 위한
오픈 소스 프레임 워크 !
출처 - https://github.com/excilys/androidannotations
4. 목표
로버트 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는 명확한 의도와 간단한 코드가
그 목표를 달성하는 가장 좋은 방법이라는 것을 목표로 하고 있다.
6. 목표
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
11. 환경 설정
1. Android Gradle 빈 프로젝트를 생성한다.
2. build.gradle 를 아래와 같이 setting 한다. (Top-level build file)
Android plugin의 최신버전으로 !
Android-apt plugin의 최신버전으로 !
16. 시작하기
환경 설정이 모두 되었다면 이제 시작하면 된다!
1. 새로운 Activity를 생성한다! (또는 이미 존재하는 Activity를 사용해도 된다)
2. Activity에 @EActivity, @ViewById, @Click 을 사용한다!
- 아래의 예제를 보고 따라해보자^_^
17. 시작하기
3. 파일을 저장한다.
(컴파일을 하고 우리가 만든 Activity의 이름 뒤에 '_'가 붙은 이름의 서브 클래스를 generate 한다.
"MyActivity"의 generate된 서브클래스 이름은 "MyActivity_")
4. Manifest에 MyActivity 대신에 MyActivity_를 등록한다. 이렇게~!
AndroidAnnotations Activity에 적용하기 끝 !
참 쉽죵 ^0^
18. 시작하기
덧 1,
Android에서 Activity를 시작할 때 아래와 같이 해왔을 것이다!
그러나 AndroidAnnotations를 사용한다면 반드시 MyListActivity_가 호출되어 시작되어야 한다!
왜??
19. 시작하기
덧 1,
AndroidAnnotations는 Annotation이 적용된 각각의 Activity마다
서브클래스를 generate 한다.
generate
이 서브 클래스는 super를 부르는 것을 위임하기 전에
몇 가지 메소드들(ex. onCreate(), ...)을 overrinding하여 사용자의 Activity에 동작을 추가한다.
20. 시작하기
덧 1,
그러므로!
우리는 항상 Android Manifest에 Activity 이름 뒤에
'_' 접미사를 붙여서 등록해 사용해야 한다! ^_^ 바로 이렇게
같은 패키지, 같은 이름에 그냥 _ 접미사만 붙이면 된다.
만약 AndroidManifest.xml에 등록을 깜빡해도
AndroidAnnotations가 알려주니 걱정말자~ ^_^
21. 시작하기
앗! 제대로 따라했는데 build가 안된다?!
혹시 Not find my class ( ...MyActivity_ ) 라며 문제가 발생했나요..?!
generate가 아직 안된 경우 ! 프로젝트를 Clean 해주면 된다~!
[ Build -> Clean Project ]
덧 2,
22. 시작하기
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를 살펴보길