일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Dev6
- 알고리즘
- Java
- 이펙티브 코틀린
- 안드로이드 개발자
- 코딩테스트
- Swift 문법
- RxJava
- Firebase
- 안드로이드 컴포즈
- swift map
- Rxjava 안드로이드
- RxKotiln
- 코틀린
- Go언어
- android compose
- react
- 이펙티브코틀린
- android
- Flutter
- MVVM
- 안드로이드 다이얼로그
- 개발자
- Kotiln
- 안드로이드
- 코루틴
- 반응형 프로그래밍
- 프로그래머스
- 일상
- 잡담
- Today
- Total
목록분류 전체보기 (180)
최데브는 오늘도 프로그래밍을 한다.
1. Android의 Kotlin 코루틴은 무엇이며 기존 스레딩과 어떻게 다릅니까? 안드로이드에서 Kotlin 코루틴은 스레드와 다릅니다. 코루틴은 사용자 공간에서 구현되며 적은 수의 기본 스레드에 다중화됩니다. 그러므로 스레드를 만들고 파괴하는 오버헤드 없이 매우 가벼운 방식으로 코루틴을 일시 중지하고 다시 시작할 수 있습니다. Kotlin 에서 코루틴은 경량의 비차단 실행 스레드입니다. 즉, 스레드와 달리 코루틴은 사용자 공간에서 구현되며, 매우 가벼운 방식으로 일시 중지하고 다시 시작할 수 있습니다. 이를 통해 오버헤드 없이 많은 수의 코루틴을 실행할 수 있습니다. 2. 코루틴 맥락에서 "suspending functions"의 개념을 설명할 수 있습니까? 코루틴 맥락에서 suspending fun..
보통 sealed class 를 이용해서 각 이벤트마다 따로 묶어서 기능의 성격에 맞게 구분하는데 한 액티비티에 프래그먼트가 3개가 들어있는 화면이 있다고 가정하자 그리고 액티비티의 viewModel 을 모두가 공유하고 있는 상황일때 하나의 event flow 만을 이용해서 처리하면 각 프래그먼트에서 같은 flow 를 콜렉트 하는 상황이 생긴다. 이러면 다른 이벤트를 처리하기전 기존의 flow 를 해제해주지 않으면 한 곳에서 진행중인 collect 가 다른 프래그먼트로 가야할 데이터를 계속 가져가서 원하는 화면에서 원하는대로 동작하지 않는 상황이 생긴다. 그래서 내린 결론은 event flow 는 한 액티비티나 한 프래그먼트에서 즉, View 를 기준으로 같이 쓰이는 애들끼리 묶어서 따로 만들어주는게 관..
휴일이지만 일 때문에 어쩌다보니 일 아닌 일을 하고 있는데 시간도 많이 남고해서 미뤄놨던 테스트 코드나 적어볼까 하고 뒤적뒤적 하는중 코틀린용 mock 테스트 라이브러리 mockK를 발견하고 테스트 코드를 끄적여봤다. 기존에 자바 진영에서 많이 쓰던 mockito 가 대표적인 mock 라이브러리지만 mockK도 코틀린에 좀 더 적합한 방식을 제공하는것뿐 전체적인 매커니즘은 크게 다르지 않았다. 아 참, 이 글을 읽으러 누추한 블로그까지 찾아오셨다면 mock 에 대해서 알고 있는 분일거라 생각하지만 mock 은 모의객체를 의미한다. 풀어서 말하면 실제로 내부 코드들이 전부 작성되어 작동하는게 아닌 껍데기뿐인 객체라는 말이다. 이런건 왜 필요할까? 귀찮고 불편해서다. 테스트 코드를 작성하다보면 안드로이드의 ..
컴포즈를 사용하면 기존 Lifecycle 을 이용할때랑 같은 방식으로 작동하지가 않는다. 조금 다른 방식을 사용해야하는데 컴포즈에서 말하는 부수효과에 대한 이해가 필요하다. https://developer.android.com/jetpack/compose/side-effects?hl=ko Compose의 부수 효과 | Jetpack Compose | Android Developers Compose의 부수 효과 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 부수 효과는 구성 가능한 함수의 범위 밖에서 발생하는 앱 상태에 관한 변경사항입니다. developer.android.com 위 링크에 DisposableEffect 에 대해 예시를 들때 아래 코드와 비슷한 예제가 나온다..
예전에 작성된 코드를 다시 유지보수하는 작업이 필요했다. 이제는 마켓에 앱을 올리려면 targetsdk 가 31 이상이 되도록 강제되는데 이때 버전을 올리면서 블루투스 권한부여에 문제가 생겼고 라는 퍼미션을 추가하여 해결했다. 매니페스트 파일에 위 권한들을 추가해주고 블루투스 권한을 요청하는 시점에서 val permissionList = mutableListOf() for (permission in permissions) { permissionList.add(permission) } ActivityCompat.requestPermissions(context as Activity, permissionList.toTypedArray(), 200) 위 코드처럼 요청해줬다. 코드 일부만 가져와서 적은거라 제대로..
pragma solidity >=0.8.2 bool) Voted; //계약자의 주소를 특정해서 bool 로 투표했는지 안했는지를 체크하는 mapping //Evnet (브로드 캐스트) event AddCandidator(string name); event UpVote(string candidator, uint upVote); event FinshVote(bool live); event Voting(address owner); //modifier 지정자 컨트렉트 사람지정 modifier onlyOwner{ // 컨트랙트가 생성될때 constructor 서 알아오는 //컨트랙트 생성자의 주소인 owner 변수와 일치하는지 체크하는 modifier require(msg.sender == owner); _; /..