Android

    [Compose] Navigation

    [Compose] Navigation

    프로젝트를 진행하면서 Navigation기능을 많이 사용하였다. 프래그먼트간의 이동을 더욱 편리하게하고, safe Args특성을 사용하여 데이터 전달을 더욱 안전하게 할 수 있기 때문이다. 컴포즈에서도 네비게이션을 사용하여 뷰를 옮길 수 있으며 데이터도 전달할 수 있다. 두 번째 화면의 이동은 아무런 조건 없이 가능하고, 세 번째 화면의 이동은 해당 textField에서 입력한 값이 있어야만 가능하고, 이동했을 때의 세 번째 화면에서는 해당 textfield에 있던 값을 띄워보자! gradle파일에 navigation compose 라이브러리를 작성하자. implementation 'androidx.navigation:navigation-compose:2.4.0-alpha10' setContent { v..

    [Compose] TextField, Scaffold, SnackBar

    [Compose] TextField, Scaffold, SnackBar

    이 글에서는 TextField를 만들어, 현재 입력하고 있는 값에서 버튼을 누르면 입력했던 값이 SnackBar형태로 나오는 간단한 프로그램을 짜보자. Scaffold( scaffoldState = scaffoldState //스낵바를 활용하기위해 ) { Column( modifier = Modifier.fillMaxSize(), verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally, ){ TextField( // value = textValue.value, //비어있으면 입력이 안됨(값이 변하지 않기 때문에) // onValueChange = { // textValue.value = it /..

    [JETPACK개론] Navigation

    [JETPACK개론] Navigation

    여태까지 진행했던 프로젝트에서 꼭 빠짐없이 Navigation을 도입하였다. 왜냐하면 프래그먼트간의 이동을 쉽게할 수 있고, 데이터전달을 기존의 방식보다 안전하게 할 수 있기 때문이다. 전에 트러버 프로젝트에서 Bottom Navigation과 Jetpack Navigation을 연결하면서 쓴 글이 있다. [Android] JetPack Navigation으로 Bottom Navigation 설정하기 안드로이드를 공부하면서 간단한 화면 전환은 intent로 구현했었다. 하지만 레이아웃이 복잡해질수록 코드가 길어지며 가독성이 떨어지는 문제점을 확인할 수 있었다. 이 경우를 해결하기 위해 J ssongcode.tistory.com 기존에 썼던 글이 있지만, 이번에 한번 더 정리하면서 Navigation을 왜..

    [JETPACK개론] WorkManager(5) + 주기적작업, 고유작업

    [JETPACK개론] WorkManager(5) + 주기적작업, 고유작업

    주기적작업 경우에 따라 앱에서 특정 작업을 주기적으로 실행해야 할 수 있다. 예를 들어 주기적으로 데이터를 백업하거나 최신 컨텐츠를 앱에 다운로드 하거나 로그를 서버에 업로드해야 할 수 있다. 이 때 주기적으로 실행되는 WorkManager를 만들 수 있다. class WorkManager1(context : Context, workerParameters: WorkerParameters) : Worker(context, workerParameters){ override fun doWork(): Result { Log.d("WorkManager1", "doWork") val format = SimpleDateFormat("hh:mm:ss") val currentTime = format.format(Date..

    [Compose] Image, Card, State

    [Compose] Image, Card, State

    Compose 전 글에서 포스팅 했던 내용중에 Box태그가 있었다. 이번 글에서는 위와 같은 뷰를 카드 뷰 안에 Box태그를 두개 넣어 image와 하트 아이콘을 넣어보자! setContent { var isFavorite by rememberSaveable{ //remember가 기억을 해주는 형태 mutableStateOf(false) } //이미지 카드를 여러 개 사용하고, 재사용할 수 있음 ImageCard( modifier = Modifier .fillMaxWidth(0.5f) .padding(16.dp), isFavorite = isFavorite ){ favorite -> isFavorite = favorite //값을 갱신함 } } @Composable fun ImageCard( modif..