목록전체 글 (275)
와챠의 우당탕탕 개발 기록장
Jetpack Compose 공부 목적으로 이리저리 서치하다가 발견한 포스트인데정리가 잘 되어있고 예시 코드도 너무 간단하지도 복잡하지도 않고 적당해서 번역+요약해서 몇 가지 남겨두려고 한다.원본 블로그: https://bugfender.com/blog/jetpack-compose-state-management/ 목차Jetpack Compose에서의 StateRecomposition(재구성) 과정State HoistingJetpack Compose에서 state 관리 API 사용하기remember & mutableStateOfrememberSaveablederivedStateOfproduceStatecollectAsStateState Holder와 함께 사용하기ViewModelCustom State H..
문제 설명비내림차순으로 정렬된 수열이 주어질 때, 다음 조건을 만족하는 부분 수열을 찾으려고 합니다.기존 수열에서 임의의 두 인덱스의 원소와 그 사이의 원소를 모두 포함하는 부분 수열이어야 합니다.부분 수열의 합은 k입니다.합이 k인 부분 수열이 여러 개인 경우 길이가 짧은 수열을 찾습니다.길이가 짧은 수열이 여러 개인 경우 앞쪽(시작 인덱스가 작은)에 나오는 수열을 찾습니다.수열을 나타내는 정수 배열 sequence와 부분 수열의 합을 나타내는 정수 k가 매개변수로 주어질 때, 위 조건을 만족하는 부분 수열의 시작 인덱스와 마지막 인덱스를 배열에 담아 return 하는 solution 함수를 완성해주세요. 이때 수열의 인덱스는 0부터 시작합니다. 제한사항5 ≤ sequence의 길이 ≤ 1,000,00..
문제 설명정수 n이 매개변수로 주어집니다. 다음 그림과 같이 밑변의 길이와 높이가 n인 삼각형에서 맨 위 꼭짓점부터 반시계 방향으로 달팽이 채우기를 진행한 후, 첫 행부터 마지막 행까지 모두 순서대로 합친 새로운 배열을 return 하도록 solution 함수를 완성해주세요.입출력 예nresult4[1,2,9,3,10,8,4,5,6,7]5[1,2,12,3,13,11,4,14,15,10,5,6,7,8,9]6[1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] 풀이위 사진처럼 이등변 삼각형 형태가 아닌, 직각 삼각형 형태로 살펴보면 n=4일 때 아래와 같다.12 93 10 84 5 6 7 이를 편하게 구현하기 위해서는 이차원 배열을 활용하여 아래처럼 구현할 수..
문제 설명문자열 s가 입력되었을 때 다음 규칙을 따라서 이 문자열을 여러 문자열로 분해하려고 합니다.먼저 첫 글자를 읽습니다. 이 글자를 x라고 합시다.이제 이 문자열을 왼쪽에서 오른쪽으로 읽어나가면서, x와 x가 아닌 다른 글자들이 나온 횟수를 각각 셉니다. 처음으로 두 횟수가 같아지는 순간 멈추고, 지금까지 읽은 문자열을 분리합니다.s에서 분리한 문자열을 빼고 남은 부분에 대해서 이 과정을 반복합니다. 남은 부분이 없다면 종료합니다.만약 두 횟수가 다른 상태에서 더 이상 읽을 글자가 없다면, 역시 지금까지 읽은 문자열을 분리하고, 종료합니다.문자열 s가 매개변수로 주어질 때, 위 과정과 같이 문자열들로 분해하고, 분해한 문자열의 개수를 return 하는 함수 solution을 완성하세요. 입출력 예s..

아래 라이브러리를 사용해 사용자 위치를 받아오고 + 지역명까지 받아오려고 한다.com.google.android.gms:play-services-location받아온 위치 정보로는 기상청 날씨 api에 전달해 해당 지역의 날씨를 받아오는 데에 사용되고,지역명은 사진과 같이 하단에 적어주려고 한다!(참고로 위치 관련 권한 받는 내용은 이전 포스트에 있으니 생략함)관련 정보나 버전 정보는 아래 참고! 위치 인식 앱 빌드 | Sensors and location | Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 개발 리소스 추가 리소스 앱의 위치 정보에 관한 액세d..

사용자의 위치를 가져와야 하는 일이 생겨서 라이브러리를 사용해서 권한을 묻는 기능을 만들어보려고 한다.공식 문서를 먼저 확인했다: https://google.github.io/accompanist/permissions/ 만들려는 것은 다음과 같다.- 필요한 권한과 권한이 필요한 이유를 보여주는 화면- "권한 설정하기" 버튼을 눌러 관련 권한(나의 경우 위치) 설정 다이얼로그 띄우기- 권한 허용 시 다음 화면으로 이동- 권한 거절 시 직접 권한 설정 화면으로 이동하도록 유도1. 라이브러리 설치toml에 버전 설정해준다. 최신 버전은 위에 있는 공식 문서 링크 확인!![versions]//...permission = "0.37.3"[libraries]//...accompanist-permissions = {..

1에서 Hilt와 retrofit2의 초기 설정을 했다.그리고 request를 만들고, response와 이 정보를 토대로 ui에 사용할 데이터인 HomeWeather를 만들었다.이제 retrofit2를 사용해 실제로 api를 연결할 차례다! 1. HomeService 생성2. providersHomeService 생성3. HomeDataSource 생성4. HomeRepository 생성5. HomeRepositoryImpl 생성6. HomeViewModel 생성7. UI에 데이터 넣기1. HomeService 생성retrofit2에서 baseUrl로 설정해준 것 외에도 필요한 파라미터들을 전달하기 위한 서비스 인터페이스를 만들었다.이 정보로 GET 요청을 해서 HomeResponse를 받으려고 한다...

Jetpack Compose로 네트워크 연결을 해보려고 한다.아무래도 안드가 제공해주는 강의에선 실제 네트워크 연결이 아니다보니까 기술적 성장에 한계가 있는 거 같아 직접 연결해보기로 했다.그동안 배운 개념들 총 집합!Hilt 이용해서 의존성 주입하고, (프로젝트가 크진 않지만 확장 가능성 고려해서) MVVM 패턴으로 플젝 구성해보려고 한다.근데 넘 길어질 거 같아서 2개로 나눠서 올릴 듯하다. 0. 준비 - 결과 화면 - 플젝 초기 설정 - api 명세 설명1. Hilt, Retrofit2 라이브러리 추가2. Hilt 초기 설정3. 네트워크 연결을 위한 Retrofit2 객체 생성4. UI에서 사용할 데이터 정리(데이터 가공)5. request, response 생성0. 준비- 결과 화면왼쪽 UI 중에..