본문 바로가기

카테고리 없음

개발자도 알아야 할 안드로이드 UI 디자인


사용자 경험과 이를 극대화(라는 말도 요새는 참 천박하게 느껴진다만)하는 여러가지 실체적인 방법들에 대한 쏜비 누나의 탁월한 식견에 대해서는 뭐 하나 트집잡을 것 없이 읽는 것마다 신박하여 모두 머릿 속 가슴 속에 꼭꼭 채워넣고 싶은 그런 마음이다만.. 참으로 안타까운 것이 왜 마테리얼 디자인이 아직도 주인가? 왜 프래그먼트 중심 사고가 기반인가? 스퀘어 개발진이 하아 구글형님들 프래그먼트 이거 쓰다보니 머리가 더 복잡해져요 하면서 안티-프래그먼트 무브먼트처럼 거창한 슬로건은 아니더라도 충분히 대안이 될만한 리디자인 방법론을 제시했고, 최근에 그걸 따르지 않는 엣지 안드로이드 UI는 없다고 보는데 그게 전혀 다뤄지지 않은 점이 참 아쉽다. 타이밍의 문제일까? 그래도 쏜비 누나의 통찰력만큼은..
안드로이드 UI 디자인의 기초부터 구글의 디자인 가이드라인인 구글 머티리얼 디자인을 활용한 디자인 방법과 아이디어를 구체화하기 위한 도구와 기법, 모범 사례까지 UI 디자인을 위한 모든 것을 다룬다. UI 디자인에 반드시 필요한 내용부터 경험을 통해서만 알 수 있는 내용까지 다뤄 다양한 스팩트럼의 디자이너와 개발자에게 도움을 줄 수 있는 내용으로 구성돼 있다.

1장. 안드로이드 UI 소개
__사용자 인터페이스란?
__안드로이드용 UI 개발은 다른 플랫폼 개발과 정말 다를까?
__효과적인 UI의 특징은 무엇일까?
__앱의 성공을 위해 왜 UI가 필수적일까?
____직관적인 익숙함
____쉽고 즐거운 사용
____일관성
____사용자의 불만 예방
____사용자가 실수를 바로잡을 수 있도록 지원
____전반적으로 더 좋은 안드로이드 사용자 경험 제공
__UI 사례 학습 - Google+
____액션 바
____떠다니는 액션 버튼
____메뉴
____설정
____다이얼로그
____토스트
____검색
____입력 컨트롤
____스타일과 테마
__요약

2장. 효과적인 UI에는 무엇이 필요할까?
__뷰란?
__레이아웃이란?
__XML이나 Java로 UI 생성
____XML로 UI 선언
____프로그램 코드로 UI 선언
____프로그램 코드와 XML 레이아웃 혼용
__레이아웃
____레이아웃 크기 정의
__다양한 레이아웃
____LinearLayout의 모든 것
____RelativeLayout의 모든 것
__뷰 생성
____아이디 속성 할당
____뷰 크기 설정
____안드로이드 그라비티와 레이아웃 그라비티
____색상과 배경 설정
____가중치 설정
__뷰 객체 추가 및 커스터마이징
____텍스트뷰
__에디트텍스트
____키보드 동작 제어-inputType 설정
____android:imeOptions
____사용자 힌트
__이미지뷰
____멀티스크린 지원
____이미지뷰 추가
__버튼과 이미지버튼
____텍스트 라벨 버튼 생성
____이미지 라벨 버튼 생성
____텍스트와 이미지 라벨 버튼 생성
__상태 목록 리소스
__요약

3장. UI 더 알아보기 - 프레그먼트, 리소스, 사용자 입력
__그 외의 리소스 종류
____문자열 리소스 생성 및 스타일 적용
____문자열 배열 생성
____dimens
____색상 상태 목록
__나인패치 이미지 작업
____나인패치 이미지를 어떻게 만들까?
__사용자 입력 등록
____클릭 이벤트 처리
____에디트텍스트 입력 등록
__프레그먼트 작업
____왜 프레그먼트가 필요할까?
____프레그먼트 생명주기
____프레그먼트 생성
__실시간으로 액티비티에 프레그먼트 추가
__안드로이드 N의 멀티윈도우 지원
____멀티윈도우 모드는 어떻게 동작하나?
____멀티윈도우 모드를 위한 앱 준비
____픽처 바이 픽처 모드
__요약

