본문 바로가기

전체 글134

12-1 앱바 사용하기 머티리얼 디자인은 구글의 디자인 지침이다. 그리고 이 디자인 지침에 맞게 앱을 만드는 여러가지 뷰를 라이브러리로 제공한다. 12장에서는 머티리얼 라이브러리에서 자주 사용하는 앱바 레이아웃, 탭 레이아웃, 내비게이션 뷰, 확장된 플로팅 액션 버튼 등을 소개한다. 상용 수준의 앱을 개발하고자 한다면 11장에서 살펴본 제트팩의 androidx와 마찬가지로 머티리얼 라이브러리도 잘 정리해둬야 한다. 머티리얼 라이브러리란? 구글의 머티리얼 디자인(material design)은 모바일과 데스크톱, 그리고 그 밖에 다양한 장치를 아우르는 일관된 애플리케이션 디자인 지침이다.(androidx는 기능 위주고 머티리얼은 디자인 중점인듯) 그림자 효과나 물결 모양 효과 등 다양한 뷰를 필요로 하는 효과들을 구현할 수 있도.. 2023. 6. 30.
11-6 드로어 레이아웃 - 옆에서 열리는 화면 구성 드로어 레이아웃(DrawerLayout)은 액티비티 화면에 보이지 않던 내용이 왼쪽이나 오른쪽에서 손가락의 움직임에 따라 밀려나오는 기능을 한다. androidx의 라이브러리인 드로어 레이아웃은 마치 서랍(drawer)처럼 열리는 메뉴를 구성할 때 사용한다. ex. 카카오맵(지금은 업뎃돼서 바뀌었나?) 화면 왼쪽을 탭해서 오른쪽으로 밀면 목록으로 구현된 화면이 나온다. 더보기 (개정판 삭제) 드로어 레이아웃을 사용하려면 그래들 파일의 dependencies 항목에 다음처럼 선언해야 한다. // 드로어 레이아웃 선언 implementation 'androidx.drawerlayout:drawerlayout:1.1.1' 드로어 레이아웃을 액티비티에 적용하려면 액티비티의 레이아웃 XML 파일 구성이 중요하다... 2023. 6. 29.
11-5 뷰 페이저2 - 스와이프로 넘기는 화면 구성 뷰 페이저(ViewPager)는 스와이프(손가락으로 화면을 탭하여 오른쪽이나 왼쪽으로 미는) 이벤트로 화면을 전환할 때 사용한다. ex. 인스타그램 뷰 페이저는 플랫폼 API에서 제공하지 않으므로 androidx 라이브러리를 이용해 개발해야 한다. 2019년에 뷰 페이저 대신 뷰페이저2가 나왔다. 더보기 (개정판 삭제 내용) 뷰 페이저2를 이용하려면 그래들 파일의 dependencies 항목에 다음과 같이 설정해야 한다. // 뷰 페이저2 선언 implementation 'androidx.viewpager2:viewpager2:1.0.0' // 뷰 페이저2 라이브러리 추가 뷰 페이저2는 화면을 항목으로 본다. 각 항목이 순서대로 나열되어 있는데 단지 한 화면에 항목 하나가 나온다는 개념이다. 따라서 리사.. 2023. 6. 29.
11-4 리사이클러 뷰 - 목록 화면 구성 리사이클러 뷰 기초 사용법 리사이클러 뷰는 목록 화면을 만들 때 사용한다. RecyclerView 클래스만으로는 화면에 아무것도 출력되지 않는다. 다음과 같은 구성 요소가 필요하다. ViewHolder(필수): 항목에 필요한 뷰 객체를 가진다. Adapter(필수): 항목을 구성한다. 뷰 홀더에 있는 뷰 객체에 적절한 데이터를 대입해 항목을 완성한다. LayoutManager(필수): 항목을 배치한다. 어댑터가 만든 항목들을 어떻게 배치할지 결정하여 리사이클러 뷰에 출력한다. ItemDecoration(옵션): 항목을 꾸민다. 예를 들어 카카오톡 채팅방 목록 화면을 리사이클러 뷰로 만든다 할 때, 뷰 홀더는 각 뷰가 들어갈 자리? 틀? 느낌이고, 어댑터는 각각의 뷰에 이미지뷰, 텍스트 뷰 등등 어떤거 들.. 2023. 6. 29.
11-3 프래그먼트 - 액티비티처럼 동작하는 뷰 androidx에서 제공하는 라이브러리 가운데 프래그먼트와 뷰 페이저2는 중요도와 사용 빈도가 높다. 프래그먼트는 플랫폼 API에서도 android.app.Fragment로 제공하지만 대부분 androidx.fragment 라이브러리를 이용해 구현한다. 따라서 이 책에는 androidx 라이브러리로 프래그먼트를 사용하는 방법을 설명한다. 참고로 11-5 절에서 설명할 뷰 페이저2는 플랫폼 API에서 제공하지 않는 라이브러리이다. 프래그먼트 소개 프래그먼트는 텍스트 뷰나 버튼처럼 액티비티 화면을 구성하는 뷰인데, 그 자체만으로는 화면에 아무것도 출력되지 않는다. 프래그먼트가 다른 뷰와 다른 점은 액티비티처럼 동작한다는 것이다. 즉, 액티비티에 작성할 수 있는 모든 코드는 프래그먼트에도 사용할 수 있다. 프.. 2023. 6. 29.
11-2 appcompat 라이브러리 - API 호환성 해결 androidx 라이브러리에서 가장 많이 사용하는 appcompat 라이브러리는 안드로이드 앱의 화면을 구성하는 액티비티를 만들며 API 레벨의 호환성 문제를 해결해준다. appcompat 라이브러리를 사용하려면 그래들 파일의 dependencies 항목(의존성 설정)에 다음처럼 선언해야 한다. 그런데 이 선언은 안드로이드 스튜디오에서 모듈을 만들 때 자동으로 추가된다. // appcompat 라이브러리 선언 implementation 'androidx.appcompat:appcompat:1.3.1' appcompat 라이브러리를 이용해서 액티비티를 만들 때는 플랫폼 API의 Activity가 아니라 다음처럼 appcompat의 AppCompatActivity 클래스를 상속받아 작성한다. // appco.. 2023. 6. 29.