2) Kotlin Plugin - 코틀린 파일은 어떻게 컴파일 되는가?
·
gradle
.kt 코틀린파일이 어떻게 안드로이드 런타임(ART)에서 돌아가는가? 위 물음에 대한 답으로 아래처럼 대답해왔습니다. .kt파일이 어떻게 .apk파일이 만들어지는지에 대해서 설명을 해왔습니다.사실 위 설명에는 .kt파일이 타겟바이트코드인 .dex파일로 가는 중요한 부분이 빠져있었습니다. 1) .kt -> .class 코틀린 컴파일러가 어떻게 컴파일하는가? Kotlin 코드를 만든 Jetbrain은 여러 타겟 바이트코드로 변환하기 위해, 컴파일 과정에서 FrontEnd, BackEnd로 구분하여 코틀린 하나의 언어만으로, 여러 플랫폼에 지원해주기위한 시도를 했습니다. 코틀린 코드를 계층화된 모델로 IR 로 만들고, 이를 사용해서 바이트코드를 만드는 과정을 위 표와같은 순서로 진행합니다. 2) 왜 .kt ..
1) Kotlin Plugin - Gradle의 역할
·
gradle
Gradle이란?Gradle은 간단히 말해서"무언가를 만드는 과정(빌드)을 Task로 정의하고, 그 과정을 자동화/재사용하게 해주는 빌드 시스템" Ant나 Maven이 “정해진 방식으로 빌드한다” 쪽에 가깝다면,Gradle은 그 위에 “원하는 빌드 파이프라인을 코드처럼 조립할 수 있게 해준다”에 더 가깝고요. 빌드 시스템 관점에서 보면 대충 이런 장점이 있습니다1) 각 빌드 스크립트를 Task 단위로 쪼개고2) 해당 Task를 재사용하면서3) 다른 사람이 만들어 둔 “규칙/Task/DSL 세트”를 플러그인처럼 가져다 쓸 수 있고4) 그 과정에서 필요한 설정(옵션, 파라미터, DSL)을 깔끔하게 제공해준다 여기서 중요한 게 Plugin인데요.플러그인은 “Task 묶음”이라고 말해도 되지만, Andr..
IOS Sqlite Data 확인하기
·
어플 개발일기
Android Room Data Base를 공유하면서,Android 쪽은 IDE에서 제공하는 Data Inspector를 통해 쉽게 Sqlite 데이터를 확인할 수 있는데,IOS 쪽은 확인하는 방법을 몰랐음.. 일단 DB 데이터를 읽을 수 있는 프로그램 필요 1. 무료로 확인할 수 있는요놈을 다운받자 2. 내 데이터가 저장된 위치를 확인하자터미널 키고, 에뮬레이터가 켜진 상태에서 아래와 같이 입력xcrun simctl get_app_container booted {앱 패키지 com.~~~} data이러면 데이터 경로가 나옴/Users/yun-wonjun/~~~~해당 경로를 열자open {경로}파인더에서 db파일을 확인할 수 있는데, 그걸 1에서 받은 앱으로 열면 완료 3.위의 Browse Data를 클릭..
1. KMP, NoClassDefFoundError: Failed resolution of
·
어플 개발일기
애러 발생 과정- Android Room DB 객체 DI를 Koin으로 진행 애러 발생 원인- KMP는 CommonModule과 각 플랫폼 모듈을 코틀린으로 작성하여 공유함- A)CommonModule의 특정 경로 A/B/C/RoomDatabase.kt에 RoomDatabase 관련한 생성 로직 작성- B) 플랫폼 모듈의 같은 경오 A/B/C/RoomDatabase.kt에 RoomDatabase 관련한 Util 로직 작성(확장 함수 등) 위와 같이 같은 경로에 같은 명칭의 파일을 생성하게되면, KMP 그래들 Plugin에 설정된 빌드 Task에 의해 B)파일이 A)파일을 덮어 인식하게 된다.(KMP 빌드는 Common -> 플랫폼 Main 순으로 진행되므로, 같은 파일이 있으면 덮어씀) 같은 파일명은 쓰..
MutableStateFlow(Kotlin) -> CurrentValueSubject(swift)
·
어플 개발일기
안드로이드 앱에서 MutableStateFlow를 사용하고 이 stateFlow를 Observing하여 항상 최신의 데이터로 view를 뿌려주고 있었음 이와 같은 동작을 하는 Observable객체가 있는지 알아 봄 바로 Combine에 포함된 객체가 이와같은 동작을 함 https://developer.apple.com/documentation/combine Combine | Apple Developer DocumentationCustomize handling of asynchronous events by combining event-processing operators.developer.apple.com 모든 걸 지금 알아볼 수는 없고 필요한 내용만 정리하겠음 Observe 할 수 있는 객체가 Swif..
코루틴에 대해서 공부
·
어플 개발일기
1. 코루틴이란 "경량 쓰레드?" "루틴?" "코틀린 코루틴?""비동기 처리를 하기 위한 하나의 방법론, 그 방법은 중단, 재개임"다양한 언어에서 Coroutine을 지원함"Kotlin, GoRoutine, C++20~.."---------------------------------------------------------------------------------------------------2. 페이지코루틴을 이해하기 하기 위한 그림을 하나 보겠음"(일반적인 길(fun)) 화살표 표시"일반적인 함수는 루틴이라고 하여 호출과 return까지의 길은 하나임 (일반적인 길(표지 suspend))  (중간에 구멍) -> (표기) -> 다른터널코루틴은 이런 루틴한 길을 가다가 잠시 멈춰야 하면 출구가 나오..
리워크
오늘도새맘처럼