SlideShare a Scribd company logo
AndroidAnnotations
Resource Injection + Rest API
작성자 - 서주리
UI 개요
안드로이드에서
사용자 인터페이스(UI)는
뷰(View)와 뷰 그룹(View Group)객체를 사용하여 만들어짐
모든 뷰와 뷰 그룹은 뷰 클래스의 하위클래스가됨
뷰(View) 객체는 UI를 구성하는 기본 단위!
View와 ViewGroup
ViewGroup 클래스
"레이아웃(layout)"
하위 클래스의 기반이 됨.
레이아웃을 이용하여
화면 배치를 다양하게 만들 수 있음
View 클래스
"위젯(widget)"
하위 클래스들의 기반이 됨
View 객체
레이아웃 매개변수나
화면의 특정 사각 영역에 대한
정보를 담고 있는 자료 구조.
사용자 인터페이스 객체로서
사용자와 상호작용을 위한 창구
및 이벤트 리스너(listener) 역할을 함.
View 계층 구조
액티비티의 화면에
표시하기 위해서는
액티비티에서
setContentView() 메소드를
호출하면서, 뷰 계층 구조의
루트 노드 객체에
대한 참조를 파라미터로
전달하면 된다.
계층구조 최상위에서부터
순서대로 레이아웃 앨리먼트를 분석해서
뷰 들을 인스턴스화 하며,
그것들을 부모에 추가한다.
순서대로 그려지기 때문에 위치가 겹치는 앨리먼트는 마지막에
그려진 것이
이전에 그려진것보다 위에 놓이게 된다.
Layout
Activity나 Widget의 UI
XML을 이용하여 화면구성
자바 코드를 통해 화면구성
Layout
XML 리소스를 로드 할 경우
Layout
Layout 파라미터
layout_something으로 이름이 지어진 XML 레이아웃 속성은
뷰에 대한 레이아웃 파라미터를 정의한다!
Layout
레이아웃 종류 - LinearLayout
가장 기본적이면서
가장 많이 사용하는 레이아웃.
레이아웃의 요소들을
수직, 수평으로 배치한다.
Layout
레이아웃 종류 – RelativeLayout
레이아웃 요소들 간에 위치관계를 부여하고 그 관계에 따라 화면을 구성.
Layout
레이아웃 종류 - FrameLayout
가장 단순한 레이아웃
각 요소들을 모두 왼쪽 상단을 기준으로 포개는 방식으로 배치 됨.
두개의 화면을 붙여놓고 필요에 따라 스위칭 할 때 주로 사용(예, Tab)
Layout
레이아웃 종류 - TableLayout
일정한 선에 맞추어 정렬되어야 하는 요소를
정렬 할 때 주로 사용
TableLayout이 전체적인 테이블 구조의 모양을 관리하고,
각 행에는 TableRow가 하나씩 들어가며
실제 위젯은 각 행의 TableRow안에 들어감.
Layout
동일하게 annotation을 사용하면
injection 된다!
String
동일하게 annotation을 사용하면
injection 된다!
Color
동일하게 annotation을 사용하면
injection 된다!
Animation
동일하게 annotation을 사용하면
injection 된다!
이외의 Resource
@BooleanRes
@ColorStateListRes
@DrawableRes
@IntArrayRes
@IntegerRes
@MovieRes
@TextRes
@TextArrayRes
@StringArrayRes
모두 동일하게
사용하면 된다
^_^
Rest API
구성
@Rest
@RestService
@Get
@Post
@Put
@Patch
@Delete
@Options
@Head
@Accept
@RequiresHeader
@RequiresCookie
...
예제 어플리케이션을 통해
Rest 방식으로 구성된 서버와
간단히 통신하는 법을 알아보도록 하겠습니다.
Rest API
앞선 예제들과 다르게 spring android와
사용하는 Mapper가 별도로 필요합니다.
저는 Gradle에 다음을 추가하였습니다.
(곧 릴리즈 예정인 4.0부터는
해당 파트의 구조가 바뀌니 참고하세요)
Rest API
참고: 사용하는 라이브러리에 따라
다음 옵션이 필요할 수도 있습니다.
Rest API
다음과 같이 프로젝트를 구성하였습니다.
AAMainActivity: UI를 구현한 화면 및 기능수행
AARestProtocol: Rest 요청 행동이 정의된 인터페이스
Message: 데이터를 담아 통신하기 위한 객체
(코드는 이곳에서!) https://github.com/JuranoSaurus/RestAPISample
Rest API
요청으로 메시지를 보내고, 응답으로 echo
메시지를 받는 서버를 구성하였습니다.
@Background에서 별도의 스레드로
통신을 요청하고, 응답이 올 때까지 해당
스레드를 자동으로 block 합니다.
어디로 어떻게 요청을 보낼 건지는 다음
Interface에 행동을 정의만 해주면 됩니다!
(이렇게 쉬울수가...)
Message 객체의 구조는 다음과
같습니다.
Message 객체의 구조는 다음과
같습니다.
실행 결과입니다.
서버가 정상적으로 “Hello”를
전송해주는 것을 확인할 수 있습니다.
Thank you

