adb shell dumpsys deviceidle force-idle adb shell dumpsys deviceidle force-idle: 즉시 Doze 모드로 진입adb shell dumpsys deviceidle unforce: Doze 모드 강제 해제adb shell dumpsys deviceidle step: Doze 모드의 다음 단계로 진행 ACTIVE: 일반적인 사용 상태IDLE_PENDING: Doze 모드 진입을 준비하는 상태SENSING: 센서를 통해 기기의 움직임을 감지하는 상태LOCATING: 위치 서비스를 확인하는 상태IDLE: Doze 모드 진입 상태IDLE_MAINTENANCE: Doze 모드에서 주기적으로 깨어나는 상태
fold 구현public inline fun Iterable.fold( initial: R, operation: (acc: R, T) -> R): R 초기값에서 시작해서, 컬랙션 각 요소를 차례로 처리하면서 누적된 결과 반환 예1 > 숫자 합val numbers = listOf(1, 2, 3, 4)val sum = numbers.fold(0) { acc, num -> acc + num }println(sum) // 10 예2> 문자열 연결 val words = listOf("a", "b", "c")val result = words.fold("Start: ") { acc, s -> acc + s }println(result) // Start: abc 예3> 리스트 역순으로 만들기(하지만, ..
union두 Iterable 을 합쳐서 중복 없는 set 생성 val a = listOf(1, 2, 3)val b = listOf(3, 4, 5)val result = a union bprintln(result) // [1, 2, 3, 4, 5] allhof (고차함수) parameter 조건 판단 (단, 비어있는 배열은 무조건 true 임)Iterable 내의 모든 요소가 조건을 만족하면 true, 하나라도 만족하지 않으면 false * 모든 숫자가 양수인지 판단val numbers = listOf(1, 2, 3, 4, 5)val result = numbers.all { it > 0 }println(result) // true val numbers = listOf(1, -2, 3)val resul..
distinctIterable 의 중복된 값 제거 후 list 반환 val list = listOf(1, 2, 2, 3, 3, 3, 4)val distinctList = list.distinct()println(distinctList) // 출력: [1, 2, 3, 4] Iterable 이 custom data class 인 경우 data class User(val name: String)val users = listOf( User("Alice"), User("Bob"), User("Alice"))val result = users.distinct()println(result)// 출력: [User(name=Alice), User(name=Bob)]- 해당 클래스의 hashCode, e..
Component화면을 구성하는 기본 단위안드로이드로 따지면, @Composable 과 유사하다고 보여짐 import React from "react";function Greeting() { return 안녕하세요!;}export default Greeting;위와 같이 Greeting 이라는 component 를 만들었다면, 다른곳에서 재사용 할 수 있음. import Greeting from "./Greeting";function App() { return ( );}export default App; 이 부분은 android 와 매우 흡사하다.(아마도 안드로이드가 웹을 모방한 것 같다) Props 부모 > 자식 방향으로 어떤 데이터를 전달해야 할 때 사용되는 proper..

최근 담당한 앱(A)과 유사한 버전의 또 다른 앱(B)를 출시하게 되었다. 두 앱은 기능적으로는 거의 유사하지만, 그렇다고 또 완전히 스킨만 다른 같은 앱은 아니었다. 아이콘, 스플래시등만 다른 스킨의 앱이었다면 productFlavor 로 관리 했겠지만, A, B앱 둘다 서로 유사하다가도 언제 어느쪽으로 코드가 갈라질지 모르는 상황이었다. 먼저, A앱을 출시한 상태에서 B앱을 개발할때 아래와 같이 관리를 했었다. 1. 두개의 repository 로 각각 관리이 관리 방식은 가장 명확했지만, 관리에 어려움을 겪었다. 예를들어 A.MainActivity 가 변경된다면, B.MainActivity 도 똑같이 변경해줘야 했고, 변경점이 작다면 큰 문제없이 처리할 수 있었지만 대규모 변경에서는 휴먼 에러가..
* custom view /** * 특정 영역 블러처리 * * 부모 뷰의 특정 영역을 캡처후 블러 적용 */class BlurSurfaceView: View { // 캡처된 화면을 그리기 위한 Canvas 객체 private var canvas: Canvas? = null // 블러 처리를 적용할 Bitmap 객체 private lateinit var bitmap: Bitmap // 이 뷰의 부모 뷰 private lateinit var parent: ViewGroup private var renderScript: RenderScript? = null private lateinit var blurScript: ScriptIntrinsicBlur privat..
코루틴 job cancel 은 취소 요청. job.cancel() 이후에 job.isCancelled = true 로 보장받으려면, cancelAndJoin() 을 사용해야함. suspend fun 이기 때문에 coroutine 안에서 사용할 것 /** * Cancels the job and suspends the invoking coroutine until the cancelled job is complete. * * This suspending function is cancellable and **always** checks for a cancellation of the invoking coroutine's Job. * If the [Job] of the invoking coroutine is c..
Compose mvi 패턴중 가장 많이 쓰이는 두가지 flow 1. StateFlow - 구독자가 구독하기 전까지는 emit 해도 이전 값들은 버려지고 최신상태 하나만 가지고 있음.- 구독자가 구독 하는 순간 현재 가지고 있는 최신 값을 방출. (ui 상태관리 처리에 적합)2. SharedFlow- 구독자가 구독 하건말건 내멋대로 방출- 구독자가 구독한 이후 시점부터 방출되는 데이터를 받을 수 있음 (event 처리에 적함)
- Total
- Today
- Yesterday
- Phaser
- IOS
- php
- CentOS
- 뉴스룸
- 안드로이드
- Node
- BBC 가쉽
- 서버
- Asterisk
- 노드
- Android
- GIT
- Swift
- linux
- 점유율
- git hub
- 깃헙
- 리눅스
- Kotlin
- 앵커브리핑
- C언어
- xcode
- mysql
- C
- 손석희
- nodejs
- node.js
- 스위프트
- 배열
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |