일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 클래스
- 2022 플러터 안드로이드 스튜디오
- 스택 자바 코드
- 안드로이드 레트로핏 crud
- 안드로이드 유닛테스트란
- 자바 다형성
- 플러터 설치 2022
- 큐 자바 코드
- rxjava hot observable
- ar vr 차이
- android ar 개발
- ANR이란
- 서비스 vs 쓰레드
- rxjava cold observable
- 서비스 쓰레드 차이
- 안드로이드 os 구조
- 안드로이드 레트로핏 사용법
- 안드로이드 유닛 테스트
- 객체
- 안드로이드 라이선스
- Rxjava Observable
- 안드로이드 라이선스 종류
- jvm이란
- 멤버변수
- 2022 플러터 설치
- android retrofit login
- rxjava disposable
- 안드로이드 유닛 테스트 예시
- jvm 작동 원리
- 스택 큐 차이
- Today
- Total
목록2024/05 (31)
나만을 위한 블로그

알파벳으로 이뤄진 문자열 myString이 주어진다. 모든 알파벳을 대문자로 바꿔서 리턴하는 함수를 완성하라 uppercase() 호출하면 끝이다. class Solution { fun solution(myString: String): String = myString.uppercase()}

뷰모델을 초기화하는 방법은 다양하다. 이 방법들 중에서 자신의 프로젝트, 뷰모델 성격에 맞는 초기화 방법을 사용하자. ViewModelFactory, ViewModelProvider 사용 ViewModelProviders가 deprecated되서, 대신 ViewModelProvider를 사용해야 한다. 아래는 예시 코드다. val viewModelFactory = MyViewModelFactory(myRepository)val viewModel = ViewModelProvider(this, viewModelFactory).get(MyViewModel::class.java) 이 방법은 hilt를 사용하지 않는 경우, androidx.activity:activity-ktx 라이브러리를 사용하지 않는 경우에 ..

현재 안드로이드 15는 베타 단계다. 디벨로퍼에 걸린 로드맵대로라면 곧 플랫폼 안정화 단계로 이동하면서 15에 적용될 변경사항들이 확정될 것이다. 그럼 현재까지 드러난 안드로이드 15의 변경사항과 변화되는 안드로이드 생태계는 무엇이 있는지 확인한다.먼저 안드로이드 생태계의 변경사항부터 확인한다.아래 링크를 바탕으로 작성했다. https://blog.google/products/android/android-15-google-io-2024/#theft-privacy-security 10 updates coming to the Android ecosystemFrom Theft Detection Lock to casting on Rivian to Wear OS 5 updates, here’s what’s co..

알파벳으로 이뤄진 문자열 myString, pat이 주어진다. myString의 연속된 부분 문자열 중 pat이 존재하면 1, 그렇지 않으면 0을 리턴하는 함수를 완성하라. 단, 대소문자는 구분하지 않는다 대소문자는 구분하지 않기 때문에 lowercase를 써서 전부 소문자로 바꾼 다음, contains로 문자열 포함 여부를 확인해서 1 또는 0을 리턴시키면 된다. class Solution { fun solution(myString: String, pat: String): Int = if (myString.lowercase().contains(pat.lowercase())) 1 else 0}

정수가 담긴 리스트 num_list가 주어질 때, 리스트 길이가 11 이상이면 리스트에 있는 모든 원소의 합을, 10 이하면 모든 원소의 곱을 리턴하는 함수를 완성하라 sum, reduce 함수를 조건에 맞게 쓰면 간단하게 풀 수 있다. class Solution { fun solution(num_list: IntArray): Int = if (num_list.size > 10) num_list.sum() else num_list.reduce { acc, i -> acc * i }}

앞선 2개 문제들과 마찬가지로 변환 규칙이 있다. 짝수면 반으로 나누고 홀수면 1을 빼고 반으로 나눈다.이 변환을 반복해서 모든 숫자들이 1이 될 때까지 나누기 연산을 수행한 다음 최종적으로 몇 번 나눴는지를 리턴한다. class Solution { fun solution(num_list: IntArray): Int { var totalDivisions = 0 for (num in num_list) { var current = num while (current != 1) { if (current % 2 == 0) { current /= 2 } els..

변환 규칙은 1과 유사해서 만들기 어렵지 않았지만 이후 풀지 못해서 챗지피티에 물어봤다. class Solution { fun solution(arr: IntArray): Int { var current = arr.copyOf() var next: IntArray var count = 0 while (true) { next = current.map { num -> when { num >= 50 && num % 2 == 0 -> num / 2 num num * 2 + 1 else -> num ..

정수 배열 arr이 주어진다. arr의 각 원소에 대해 값이 50보다 크거나 같은 짝수면 2로 나누고 50보다 작은 홀수면 2를 곱한다. 그 결과인 정수 배열을 리턴하는 함수를 완성하라 문제 핵심은 2개다. 숫자가 50보다 크거나 같은 짝수 : 2로 나눔숫자가 50보다 작거나 작은 홀수 : 2를 곱함 이 조건에 맞게 if 또는 when을 작성하면 된다. 그 외의 경우에는 num을 리턴하면 될 것이다. class Solution { fun solution(arr: IntArray): IntArray = arr.map { num -> when { num >= 50 && num % 2 == 0 -> num / 2 num num * 2 ..
stateIn은 Flow를 StateFlow로 바꾸기 위해 사용하는 함수다. 코틀린 문서의 설명은 아래와 같다. https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/state-in.html stateInConverts a cold Flow into a hot StateFlow that is started in the given coroutine scope, sharing the most recently emitted value from a single running instance of the upstream flow with multiple downstream subscribers. Se..
코틀린으로 카카오 로그인을 구현하는 방법을 다룬 적이 있는데, 사이드 프로젝트에 카카오 로그인을 추가하면서 확인해 보니 여러가지 바뀐 점이 있어 다시 작성한다. 3년 전에 쓴 글이라 더 이상 유용하지 않아서 다시 작성하려는 것도 있다.해시키를 구하기까지의 과정은 이전 포스팅과 동일하다. https://onlyfor-me-blog.tistory.com/296 [Android] 코틀린으로 카카오 로그인 구현하기※ 이 포스팅에서 다루는 카카오 SDK는 v2 버전이다. 이번 포스팅에선 코틀린으로 카카오 로그인을 어떻게 구현하는지에 대해 포스팅하려고 한다. 주의할 것은 프로젝트에 FCM까지 붙일 거라면onlyfor-me-blog.tistory.com app gradle에 카카오 로그인 의존성을 추가해야 한다. 아..