More Related Content

PPTX
Spring portfolio
PPTX
Jang hyun su portfolio ppt
PPTX
Jurano강의 lec1. AndroidAnnotations 시작하기
PPTX
Jurano강의 lec2. sample application 둘러보기
PPTX
반복적인 작업이 싫은 안드로이드 개발자에게
PPT
안드로이드스터디 4
PDF
[NEXT] Android 개발 경험 프로젝트 2일차 (Intent, ListView, Adapter)
PPTX
안드로이드 프로그래밍 정복 - Android Study #어댑터뷰
Spring portfolio
Jang hyun su portfolio ppt
Jurano강의 lec1. AndroidAnnotations 시작하기
Jurano강의 lec2. sample application 둘러보기
반복적인 작업이 싫은 안드로이드 개발자에게
안드로이드스터디 4
[NEXT] Android 개발 경험 프로젝트 2일차 (Intent, ListView, Adapter)
안드로이드 프로그래밍 정복 - Android Study #어댑터뷰

Similar to Jurano강의 lec7 android_annotations_resource_injection_and_rest_api (20)

PPT
Android Programming - AdapterView
PPT
안드로이드스터디 5
PDF
iOS Human Interface Guidlines #14_SYS4U
PDF
PPTX
자주 사용되는 UI 패턴(컴포넌트) 과 UI 레이아웃
PDF
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 모바일 앱 프로그래밍 기말평가 제출본
PPTX
Django View Part 1
PDF
iOS Human Interface Guidlines #13_SYS4U
PPTX
Android Study Summary 2-1
PDF
Viewpager를활용한app만들기
PDF
[NEXT] Android 개발 경험 프로젝트 1일차 (Widget, Linear Layout)
PPTX
Java, android 스터티7
PDF
17 adapter view & db
PPTX
Holub on-patterns-2-1
PPTX
HolubOnPatterns/chapter2_1
PDF
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
PDF
React native study
PPTX
[스프링 스터디 3일차] AOP와 LTW
PDF
컴포넌트 관점에서 개발하기
PDF
모바일 앱 프로그래밍 2015-2019년 출석수업대체시험
Android Programming - AdapterView
안드로이드스터디 5
iOS Human Interface Guidlines #14_SYS4U
자주 사용되는 UI 패턴(컴포넌트) 과 UI 레이아웃
[방송통신대 컴퓨터과학과] 2020년 1학기 전공 모바일 앱 프로그래밍 기말평가 제출본
Django View Part 1
iOS Human Interface Guidlines #13_SYS4U
Android Study Summary 2-1
Viewpager를활용한app만들기
[NEXT] Android 개발 경험 프로젝트 1일차 (Widget, Linear Layout)
Java, android 스터티7
17 adapter view & db
Holub on-patterns-2-1
HolubOnPatterns/chapter2_1
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
React native study
[스프링 스터디 3일차] AOP와 LTW
컴포넌트 관점에서 개발하기
모바일 앱 프로그래밍 2015-2019년 출석수업대체시험
Ad

More from Ju-ri Seo (6)

PPTX
Jurano강의 lec6 android_annotations_threading
PPTX
Jurano강의 lec5 android_annotations_event_binding
PPTX
Jurano강의 lec4 android_annotations_application
PPTX
Jurano강의 lec3 android_annotations_enhanced_components
PPTX
150709 알고리즘문제풀이팁
PPTX
150708 알고리즘 문제풀이 이것은 알자
Jurano강의 lec6 android_annotations_threading
Jurano강의 lec5 android_annotations_event_binding
Jurano강의 lec4 android_annotations_application
Jurano강의 lec3 android_annotations_enhanced_components
150709 알고리즘문제풀이팁
150708 알고리즘 문제풀이 이것은 알자
Ad

Jurano강의 lec7 android_annotations_resource_injection_and_rest_api