본문 바로가기

Android Studio/Android8

Android Compose UI 기초 안드로이드에서 Compose UI가 나온 지 좀 됐다. 플러터 UI 개발 방식과 유사한 Android Jetpack의 ComposeUI는 선언형 프로그래밍 방식이다. 비슷한 방식으로 - Flutter - SwiftUI 가 있다고 보면 된다. 또한 Compose는 Material 디자인을 지원한다. 즉, 구글의 기본적인 디자인을 지원한다는 것. ToolBar 이런 거를 기본적으로 쓸 수 있다. 먼저 컴포저블에 대해 알아보자면 다음 코드에서 보다시피 컴포즈를 쓸때 선언해 주는 것이다. Compose UI의 구조에 대해 쉽게 본다면 그냥 트리 구조같다고 보면된다. 기존에 많이 썼던 xml의 ConstraintLayout은 트리구조가 아닌 뷰와 뷰를 상대적으로 상호연결하는 구조라 빠른 것으로 알고 있다. (물론.. 2023. 8. 22.
안드로이드 MVC 패턴 (가장 기본적인 패턴) MVC패턴은 안드로이드 디자인 패턴 MVP, MVVM의 기초 뼈대가 되는 디자인 패턴이다. 내가 디자인 패턴을 잘 모르는 사람이다싶어도 MVC 패턴대로 개발하고 있을 확률이 높을만큼 흔하고 쉽다. Model View Controller 의 구조이다. 이미지에서 보다시피 딱 봐도 Controller에서 모든 게 이루어진다고 생각하면 된다. Model ) 데이터의 정보가 담겨 있는 곳이다. 예를 들면 data class와 같은 데이터 객체이다. data class House{ val area : String, val size : Int, val type : String } 이런 구조가 있을 것 같다. 참고로 모델은 어디에 의존하지 않기 때문에 재사용이 가능하다. 다음으로 View View ) xml 레이아웃.. 2022. 3. 24.
Android Studio 팝업창 만들기 팝업창을 만드는 방법으로 여러가지 방법이 있는데, 이 포스팅에서 쓸 방법은 팝업 액티비티의 뒷 배경을 반투명하게 하여, 팝업창이 띄워지는 것처럼 보이도록 하는 방법이다. 1. 먼저, 팝업창을 만들 때 일반 Activity를 만들 듯이 똑같이 팝업 Activity를 만든다. 그 후 Activity를 구성한다라는 생각으로 팝업 xml 파일에 레이아웃을 구성시키면 된다. 이 때 팝업 xml 파일 구성시에는 꼭 전체 크기를 match_parent로 하면 안된다. 그렇게 할 경우 일반 화면 전환 식으로 넘어가기 때문에 팝업을 만들 수가 없다. ( ※ 'background=#00FFFFFF'는 안 써도 상관 없음 ) 이제 팝업을 띄울 때 뒷 배경은 대부분 어두운 반투명 배경이므로 그 부분을 만들어야 한다. 2. v.. 2020. 7. 22.
Android Studio setClipToOutLine() in RecyclerView 리사이클러뷰에서 아이템마다 이미지를 배경으로 주고싶은데 그 아이템 배경의 모서리가 둥글기를 원할 때가 있다. 예를 들어보자면, 이런 리사이클러뷰가 있다고 친다면, 이미지가 들어간 아이템들의 모서리가 전부다 둥글다. 이럴 경우에 일단 drawable 폴더에 radius 값을 준 형태의 xml 파일을 만든다음에 아이템의 background에 이 xml파일을 입혀주는 것까지는 원래 background를 주는 방식과 동일하다. 그 후 원래는 메인에서 setClipToOutLine(ture)를 써주면 되지만, 리사이클러뷰 같은 경우에는 아이템과 리사이클러뷰의 중간 매개체 역할을 해주는 viewHolder 파일의 bind 메소드 안에서 해당 이미지 파일에 setClipToOutLine(true)를 달아주면 된다. .. 2020. 4. 10.
Android Studio Room Database 안드로이드 스튜디오에서 로컬 DB를 사용할 때 쓸 수 있는 것으로 SQLite와 Room이라는 것이 있다. Room은 2017년에 새로 나온 것이다. Room은 일종의 라이브러리라고 볼 수 있는데, SQLite의 기능을 쓸 수가 있으며, DB로 접근을 편하게 도와준다. SQLite를 쓸 경우에는 데이터에 변화가 생기면 수동으로 업데이트를 해주어야 한다. 이 과정에서 생각보다 시간이 많이 소요되며 오류가 생길 수가 있다. 또한 무의미한 boilerplate code를 많이 사용하게 된다. 이러한 단점들을 보완해서 나온게 Room이라고 볼 수 있다. 참고로 Room은 안드로이드 아키텍처의 구조 중 하나에 포함되어 있다. MVVM 아키텍처의 구성은 View-ViewModel-Model의 구조이다. 이 구조에 .. 2020. 4. 2.
Android MVVM Architecture MVVM 아키텍처란 View(뷰), ViewModel(뷰모델), Model(모델)로 이루어진 구조를 말한다. 뷰에서는 뷰를 참조하고 뷰모델에서는 모델을 참조하는 방식으로 뷰에서 모델로의 직접 참조는 불가능한 구조다. 뷰에서는 일을 시키지 않고 뷰모델의 LiveData들을 관전만 한다. LiveData를 보면서 변화하는 부분들이 있으면 바로 캐치하여 자동으로 업데이트되게끔 하는 구조이다. 각각의 역할들을 완전히 분리시킨 패턴으로 가독성과 재사용성을 높인 디자인 패턴이다. MVVM의 특징으로는 뷰에서 곧바로 DB에 접근하지 않는 다는 점이다. MVVM에서의 뷰는 그저 UI 갱신에만 충실할 뿐. 그 외적으로는 뷰모델을 참조하는 것 말고는 없다. 그리고 뷰모델에서는 모델에서 잘 정리된 데이터를 참조한다. 좀 더.. 2020. 3. 27.