MyCloud

[안드로이드] 머티리얼 디자인을 위한 라이브러리 (AppCompat, Design Library) 본문

Programming/Android

[안드로이드] 머티리얼 디자인을 위한 라이브러리 (AppCompat, Design Library)

Swalloow 2016. 4. 9. 23:25



안드로이드로 위젯을 구성하다보면 android.support.v7.appcompat 이라는 라이브러리도 있고

android.support.design.widget 이라는 라이브러리도 나타나게 됩니다.

과거에 사용했던 것과 어떤 차이가 있고 어떤 기능이 새로 생겼는지 알아보겠습니다.




AppCompat Library


android.support.v7.appcompat 라이브러리는 14년 10월에 공개되었으며,

롤리팝 SDK의 머티리얼 디자인을 지원하기 위해 만들어졌습니다.

support.v7 은 안드로이드 하위 버전을 지원하기 위한 확장 서포트 라이브러리 입니다.



1. Toolbar widget



안드로이드 초창기에는 ActionBarSherlock을 이용해 액션바를 구현하는 경우가 있었지만

이후에 ActionBarActivity가 생기면서 액션바를 정의할 수 있게 되었고, 현재는 AppCompatActivity를 사용합니다.

AppCompat 라이브러리의 Toolbar는 좀 더 일반적인 형태의 액션바입니다.

독립적으로 사용이 가능하며 원하는 형태로 커스터마이징 할 수 있고,

액션바에서 제공하는 메뉴 생성과 같은 기능을 사용할 수 있습니다.


이 시기에 RecyclerView, CardView, Palette 라이브러리도 정식 공개되었습니다.








Design Support Library


android.support.design.widget 라이브러리는 15년 6월에 공개되었으며,

마찬가지로 머티리얼 디자인을 지원하기 위해 만들어졌습니다.

머티리얼 디자인에 대해서는 따로 포스팅하겠습니다.



1. Navigation View



기존에는 Navigation Drawer를 통해 네비게이션을 만들고 머티리얼 디자인을 적용하기가 까다로웠습니다.

NavigationView는 네비게이션을 위한 프레임워크를 제공하면서

메뉴 리소스를 통해 네비게이션 항목을 확대시키는 기능까지 제공합니다.



2. Header Layout



기존에는 CirclerImageView를 통해 프로필 사진을 만들어 헤더를 정의했지만

이제는 app:headerLayout 성을 통해 프로필 섹션을 쉽게 만들 수 있습니다.

headerLayout은 네비게이션 아이템들의 바로 위에 위치하게 되며 머티리얼 디자인 가이드라인을 따릅니다.



3. FloatingActionButton



FloatingActionButton은 인터페이스의 기본 액션을 나타내는 동그란 버튼이며 새로 생긴 기능입니다.

상위에 메뉴를 펼쳐 여러 기능을 수행하도록 설정할 수 있습니다.

 


4. Coordinator Layout


Coordinator Layout은 터치 시 일어나는 효과와 시각적 요소를 고려한 동작 전환을 위한 레이아웃입니다.

FloatingActionButton을 하위로 추가하거나 

AppBarLayout를 사용하여 레이아웃의 나머지 부분과 어울리도록 지정할 수 있습니다.



5. Snackbar


스낵바는 어떤 작업에 관해 가볍고 신속한 피드백을 제공합니다.

화면 맨 밑에 표시되어 한 개의 옵션 동작을 수반한 텍스트가 담겨 있는 형태입니다.

스낵바는 스와이프나 다른 액션과 상호작용할 때 강력한 기능을 발휘합니다.



6. Tab Layout



디자인 라이브러리의 TabLayout은 고정된 탭과 스크롤 가능한 두 가지 탭 모두를 구현합니다.

tabMode, tabGravity 속성을 통해 기존보다 쉽고 간편하게 구현할 수 있도록 도와줍니다.








AppCompat 라이브러리와 Design 라이브러리를 통해 머티리얼 디자인을 쉽게 적용할 수 있습니다.

참고 : http://googledevkr.blogspot.kr/2015/06/designsupport.html

참고 : http://googledevkr.blogspot.kr/2014/10/appcompat-v21-material-design-for-pre.html

참고 : http://blog.bsk.im/2015/08/18/introducing-android-design-support-library/




Comments