일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 안드로이드
- Kotiln
- 이펙티브 코틀린
- 개발자
- android compose
- 일상
- android
- swift map
- 안드로이드 다이얼로그
- 프로그래머스
- 안드로이드 개발자
- Java
- MVVM
- Go언어
- 이펙티브코틀린
- RxJava
- RxKotiln
- 코루틴
- Dev6
- Firebase
- 알고리즘
- 코틀린
- Flutter
- Swift 문법
- 잡담
- 코딩테스트
- Rxjava 안드로이드
- 안드로이드 컴포즈
- react
- 반응형 프로그래밍
- Today
- Total
목록Android (85)
최데브는 오늘도 프로그래밍을 한다.
안드로이드 컴포즈에는 SwipeToDismiss 라는게 이미 만들어져 있다. 레이아웃을 옆으로 밀면 밀어낸 반대 방향에 버튼이 생기는 레이아웃 같은걸 만들때 쓴다. 하지만? 나는 또 다른 디자인으로 만들고 싶었다. 찾아보면 이걸 사용해서도 방법은 있겠지만 그냥 내가 생각나는대로 만드는게 빠를거 같아서 만들어봤다. 혹시나 구글이 준비해준 SwipeToDismiss 가 맘에 안드는 사람들에게 귀찮음을 덜어줄 수 있었으면 한다. 만드려는 레이아웃은 이렇다. 순서는 아래와 같다. 1. 스와이프 했음을 인지하는 방법 2. 스와이프한 값을 이용해서 컴포넌트를 스와이프 한 방향으로 옮기는 방법 3. 삭제 버튼을 나오게 하는 방법 @OptIn(ExperimentalMaterial3Api::class) @Composab..
안드로이드 컴포즈에서 제공하는 AlertDialog 를 사용하면 간단하게 뚝딱 dialog 를 만들 수 있지만 정해진 틀에 맞춰서 사용해야하는 문제가 있다. 나는 역시나 고집을 부려서 커스텀을 하고 싶었는데 어떻게 만들었는지 간단히 정리하려한다. 먼저 Dialog의 기본 형태를 잡아보자. 아래 코드를 살펴보자. @Composable fun DialogComponent( onDismissRequest: () -> Unit, visible: Boolean, height : Dp, content: @Composable () -> Unit ) { if (visible) { //커스텀하려면 AlertDialog 말고 Dialog를 써준다. Dialog( onDismissRequest = { onDismissReq..
영상 플랫폼에서 일을 하다보니 m3u8 을 접할 기회가 많아졌다. 사실 우리도 모르게 많은 영상 플랫폼에서 m3u8 을 접하는데 유튜브,아프리카tv, 트위치 등 보통 많은 서비스들이 이를 채택하고 있다. 그 이유는 mp4로 재생할 경우에는 파일을 전부 다운로드 받아야 재생이 가능해서 4분짜리 영상을 앞부분 3초만 볼건데도 다운을 기다려야하고 불필요한 데이터도 낭비하게 한다. 그것을 m3u8 파일은 n초 간격으로 파일을 잘라서 보관하기 때문에 모두 다운받지 않고 필요한 만큼만 다운로드 받아서 볼 수 있게 해준다. 그러나 m3u8 파일을 재생하는 플레이어가 없다면 m3u8 파일은 일반적인 기기에서 실행하기 어렵다. 나같은 경우는 영상의 썸네일을 몇초 간격으로 추출할 필요가 있었는데 m3u8 파일은 특정 라이..
프로젝트를 하다보면 서버를 거칠 필요없이 앱 내부에서만 사용하는 데이터를 관리하고 싶을때가 있다. txt 파일로 앱에 저장하거나 SharedPreferences 를 사용하거나 DataStore 를 사용하거나 여러 방법이 있겠지만 간단하게 저장만을 위한 것이 아닌 많은 데이터들을 좀 더 사용하기 편한 방식으로, 또는 데이터간의 관계를 가지기 위해서는 Room 을 사용해야한다. Sql 에 대한 지식이 있는 사람이라면 간단한 쿼리를 적는건 어렵지 않을 수 있겠지만 나의 경우엔 정말 간단한 쿼리만 적어서 사용했고 1:N 관계나 외래키 등록같은건 Room 에서 다룰일이 없었는데 이번에 사용할 기회가 생겨서 적어보려 한다. Entity(table) 간의 관계 정의하기 room의 관계형 쿼리는 현재 2가지 방식을 통..
아마 라이브러리 배포를 처음 해봐서 바보 같은 실수를 한거 같다. aar 로 라이브러리 배포가 됐는데 데모앱에서는 잘됐는데 왜 실제 프로젝트에서는 안되는거야? 하면서 NoClassDefFoundError 를 만났는데 이는 aar 은 라이브러리에 작성된 리소스는 불러오지만 라이브러리에 종속되어있는 다른 라이브러리는 불러오지 않기 때문. 라이브러리 내부에는 적용되어있지만 실 프로젝트에 없는 라이브러리를 적용시켜주었더니 해결. 쓰고보니 뭔가.. 예전에 이런 글을 봤던거 같기도 하네
1. Android의 Kotlin 코루틴은 무엇이며 기존 스레딩과 어떻게 다릅니까? 안드로이드에서 Kotlin 코루틴은 스레드와 다릅니다. 코루틴은 사용자 공간에서 구현되며 적은 수의 기본 스레드에 다중화됩니다. 그러므로 스레드를 만들고 파괴하는 오버헤드 없이 매우 가벼운 방식으로 코루틴을 일시 중지하고 다시 시작할 수 있습니다. Kotlin 에서 코루틴은 경량의 비차단 실행 스레드입니다. 즉, 스레드와 달리 코루틴은 사용자 공간에서 구현되며, 매우 가벼운 방식으로 일시 중지하고 다시 시작할 수 있습니다. 이를 통해 오버헤드 없이 많은 수의 코루틴을 실행할 수 있습니다. 2. 코루틴 맥락에서 "suspending functions"의 개념을 설명할 수 있습니까? 코루틴 맥락에서 suspending fun..