Loading...
2024. 5. 28. 00:09

[Compose Study] Card, Image 2 - 상태 저장

* Image 오른쪽 위에 하트를 누를 때마다 하트이미지가 바뀌는 상태를 저장해야 한다.* 기존 kotlin에서는 상태저장 변수(boolean 등)을 만들어 저장했지만, compose에서는 상태를 기억하는 방법에는 remeber를 사용하는 방법이 있다. remeber를 사용하고 mutableState로 변수를 선언해주면 된다. (기본값: false)val isFavorite = remember { mutableStateOf(false) }* 타입을 보면 MutableState타입으로 되어있다. isFavorite안에 boolean 값이 저장되는 그 상태를 remeber가 기억해주는 형태이다.  state가 변경되면 UI가 다시 그려지게 된다. * 하트 아이콘을 눌렀을 때 value가 바..

2024. 5. 27. 22:26

[Compose Study] Card, Image

* 이번 시간엔 Card와 Image에 대해 정리할 예정이다.Card는 Cardview와 비슷하고 Image는 ImageView와 비슷하다.* Card에 RoundedCornerShape로 모서리를 둥글게 하고 elevation으로 그림자 효과를 줄 수 있다. * Image를 사용하는 방법은 여러 가지가 있는데 painter를 사용해 보았다. painterResource에 기존의 사진 경로를 넣어주고contentDescription으로 이미지 설명을 적어준다.@Composablefun Image( painter: Painter, contentDescription: String?, modifier: Modifier = Modifier, alignment: Alignment = Alig..

2024. 5. 27. 00:06

[Compose Study] Box

* compose에는 layout.xml이 없고 그냥 mainActivity에서 다 짜는 것 같다(Flutter와 유사한듯?)* 이번 시간엔 Box에 대해 간단하게 정리해보고자 한다. * Box는 기존의 layout처럼 Text등의 요소를 감싸는 박스같은 역할을 한다. * Box( ) { }에서 ( )안에 modifier, contentAlignment등이 들어갈 수 있다.* Modifier에는 background색깔 설정, fillMaxSize(화면 전체크기 차지), padding 등을 설정할 수 있고 위와 같이 .을 계속 찍어 chaining처럼 쭉 설정해주면 된다.* { } 안에는 박스 안에 들어갈 요소들을 설정할 수 있는데, 안에 또 Box같은 요소를 넣을 수 있다.* 참고로 여기선 16dp와 같..

2024. 5. 26. 23:18

[Compose Study] - 컴포즈 프로젝트

처음 compose 프로젝트를 만들면 다음과 같은 구조로 나온다.* UI.theme에 color, theme, Type(텍스트 스타일) 등이 정의되어있고 mainActivity는 다음과 같다.* 특이하게 @Composable이 붙은 함수는 소문자가 아닌 대문자로 함수명이 시작된다. onCreate안의 setContent{ } 안에 들어오는 내용이 composable한 애들이다. * Preview가 붙어있는 부분은 오른쪽 split에 화면이 표시가 된다.

2024. 3. 21. 00:03

[Android Study] 다이얼로그 - 알림 채널, 알림 객체

* 상태 바에 앱의 정보를 출력하는 것을 알림(notification)이라고 한다. - API 33 버전부터는 앱에서 알림을 띄우기 위해 사용자에게 퍼미션을 요청해야 한다. - 원래 상태 바는 시스템에서 관리하는 곳이며 앱이 직접 제어할 수 없다. 그런데 앱에서 시스템에 의뢰하면 시스템에서 관리하는 상태 바에 앱의 알림을 출력할 수 있다. 따라서 앱의 화면을 구성하거나 사용자 이벤트를 처리하는 프로그래밍과는 구조가 다르며 알림을 위해 제공하는 API를 이용해야 한다. - 알림은 NotificationManager의 notify() 함수로 발생한다. notify() 함수에는 NotificationCompat.Builder가 만들어 주는 Notification 객체를 대입하며 이 객체에는 알림 정보가 저장된..

2024. 3. 20. 00:13

[Android Study] 다이얼로그 - 소리와 진동 알림

* 소리 알림 - 문자나 카카오톡 같은 앱에서 새로운 메세지를 전달받으면 사용자 알림 효과로 짧은 소리를 이용해 알려준다. 이런 목적으로 사용하는 짧은 소리를 알림음이라고 한다. - 알림음은 카카오톡처럼 자체 녹음한 음원을 쓸 수도 있지만 안드로이드 시스템에 등록된 소리를 이용할 수도 있다. 안드로이드 시스템은 알림(notification), 알람(alarm), 벨소리(ringtone)등의 소리를 제공하며 이 소리는 RingtonManager로 얻을 수 있다. * 시스템에 등록된 소리를 이용하는 방법 val notification: Uri = RingtoneManager.getDefaultUri(RingtoneManger.TYPE_NOTIFICATION) val ringtone = RingtoneMana..

2024. 3. 19. 00:14

[Android Study] 다이얼로그 - 커스텀 다이얼로그

* 커스텀 다이얼로그는 다이얼로그에서 개발자가 원하는 형태로 창을 구성하고 싶을 때 사용한다. - LayoutInflater 클래스는 레이아웃 XML 파일을 코드에서 초기화하는 기능을 제공한다. 여기서 초기화란 XML 파일에 선언한 뷰를 코드에서 이용하고자 생성하는 작업을 의미한다. XML 파일은 텍스트 파일일 뿐이며 결국 코드에서 이용하려면 XML에서 선언한 대로 객체를 생성해서 메모리에 할당해야 한다. 이 작업을 LayoutInflater가 해준다. - activity의 화면을 구성하는 레이아웃 xml 파일이라면 layoutInflater가 아닌 setContentView() 함수를 이용한다. * layoutInflater로 레이아웃 XML 파일을 초기화하는 방법은 다음과 같다. - 우선 getSys..

2024. 3. 18. 00:04

[Android Study] 다이얼로그 - AlertDialog

* 안드로이드 다이얼로그의 기본은 알림 창으로 불리는 AlertDialog이다. 알림 창은 크게 3가지 영역으로 구분된다. - 알림 창의 생성자는 접근 제한자가 protected로 선언되어서 객체를 직접 생성할 수 없다. 그 대신 AlertDialog.Builder를 제공하므로 이 빌더를 이용해 알림 창을 만든다. - 먼저 Builder를 생성하고 빌더의 세터 함수로 알림 창의 정보를 지정한다. AlertDialog.Builder(context: Context!) - 다음은 알림 창에 아이콘과 제목, 내용을 지정하는 함수이다. setIcon 함수는 제목 영역에 아이콘을 출력하며 setTitle 함수는 제목 문자열을 출력하고 내용에 간단한 문자열을 출력할 때는 setMessage 함수를 사용한다. fun ..