마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

material design 이라는게 안드로이드 스튜디오에서 기본적으로 지원하나요?

0 추천

앱 UI/UX를 디자인할때 material design이라는 것을 쓰면 더 편리하게 디자인 할 수 있다고 들었는데요..

유튜브같은것을 봐도 gradle의 dependecies에 라이브러리를 추가하고 막 이런게 없던데..

저는 지금 이거 사용하고 싶은데 일주일동안 어떻게 사용하는건지 몰라서 이것저것 건드려보고 실패해서 지금 거의 망연자실중인데..

 

이게 제 안드로이드 스튜디오에서 xml파일의 design 탭을 캡쳐한건데..material design이 사실 

구글의 안드로이드 디자인 가이드라고 들었거든요? 그럼 이러한 뷰들도 결국 구글에서 가이드따라 만든거니까 이게 결국 material design인건가요? 그러니까 결국 material design을 사용하기 위해서

라이브러리 추가나 이런 헛고생할 필요가 전혀 없었던것인가요?

 

막 화려하고 깔끔하고 동적이고 그러한 UI들은 원래 이 안드로이드 스튜디오내에서 그냥 다 해결할 수있었던 것인가요..?ㅠㅠ제가 잘못알고 있는건가요?

codeslave (3,940 포인트) 님이 2019년 5월 12일 질문

1개의 답변

0 추천

안드로이드 5.0 부터 기본 컴포넌트들에 매터리얼 디자인을 적용하고 있습니다. 하지만 매터리얼 디자인도 계속 버전업이 되고 있고 5.0 이전의 안드로이드 버전에서도 매터리얼 디자인을 적용하는게 필요하죠. 이런 기본적인 컴포넌트들의 호환성을 위해서 androidx.appcompat 라이브러리를 사용해야 합니다. TextView라던지 Button 이라던지의 기본적인 View들의 매터리얼 테마를 처리해주고요.

안드로이드에서 기본으로 제공하지 않고 있는 매터리얼 컴포넌트들은 com.google.android.material 라이브러리에서 제공하고 있는 것들이 있습니다.

(그리고 기본 안드로이드에는 없는데 매터리얼 UI에 사용되는 것들중 레이아웃 등과 관련된 또 다른 별도의 라이브러리로 제공되는 것들이 있는데요. https://developer.android.com/reference/androidx/classes.html 에서 보면 .widget이 붙어있는 것들입니다. 예를 들어 RecyclerView라던자 동적인 UI랑 관련있는 CoordinatorLayout이라던 것들은 별도의 라이브러리로 구성되는데. 이런 것들은 material 라이브러리 추가하면 자동으로 디펜던시 추가되니 크게 신경쓰지 않아도 됩니다.)

그리고 안드로이드 스튜디오의 레이아웃 도구는 기본 안드로이드 컴포넌트들만 다루는게 아니라 androidx나 material 라이브러리에 있는 것들도 처리하고 있습니다. 당연히 해당 라이브러리들을 프로젝트에 추가해야 사용할수 있겠죠?

따지고 보면 매우 복잡한데요 간단히 정리하자면 appcompat이랑 material은 프로젝트 gradle 디펜던시에 일단 무조건 추가하시고 안드로이드 스튜디오 레이아웃 도구 사용하시면 됩니다.

 

회색 (21,000 포인트) 님이 2019년 5월 15일 답변
회색님이 2019년 5월 15일 수정
으음..그럼 com.android.support:appcompat-v7 이 아닌 androidx 로 바뀐
androidx.appcompat:appcompat:1.0.0 이걸 추가해주고, 또 material design을 사용하기위해 com.android.support:design이 아닌 com.google.android.material:material:1.0.0-rc01 이걸 추가해주면 된다는 말씀이시죠..?
아 그리고 하나더 여쭤볼게 있는데요! 제가 데스크탑에 안드로이드 스튜디오를 설치하고 있는데 SDK Flatform 에  Android Q (API Level Q)도 설치를 해줘야하나요?
...