jurano강의 lec7 android_annotations_resource_injection_and_rest_api

26
AndroidAnnotations Resource Injection + Rest API 작작작 - 작작작

Upload: ju-ri-seo

Post on 15-Apr-2017

401 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Jurano강의 lec7 android_annotations_resource_injection_and_rest_api

AndroidAnnotationsResource Injection + Rest API

작성자 - 서주리

Page 2: Jurano강의 lec7 android_annotations_resource_injection_and_rest_api

UI 개요

안드로이드에서

사용자 인터페이스 (UI) 는

뷰 (View) 와 뷰 그룹 (View Group) 객체를 사용하여 만들어짐

모든 뷰와 뷰 그룹은 뷰 클래스의 하위클래스가됨

뷰 (View) 객체는 UI 를 구성하는 기본 단위 !

Page 3: Jurano강의 lec7 android_annotations_resource_injection_and_rest_api

View 와 ViewGroup

ViewGroup  클래스 "레이아웃 (layout) " 하위 클래스의 기반이 됨 .

레이아웃을 이용하여 화면 배치를 다양하게 만들 수 있음

 View  클래스 " 위젯 (widget)"

하위 클래스들의 기반이 됨

View  객체레이아웃 매개변수나

화면의 특정 사각 영역에 대한 정보를 담고 있는 자료 구조 .사용자 인터페이스 객체로서

사용자와 상호작용을 위한 창구 및 이벤트 리스너 (listener) 역할을 함 .

Page 4: Jurano강의 lec7 android_annotations_resource_injection_and_rest_api

View 계층 구조액티비티의 화면에

표시하기 위해서는

액티비티에서

setContentView() 메소드를

호출하면서 , 뷰 계층 구조의

루트 노드 객체에

대한 참조를 파라미터로

전달하면 된다 .계층구조 최상위에서부터

순서대로 레이아웃 앨리먼트를 분석해서

뷰 들을 인스턴스화 하며 ,그것들을 부모에 추가한다 .순서대로 그려지기 때문에 위치가 겹치는 앨리먼트는 마지막에

그려진 것이

이전에 그려진것보다 위에 놓이게 된다 .

Page 5: Jurano강의 lec7 android_annotations_resource_injection_and_rest_api

Layout

Activity 나 Widget 의 UI

XML 을 이용하여 화면구성

자바 코드를 통해 화면구성

Page 6: Jurano강의 lec7 android_annotations_resource_injection_and_rest_api

LayoutXML 리소스를 로드 할 경우

Page 7: Jurano강의 lec7 android_annotations_resource_injection_and_rest_api

LayoutLayout 파라미터

layout_something 으로 이름이 지어진 XML 레이아웃 속성은

뷰에 대한 레이아웃 파라미터를 정의한다 !

Page 8: Jurano강의 lec7 android_annotations_resource_injection_and_rest_api

Layout

레이아웃 종류 - LinearLayout

가장 기본적이면서

가장 많이 사용하는 레이아웃 .레이아웃의 요소들을

수직 , 수평으로 배치한다 .

Page 9: Jurano강의 lec7 android_annotations_resource_injection_and_rest_api

Layout

레이아웃 종류 – RelativeLayout레이아웃 요소들 간에 위치관계를 부여하고 그 관계에 따라 화면을 구성 .

Page 10: Jurano강의 lec7 android_annotations_resource_injection_and_rest_api

Layout

레이아웃 종류 - FrameLayout

가장 단순한 레이아웃

각 요소들을 모두 왼쪽 상단을 기준으로 포개는 방식으로 배치 됨 .두개의 화면을 붙여놓고 필요에 따라 스위칭 할 때 주로 사용 ( 예 , Tab)

Page 11: Jurano강의 lec7 android_annotations_resource_injection_and_rest_api

Layout레이아웃 종류 - TableLayout

일정한 선에 맞추어 정렬되어야 하는 요소를

정렬 할 때 주로 사용

TableLayout 이 전체적인 테이블 구조의 모양을 관리하고 , 각 행에는 TableRow 가 하나씩 들어가며

실제 위젯은 각 행의 TableRow 안에 들어감 .

Page 12: Jurano강의 lec7 android_annotations_resource_injection_and_rest_api

Layout

동일하게 annotation 을 사용하면

injection 된다 !

Page 13: Jurano강의 lec7 android_annotations_resource_injection_and_rest_api

String

동일하게 annotation 을 사용하면

injection 된다 !

Page 14: Jurano강의 lec7 android_annotations_resource_injection_and_rest_api

Color

동일하게 annotation 을 사용하면

injection 된다 !

Page 15: Jurano강의 lec7 android_annotations_resource_injection_and_rest_api

Animation

동일하게 annotation 을 사용하면

injection 된다 !

Page 16: Jurano강의 lec7 android_annotations_resource_injection_and_rest_api

이외의 Resource @BooleanRes@ColorStateListRes@DrawableRes@IntArrayRes@IntegerRes@MovieRes@TextRes@TextArrayRes@StringArrayRes

모두 동일하게

사용하면 된다

^_^

Page 17: Jurano강의 lec7 android_annotations_resource_injection_and_rest_api

Rest API구성@Rest@RestService@Get@Post@Put@Patch@Delete@Options@Head@Accept@RequiresHeader@RequiresCookie...

예제 어플리케이션을 통해

Rest 방식으로 구성된 서버와

간단히 통신하는 법을 알아보도록 하겠습니다 .

Page 18: Jurano강의 lec7 android_annotations_resource_injection_and_rest_api

Rest API앞선 예제들과 다르게 spring android 와

사용하는 Mapper 가 별도로 필요합니다 .저는 Gradle 에 다음을 추가하였습니다 .

( 곧 릴리즈 예정인 4.0 부터는

해당 파트의 구조가 바뀌니 참고하세요 )

Page 19: Jurano강의 lec7 android_annotations_resource_injection_and_rest_api

Rest API참고 : 사용하는 라이브러리에 따라

다음 옵션이 필요할 수도 있습니다 .

Page 20: Jurano강의 lec7 android_annotations_resource_injection_and_rest_api

Rest API다음과 같이 프로젝트를 구성하였습니다 .

AAMainActivity: UI 를 구현한 화면 및 기능수행

AARestProtocol: Rest 요청 행동이 정의된 인터페이스

Message: 데이터를 담아 통신하기 위한 객체( 코드는 이곳에서 !) https://github.com/JuranoSaurus/RestAPISample

Page 21: Jurano강의 lec7 android_annotations_resource_injection_and_rest_api

Rest API요청으로 메시지를 보내고 , 응답으로

echo 메시지를 받는 서버를

구성하였습니다 .

@Background 에서 별도의 스레드로

통신을 요청하고 , 응답이 올 때까지 해당

스레드를 자동으로 block 합니다 .

Page 22: Jurano강의 lec7 android_annotations_resource_injection_and_rest_api

어디로 어떻게 요청을 보낼 건지는 다음

Interface 에 행동을 정의만 해주면 됩니다 !( 이렇게 쉬울수가 ...)

Page 23: Jurano강의 lec7 android_annotations_resource_injection_and_rest_api

Message 객체의 구조는 다음과

같습니다 .

Page 24: Jurano강의 lec7 android_annotations_resource_injection_and_rest_api

Message 객체의 구조는 다음과

같습니다 .

Page 25: Jurano강의 lec7 android_annotations_resource_injection_and_rest_api

실행 결과입니다 .서버가 정상적으로 “ Hello” 를

전송해주는 것을 확인할 수 있습니다 .

Page 26: Jurano강의 lec7 android_annotations_resource_injection_and_rest_api

Thank you