목록코딩 일기장/Android(Kotlin) (108)
와챠의 우당탕탕 코딩 일기장
문제 설명정수 n을 기준으로 n과 가까운 수부터 정렬하려고 합니다. 이때 n으로부터의 거리가 같다면 더 큰 수를 앞에 오도록 배치합니다. 정수가 담긴 배열 numlist와 정수 n이 주어질 때 numlist의 원소를 n으로부터 가까운 순서대로 정렬한 배열을 return하도록 solution 함수를 완성해주세요. 입출력 예numlistnresult[1, 2, 3, 4, 5, 6]4[4, 5, 3, 6, 2, 1][10000,20,36,47,40,6,10,7000]30[36, 40, 20, 47, 10, 6, 7000, 10000] 풀이sortedWith 함수를 사용해 요소의 정렬 기준을 n과 가까운 것으로 하도록 설정했다. import kotlin.math.absclass Solution { fun..

아래와 같은 앱을 만들어보면서 State를 더 깊이 배워보려 한다.두 가지 기능이 있는 앱이다.water count: "Add one" 버튼을 눌러 하루동안 물 얼마나 마셨는지 기록todo list(wellness list): 고정된 wellness 목록. 체크버튼, 삭제 버튼이 있음 Composable의 생명 주기Recompositionremember / rememberSaveableStateful / StatelessViewModelWater CounterWellnessTaskWellnessItemWellnessListWellnessViewModelWellnessScreen Jetpack Compose UI에서 상태 및 이벤트를 고려하는 방법Compose에서 상태를 사용하여 화면에 표시할 요소를 결..

문제 설명다음 그림과 같이 지뢰가 있는 지역과 지뢰에 인접한 위, 아래, 좌, 우 대각선 칸을 모두 위험지역으로 분류합니다.지뢰는 2차원 배열 board에 1로 표시되어 있고 board에는 지뢰가 매설 된 지역 1과, 지뢰가 없는 지역 0만 존재합니다.지뢰가 매설된 지역의 지도 board가 매개변수로 주어질 때, 안전한 지역의 칸 수를 return하도록 solution 함수를 완성해주세요. 예시boardresult[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 0, 0]]16[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 1, 1, 0], [0, 0, 0,..

1탄에서는 Surfaces, Rows, Columns를 사용해 레이아웃을 구성하고,Modifier의 padding, fillMaxWidth, size 등으로 레이아웃을 꾸며보았다.이번엔 아래와 같은 좀 더 복잡한 레이아웃을 만들어보려고 한다.이 링크에서 실습할 수 있다~위에서부터 위젯을 작게 나누어서 개발해보자!SearchBarAlign Your Body: elementFavorite Collections: elementAlign Your Body: listFavorite Collections: listAlign Your Body & Favorite CollectionsNavigationBarDone!window size에 맞게 화면 재구성1. SearchBar@Composablefun SearchBar..

JetPack Compose 공부를 해보려고 한다.(드디어~!)Android Developer가 제공해주는 JetPack Compose Basics 1 강의를 따라서 공부해봤다. Compose의 정의Modifier의 정의컴포저블 함수의 state를 관리하는 방법성능 기준에 맞는 목록을 만드는 방법애니메이션을 추가하는 방법앱 스타일과 테마를 지정하는 방법기타: 참고하면 좋을 사이트들아래는 목차에 따른 강의 내용을 정리해본 것이다.1. Compose의 정의@Composable 어노테이션을 fun 앞에 붙임으로써 컴포저블 함수로 만들 수 있다.@Composable: 지속적으로 UI를 업데이트하고 유지관리하기 위해 함수에 특수 지원을 추가하도록 Compose에 알려주는 역할컴포저블 함수 내에서 다른 컴포저블 ..
Android Developer Newsletter를 보다가 나도 잘 몰랐던 기능인데 알아두면 좋을 거 같아서 올만에 블로그를 펴본다! sealed interfacevalue classtakeIf & takeUnless 1. sealed interface공식문서 이건 sealed class를 먼저 알아야 한다,..sealed class:enum class와 비슷하게 타입을 제한적으로 사용할 수 있다. (그래서 when 구절에서 else문을 사용하지 않아도 됨!!)enum class와의 차이점: enum class의 인스턴스는 하나의 인스턴스로 한정되어 있지만, sealed class는 여러 인스턴스를 가질 수 있다.예시를 보자.enum class는 다음과 같이 생성자가 다른 인스턴스를 생성할 수 없고, ..

준비 0. 구글 API콘솔 프로젝트 생성 - OAuth 2.0 클라이언트 ID를 Android 용으로 생성 개발 1. 의존성 추가 - 파이어베이스랑 구글 프로젝트 생성하다보면 의존성 추가하라고 안내해주는 대로 추가하다보면 이렇게 댑니다아 implementation 'com.google.firebase:firebase-auth-ktx:21.0.3' implementation platform('com.google.firebase:firebase-bom:31.5.0') implementation 'com.google.firebase:firebase-analytics-ktx' implementation 'com.google.android.gms:play-services-auth:20.5.0' 2. 인터넷 권한 ..

Kakao address api를 사용해 위 화면을 만들어 볼 것입니다. 위 화면의 기능들을 소개하면 아래와 같습니다. 1. 검색한 키워드가 들어가는 주소 보이기 2. 상세1, 상세2, 상세3 주소까지 보이기(서울, 영등포구, 양평동) 3. RecyclerView의 item(주소)을 클릭하면 액티비티가 그 주소값을 반환하며 finish 먼저 API에 대해 간단히 알아봅시다. 이 링크는 주소 검색하기 Kakao 공식 문서입니다. request는 아래와 같습니다. 1. GET 사용 2. base url은 https://dapi.kakao.com/ 3. 주소 검색 시 추가 url은 v2/local/search/address.json 4. parameta들은 아래와 같음 Name Type Description ..