코틀린 내부 동작 방식 이해하기 - 코틀린 코루틴 책 4장의 주제를 정리 코루틴이 쓰인 코루틴 코드 fun main() { CoroutineScope(Dispatchers.Default).launch { val token = fetchToken() println(token) }.join() } suspend fetchToken(){ delay(1000) return "1234" } 자바 디컴파일로 변환 했을 때의 코드를 중요한 부분만 적은 수도코드 (코틀린, 자바 짬뽕인 수도코드) fun main(completion:Continuation) { var var10000 = BuildersKt.launch$default(/** ... */, Function2() { int label = 0 fun invok..
Dynamic Link 링크를 통해서 앱으로 들어가는 것이 몇개가 있는데 딥링크 다이나믹링크 실제적인 구조 다이나믹링크 딥링크 다이나믹링크 앱이 설치 X → 플레이스토어로 넘어가고, 설치 O → 딥링크를 이용하여 앱으로 이동 디퍼드 딥링크 다이나믹링크 단점 → 앱 설치후에 들어가면 원래 링크에서 띄울려는 페이지로 갈 수가 없음, 링크가 유실된다고도 할 수 있음 이건 일단 안해서 담으로 다이나믹 링크 만들기 firebaseDynamicLink에서 생성해서 만들 수가 있다. 다이나믹링크를 만들면 {XX}.page.link/YY로 만들어지는데 YY가 강제로 만들어진다. 그게 뭐냐하면 짧은 링크라는 거였다…. 긴 동적 링크 https://holdy.page.link/?link=https://team.nexter..
[문제사항😿] name을 넣어주기 전에 뷰 그릴때 초기에 defaultName으로 세팅 될 줄 알았음 - default 아예 동작 안함 - android:text말고 BindingAdpater를 만들어서 해도 안됨 [해결책✋] - default가 필요하다면 두가지를 사용하는 수 밖에 없어보인다. android:text="@string/defaultName" maybeText="@{name}" - 안드는 왜...그런걸까... 정말 믿을 수가 없다. - 사실 android:text에 dataBinding을 건적이 없었긴 했다.
https://developer.android.com/training/dependency-injection/hilt-android 힐트는 대거를 사용하기 편하게 감싼 di 라이브러리 힐트를 쓰려면 HiltAndroidApp어노테이션을 application에 붙여함 힐트코드제너레이션을 트리거 시킴 어플리케이션 레벨의 의존성 컨테이너 역할을 하는 어플리케이션 베이스 클래스를 만들어줌 의존성주입이 어려운 경우에는 hiltModule을 사용하면 된다. HiltModule에는 InstallIn도 적어줘여야하는데 instalIn인의 경우 의존성이 주입될 범위를 나타낸다. 만약에 SingletonComponent면 전역에 걸쳐 힐트모듈에 적인 의존성 타입을 주입할수 있다는 것이고 ActivityComponent면 액..
참고 자료 https://developer.android.com/kotlin/flow/stateflow-and-sharedflow https://proandroiddev.com/stateflow-with-one-and-twoway-databinding-on-android-cf4e6c847988 LiveData랑 비슷하지만 다른점 초기값이 필요함 값으로 null을 넣을 수 있음 라이브데이터 처럼 생명주기를 알고있진않아서 뷰가 멈출때에도 콜렉팅(서브스크라이브)를 하고 있음 class LatestNewsActivity : AppCompatActivity() { ... // Coroutine listening for UI states private var uiStateJob: Job? = null overrid..
공변,무공변,반공변에 대한 개념들은 "타입 S가 T의 하위타입이면 List도 List의 하위타입인가?"에 대한 질문으로 시작한다. 타입 S가 T의 하위 타입일때 -> Box와 Box가 어떤 관계도 아닌 경우 : 타입 S가 T의 하위 타입일때 -> Box가 Box의 하위타입인 경우 : 타입 S가 T의 상위 타입일때 -> Box가 Box의 상위타입인 경우 일반적으론 무공변이다. List랑 List은 어떤 관계도 없다. 왜그러냐면, 제네릭은 "타입소거"방식으로 동작한다. 타입소거란? 컴파일시에만 타입 검사를 하고 런타임시에는 제네릭의 인스턴스에 대한 타입정보를 갖고 있지 않는 것 예를 들어) List은 런타임시에는 그냥 List로 간주된다. (개발자눈에만 타입이 보인다는뜻) 그래서 is 키워트로 List의 타..
책 리뷰 #나는 아마존에서 미래를 다녔다 책 중반까지 읽었다. 이 책은 개발자로서 아마존에서 근무했던 한 한국인의 자서전이다. 개인적인 일화라기보다는 아마존에서 있었던 일에 대한 내용이 주를 이루고 있기 때문에 아마존 근무 회상기 같은 거라고 볼 수 있겠다. 제일 인상적이었던 건 슬로건이었다. 아마존에서는 슬로건과 수칙들이 존재하며 이것들을 굉장히 중요하게 여긴다. 나는 개인적으로 이러한 수칙(회사에서든 학교에서든)들은 하나의 그냥 보여주기식의 느낌으로 실생활과는 거리감이 있다고 여겼는데 아마존은 굉장히 중요시 여겼다. 가만히 생각해보면 이러한 것들은 신념, 정체성을 확고히 하는 역할을 하고 있다. 내 삶을 돌아보면 참 많은 목표들을 세웠다. 이러한 것들은 어떠한 결과를 성취해내자는 내용이었다. 신념을 ..
- Total
- Today
- Yesterday
- 자바
- 코루틴동시성프로그래밍
- 변성
- 다이나믹링크
- #EC2
- #tensorflow
- #우분투
- 코루틴딥다이브
- 안드로이드
- 프로그래머스
- 코틀린코루틴
- stateflow
- dynamiclink
- TF-Slim
- 공변
- 코루틴
- 무공변
- Kotlin
- #윈도우
- 코루틴내부동작
- Hilt
- Android
- 코틀린
- 코틀린으로배우는함수형프로그래밍
- 반공변
- c++
- 힐트
- 키보드
- databinding
- 코틀린코루틴스터디
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |