안드로이드 앱 개발 공부/jetpack Compose11 도통 모르겠어서 기록하면서 공부하는 Jetpack Compose_ glance 코드 샘플 분석 후 적용하기까지 (2) 이번에는 https://github.com/android/user-interface-samples/tree/main/AppWidget/app/src/main/java/com/example/android/appwidget/glance/image 여기 코드를 분석해 볼 것이다! 이렇게 이미지를 사이즈에 따라 갱신하도록 구현한 것이다. 고정되지 않은 데이터를 보여주는 것이 아니기 때문에 내가 원하는 방법을 구현하는 것에 감이 올 수 도 있을 것 같아서 분석해 본다. 이거는 두 개의 파일이 있는데 ImageGlanceWidget.kt는 위젯 ui 전방에 관련된 코드이고, ImageWorker.kt는 이미지를 가져오는 코드로 추정된다. ImageGlanceWidget.kt에는 3덩어리로 이루어져 있다. 1. cl.. 안드로이드 앱 개발 공부/jetpack Compose 2023. 3. 21. 도통 모르겠어서 기록하면서 공부하는 Jetpack Compose_ glance 코드 샘플 분석 후 적용하기까지 (1) 투두, 메모, 디데이 기능을 하나의 앱 안에서 모두 사용할 수 있는 간단한 앱을 만드는 데 1주일이 걸렸다. compose의 매력을 즐기면서 간단하고 빠르게 구현할 수 있어서 즐거웠는데... 가장 주요 목적이었던 위젯 만드는 부분에서 완전히 꽉 막히고 말았다. 이왕이면 compose로 만들고 싶어서 시작한 것이었는데, 자료도 많지 않았고 있어도 단순히 정말 위젯을 만들기만 하는 코드들이었다. 그래서 그냥 자료 많은 방법으로 갈까도 하다가 이왕 시작한 거 어떻게 해서든지 끝까지 해내보겠다는 마음으로 공부를 시작해 본다. 아래 url은 공식문서의 glance파트에 있는 코드 샘플 깃허브이다. https://github.com/android/user-interface-samples/tree/main/AppWi.. 안드로이드 앱 개발 공부/jetpack Compose 2023. 3. 20. [jetpack compose] 제트팩 컴포즈로 탭 만들기 유튜브에서 한 외국인의 강의를 듣고 만들었다. 에스파냐어를 사용해서 무슨 말인지는 못 알아 들었지만.. 직접 공부하면서 코드를 분석해서 만들어봤땅. 1. 메인 액티비티 : MainActivity.kt Tabs_principle함수는 탭을 어떻게 구성할지를 작성한 코드이다. 호출해서 적용한다. class MainActivity : ComponentActivity() { @SuppressLint("ResourceAsColor") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { StickyMemoryTheme { Surface { Tabs_principle() } } } } } .. 안드로이드 앱 개발 공부/jetpack Compose 2023. 3. 7. JetPack Compose_Scaffold, TextField, Button, 구조분해, SnackBar, 코루틴 스코프 setContent { Column( modifier= Modifier.fillMaxSize(), verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally ){ TextField(value = "", onValueChange ={} ) Button(onClick = { }) { Text("Click!") } } } TextField -> 값 지정 value ="" : 기본적으로 비어있게 처리 onValueChange={} : 값이 변했을 때의 함수 작성 부분 verticalArrangement = Arrangement.Center -> 수직중앙정렬 horizontalAlignment = Align.. 안드로이드 앱 개발 공부/jetpack Compose 2023. 1. 9. JetPack Compose_Image, Card, 상태 card 안에 box 를 넣어주고 그 안에 이미지를 추가하려 한다. setContent { ImageCard() } @Composable fun ImageCard(){ Card( modifier= Modifier .fillMaxWidth(0.5f) //fraction : 비율 .padding(16.dp), shape = RoundedCornerShape(8.dp), //모서리 둥글게 elevation = 5.dp ){ Box ( modifier= Modifier.height(100.dp) ){ Image( painter = painterResource(id = R.drawable.emergency), contentDescription = "poster", //필수 contentScale = Content.. 안드로이드 앱 개발 공부/jetpack Compose 2023. 1. 4. JetPack Compose_ 리스트, LazyColumn setContent { Column( modifier = Modifier.background(color = Color.LightGray) ) { for(i in 1..50 ){ Text("글씨 $i") } } } 위와 같이 작성을 하게 되면 아래처럼 일정 부분은 짤린 채로 보여지게 되고 그 범위는 회색 부분에 해당한다. setContent { val scrollState = rememberScrollState() Column( modifier = Modifier .background(color = Color.LightGray) .fillMaxWidth() .verticalScroll(scrollState) ) { for(i in 1..50 ){ Text("글씨 $i") } } } vertivalScrol.. 안드로이드 앱 개발 공부/jetpack Compose 2023. 1. 4. JetPack Compose_ Box -겹치는게 허용되는 class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { //컴포저블만 들어올 수 있는 영역 StudyComposeTheme { Surface(color = MaterialTheme.colors.background) { // Greeting("Android") Box(){ Text("Hello") } } } } } } 1. Box로 감싸기만 하면 아무런 변화가 없다. 2.Box에 modifier를 추가하면 ? Box(modifier = Modifier.background(color=Col.. 안드로이드 앱 개발 공부/jetpack Compose 2022. 12. 22. JetPack Compose_ 컴포저블, 프리뷰 간단히 setContent { //컴포저블만 들어올 수 있는 영역 //Composable이 없으면 일반함수로 사용됨 @Composable fun Greeting(name: String){ Text(text = "Hello $name") } @Preview(showBackground = true) @Composable fun DefaultPreview(){ StudyComposeTheme{ Greeting("안드로이드") } } @Preview(showBackground = true) @Composable fun DefaultPreview2(){ StudyComposeTheme{ Greeting("안드로이드2") } } preview 두개 만들면 두개의 프리뷰를 볼 수 있다. 안드로이드 앱 개발 공부/jetpack Compose 2022. 12. 22. JetPack Compose_ Column, Row, Text https://www.youtube.com/playlist?list=PLxTmPHxRH3VV8lJq8WSlBAhmV52O2Lu7n Jetpack Compose www.youtube.com class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { StudyComposeTheme { // A surface container using the 'background' color from the theme Surface(color = MaterialTheme.colors.background) { Text("Hello.. 안드로이드 앱 개발 공부/jetpack Compose 2022. 12. 21. The binary version of its metadata is 1.7.1, expected version is 1.5.1. 새로운 문서 생성하기만 했는데 오류 발생함. .gradle/caches/transforms-3/0ed4294fb1d39638f4e19bde68964cda/transformed/jetified-activity-ktx-1.6.1-api.jar!/META-INF/activity-ktx_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.7.1, expected version is 1.5.1. 모듈이 사용할 수 없는 코틀린 버전으로 컴파일 되었다는데, 뭘 수정해야할지 감이 안온다. 찾아보니 ext.kotlin_version = "1.7.1" cl.. 안드로이드 앱 개발 공부/jetpack Compose 2022. 12. 21. 컴포즈 UI https://foso.github.io/Jetpack-Compose-Playground/ Overview - Jetpack Compose Playground 🤔 Documentation issue? Report or edit Jetpack Compose Playground Introduction This is a community-driven collection of Jetpack Compose documentation/examples/tutorials and demos. Show some and star the repo to support the project What is Jetpack Compose foso.github.io @Composable : 컴포즈 ui뷰를 반환 @Preview : 미리보.. 안드로이드 앱 개발 공부/jetpack Compose 2022. 12. 21. 이전 1 다음