jurano강의 lec7 android_annotations_resource_injection_and_rest_api
TRANSCRIPT
AndroidAnnotationsResource 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 을 이용하여 화면구성
자바 코드를 통해 화면구성
LayoutXML 리소스를 로드 할 경우
LayoutLayout 파라미터
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