4장. 머티리얼 디자인 시작하기
__머티리얼 디자인 정신
____사례 학습 - 행아웃
____사례 학습 - 구글 캘린더
____사례 학습- 구글 지도
__머티리얼 디자인 시작하기
____머티리얼 테마 적용
____입체감 만들기
____떠다니는 액션 버튼
____바텀 시트
____카드뷰
____목록과 리사이클러뷰
____애니메이션과 전환
____사용자에게 시각적인 피드백 제공하기
____마무리 작업
__요약

5장. 번뜩이는 아이디어를 상세 스케치로 바꾸기
__브레인스토밍 - 모바일 하드웨어의 이점 활용
____터치와 제스처
____GPS
____진동
____오디오 입출력
____다른 기기와의 인터랙션
__UX와 UI의 차이
__앱 브레인스토밍
____개념을 글로 작성
____최종 기능 목록 생성
____앱의 주요 동작 명확히 하기
____모바일에 적합한 애플리케이션인가?
____예산이 적절한가?
__앱 계획
____대상 사용자 식별
____사용자와 제품 목표 식별
____로드맵 생성
____마지막 고려 사항
__애플리케이션 디자인
____수준 높은 흐름
____화면 목록 생성
____화면 지도 생성
____내비게이션
____일반적인 내비게이션 패턴
____소셜 레이어
__요약

6장. 스케치를 와이어프레임으로 바꾸기
__와이어프레임이란?
____와이어프레임의 이점은?
____와이어프레임 만들기
____와이어프레임 더 살펴보기
____디지털 와이어프레임
__종이 프로토타입이란?
____사용성 테스트
__요약

7장. 프로토타입 만들기
__안드로이드 스튜디오에서 프로토타입 만들기
____첫 번째 프로토타입 만들기
____두 번째 프로토타입 만들기
____디자인 확정
__테마와 스타일 만들기
____스타일 정의하기
____테마로 작업하기
__오류에 대한 준비
____사용자 입력 오류
__요약

8장. 다양한 기기 지원으로 더 많은 사용자에게 다가가기
__다양한 안드로이드 버전 지원하기
____최솟값과 대상 API 레벨 지정하기
____런타임에 버전 확인
__다양한 화면 지원하기
____구성 한정자
____안드로이드에서 정확한 리소스를 선택하는 방법
____별명 리소스 만들기
____화면 밀도
____다양한 화면 크기에 맞는 다양한 레이아웃 제공하기
____다양한 화면 방향 디자인하기
____다양한 화면에서 테스트하기
__여러 나라의 사용자에게 주목받기
____대상 언어와 지역 확인하기
____그 밖의 리소스 현지화하기
____기본 리소스는 왜 중요한가?
____앱 번역하기
____앱 현지화의 모범 사례
____다양한 로캘에서 앱 테스트하기
____구글 플레이 스토어 목록 현지화하기
____프로젝트 출시 이후
__요약

9장. UI 최적화하기
__코드의 시간 측정하기
__오버드로우 확인하기
__Hierarchy View 단순화하기
____트리 뷰(Tree View)
____트리 오버뷰(Tree overview)
____레이아웃 뷰(Layout View)
__메모리 부족 찾아내기
____메모리 모니터
____힙(heap) 탭
____객체 할당 - 메모리 변동(memory churn) 이해하기
__프로젝트 디버깅하기
____브레이크 포인트 사용하기
__Lint로 코드 검사하기
__ProGuard로 코드 최적화하기
__모든 픽셀을 상세하게 살펴보기
____Pixel Perfect 창
____Pixel Perfect 트리
____Pixel Perfect Loupe 창
__프로세스와 스레드
____프로세스 종료하기
__〉와 〈merge/〉로 레이아웃 재사용하기
____필요한 경우에만 뷰 불러오기
__요약

10장. 모범 사례와 애플리케이션 보안
__데이터 보안 유지
____네트워크 연결
__권한 요청
____새 권한 모델 - 백워드 호환성
____권한 그룹
____권한 선언
____권한과 〈uses-feature〉
____앱 권한 처리 모범 사례
__알림
____알림 모범 사례
____직접 응답할 수 있는 알림
____알림 묶음
__애플리케이션 위젯
____프로젝트의 매니페스트에 AppWidgetProvider 선언
____AppWidgetProviderInfo 파일 생성
____위젯의 레이아웃 생성
__접근성 모범 사례
____UI 컨트롤에 대한 설명 문구 추가
____포커스 탐색을 위한 디자인
____사용자 정의 뷰 컨트롤
____다양한 서체 크기 테스트
____터치 대상의 권고 크기
____타임아웃에 대한 대안 제공
__애플리케이션의 접근성 기능 테스트
__요약