Jetpack Compose와 Flutte는 같은 선언형 프로그래밍 방식으로 UI 코드를 작성하기에, UI 테스트 코드 작성 또한 유사한 방식으로 작동할 줄 알았으나 생각보다 어려운 부분이 많았다.먼저, Flutter의 위젯 단위는 Widget 이라는 class이다.
Kotlin Multiplatform 도입 계기 최근 회사에서 Android, iOS 앱을 native로 구현하면서 공통 기능을 두 번 구현하거나, 팀원은 iOS를, 나는 Android로 같은 기능 A를 각자 구현하다가 나중에 통합해보니 구조가 달라서 문제가 생겨 피로
Compose를 사용하지 않은 기존 Android 앱은 Activity, Fragment, 기타 수명주기에 따라 상태관리를 수행해야 합니다. 이를 위해 수명 주기에 맞춰서 생성되고 소멸되는 상태관리 매니저가 필요했고, Android Jetpack에서는 ViewModel
평소에 이름은 모르지만 사용하던 기술 이름들을 잊지 않도록 정리해둔 단어장null 병합 연산자(null coalescing operator)왼쪽 피연산자가 null인 경우 오른쪽 피연산자를 반환하는 연산자Kotlin에서는 ?!, Flutter에서는 ??를 사용한다예시
동시성과 병렬성 동시성(Concurrency)와 병렬성(Parallelism)의 개념을 모르고 있는듯해서 먼저 알아보았습니다. Concurrent Computing: >Concurrent computing is a form of computing in which se
Kotlin에서 reflection을 사용하여 JSON serialization 해보기에 이어서, deserialization을 구현해본다. 변환을 위해서는 변환할 JSON Map 객체와 변환할 타입형인 KClass가 필요하다. 함수 parameter로 KClass
Kotlin에서는 JSON을 serialization, deserialization을 간편하게 할 수 있는 여러 라이브러리들이 존재한다 kotlinx.serialization Gson jackson 하지만 외부 라이브러리를 사용하지 않고 Kotlin의 reflect
기본 SharedPreference는 key, value값을 암호화하지 않고 그대로 저장하기 때문에 민감한 데이터를 저장하는 목적으로 사용할 수 없다. Android에서는 이러한 데이터를 암/복호화 하는데 사용하는 키 값을 하드웨어 단에서 보호되는 안전한 컨테이너에
그 동안은 이미 올려진 앱을 Playstore에 업데이트 하는 정도의 작업만 해보다가 이번에 처음으로 앱을 런칭할 기회가 생겼다.업데이트 자체는 거의 하루도 걸리지 않는 수준으로 진행해주어서(유지보수 작업이다보니 내용 자체가 별게 없었던것도 있지만) 런칭도 크게 어렵지
Flutter에서 상태관리를 할 수 있는 방법으로 크게 3가지를 알고 있다. GetX provider flutter_bloc 업무 초기 당시에는 Flutter를 빠르게 적용해야 했기 때문에 context를 관리가 필요 없으면서 navigation, Widget bu
Gradle script를 Groovy에서 KTS로 변경하던 중 다음과 같은 warning를 받았다.File.listFiles()은 File\[]를 반환하는 Java로 작성된 함수로, 내부를 확인해보니 Nullable annotation이 있는 것을 확인해 Kotlin