Kotlin 35

Kotlin Coroutines, 구조화된 동시성 (Structed Concurrency)

오늘날, 안드로이드 개발은 Kotlin이 메인 프로그래밍 언어로 자리잡고 있습니다.이로 인해 비동기 작업은 Kotlin Coroutines(코루틴)이 완전히 자리를 잡고 있는데요.일부 역사가 긴 서비스를 보유한 회사에서는 Rx 계열을 사용하는 경우도 있지만, 아마 코루틴으로 마이그레이션하는 작업을 진행하지 않을까 예상됩니다.코루틴은 구조화된 동시성이라는 원칙을 따르고 있습니다.https://kotlinlang.org/docs/coroutines-basics.html#structured-concurrency Coroutines basics | Kotlin kotlinlang.org구조화된 동시성은 동시성 작업간에 부모-자식과 같은 관계를 형성하여 가독성, 유지보수성, 안정성이 뛰어난 동시성 코드를 작성할 ..

개발/Android 2025.01.27

[Android] Compose Multiplatform + Circuit + Koin

요즘 Compose Multiplatform에 대한 관심도가 많이 높아진 것 같습니다.Jetpack ViewModel은 기존에 Android에서만 사용이 가능했는데, 최근 KMP에서도 사용 가능하도록 업데이트를 하기도 했습니다.이 외에 Navigation Component, Room 등도 이러한 양상을 보이고, 많은 라이브러리들이 KMP 환경을 제공하기 위해 노력하고 있는 듯 합니다.https://www.jetbrains.com/ko-kr/compose-multiplatform/ Compose Multiplatform UI 프레임워크 | JetBrains www.jetbrains.com 저 또한 CMP에 관심을 가지고 있는데, 지금까지 잘 사용을 하지 않은 이유는 적합한 아키텍처 또는 아키텍처 구성요소를..

개발/Android 2025.01.12

Kotlin Multiplatform Mobile(KMM) - Start!

최근 크로스 플랫폼에 대한 관심이 많아지고 있다. 그 중에서 가장 관심이 높았던 것은 Flutter와 Kotlin Multiplatform Mobile(KMM)이었다. Flutter는 3.0 이후, 벌써 3.7 버전이 릴리즈 되었다. (이 마저도 시간이 꽤 지났다.) https://medium.com/flutter/whats-new-in-flutter-3-7-38cbea71133c What’s new in Flutter 3.7 Material 3 updates, iOS improvements, and much more! medium.com 그만큼 구글에서도 크로스 플랫폼에 대한 지원을 아낌없이 하고 있다고 봐도 될 것 같고, 그에 따라 여러가지 기업에서도 Flutter를 도입하는 사례가 늘고 채용공고도 ..

개발/Android 2023.04.05

Android - Deep dive into LiveData - 4. MediatorLiveData

이전 포스팅에서 Transformations를 사용하여 LiveData를 다른 LiveData로 변화시켰다. 이번 포스팅은 Transformations 내부에서 사용한 MediatorLiveData에 대해 알아본다. https://developer.android.com/reference/android/arch/lifecycle/MediatorLiveData MediatorLiveData | Android Developers Stay organized with collections Save and categorize content based on your preferences. The android.arch Architecture Components packages are no longer maintain..

개발/Android 2023.04.01

[Android] Jetpack Compose + Flow로 네트워크 연결 상태 처리를 해보자.

저는 안드로이드 관련된 Medium 포스팅을 메일로 전달받고 있습니다. 최근 제목과 같이 Jetpack Compose와 Flow를 활용하여 네트워크 연결 상태 처리를 하는 포스팅을 보고 예제를 간단하게 작성하여 포스팅하려 합니다. 참고한 Medium 링크는 아래와 같으니, 원문을 보고 싶다면 참고하면 됩니다. https://attilaakinci.medium.com/network-connectivity-on-compose-a35f6efa1a5c Network Connectivity on Jetpack Compose Brief story on network connectivity usages on modern android development style with jetpack compose support..

개발/Android 2021.12.26

[Android] Kotlin + MVVM + AAC 로 Todo 앱 만들기 - 6 (ViewBinding, DataBinding)

한참전에 DataBinding을 적용하기로 했었는데, 까맣게 잊고 있었다. 내 포스팅을 보고 공부하시는 분께서 DataBinding을 요청하셔서 추가로 포스팅한다. (게으른 나를 반성..) 귀찮으신 분들을 위한 최종코드 Github : github.com/DuItDDu/Android-Codelabs/tree/master/MyTodo 1. ViewBinding, DataBinding이 무엇인가? developer.android.com/topic/libraries/view-binding 뷰 결합 | Android 개발자 | Android Developers 뷰 결합 기능을 사용하면 뷰와 상호작용하는 코드를 쉽게 작성할 수 있습니다. 모듈에서 사용 설정된 뷰 결합은 모듈에 있는 각 XML 레이아웃 파일의 결합..

개발/Android 2021.01.20

[Android] Firebase - 6. FCM(Firebase Cloud Messaging) 으로 알림을 보내보자!

모바일 앱을 사용하다 보면, 광고나 메시지 등의 알림이 상단에 배너처럼 띄워지거나 기기의 알림창에 아이콘이 떠있는 등을 쉽게 볼 수 있다. 카카오톡, 라인 등과 같은 메신저, 게임, 커머스 등에서도 아주 쉽게 확인할 수 있다. 이는 사용자에게 알림을 주기도 하지만 적절한 알림이나 광고를 통해 전체 혹은 특정 사용자의 행동을 유도하거나 앱으로의 유입을 위해 활용된다. 모바일에서 활용할 수 있는 핵심적인 기능 중 하나가 아닐까 싶다. 이를 FCM을 통해 구현해보도록 하자. 1. 문서를 꼭 참고하자! FCM은 구현도 구현이지만, 내부 스펙에 대하여 알아야 할 내용이 꽤 있다. 따라서 공식문서를 꼭 읽어보자! firebase.google.com/docs/cloud-messaging/?authuser=1#impl..

개발/Android 2020.12.19

[Android] Firebase - 5. Crashlytics로 앱 크래쉬 추적하기

열심히 개발한 앱을 플레이스토어에 배포했다고 가정해보자. 나름 열심히 예외처리도 했을 것이다. 사용자가 어떤 행동을 할 지 모르고, 어떤 예외가 발생하여 앱이 죽을지 모른다. 그리고 앱이 죽었을 때 이유조차 알기 어려운 경우가 있다. 물론, 구글 플레이 콘솔에서 확인할 수 있기도 하다. 하지만 이런 크래쉬를 좀 더 세세하고 보기좋게 확인할 수 있는 서비스가 Firebase의 Crashlytics이다. 1. Crashlytics 활성화 Firebase 콘솔로 이동하여 "출시 및 모니터링"의 "Crashlytics"로 이동한다. 그리고 "Crashlytics 사용 설정" 을 누른다. 그럼 아마 이런 화면으로 바뀔것이다. 문구를 잘 읽어보면, 앱을 빌드하고 비정상 종료하라고 가이드하고 있다. 이제 Crashl..

개발/Android 2020.12.16

[Android] Firebase - 3. Google로 로그인 구현

Firebase를 활용하여 Google로 로그인 기능을 구현해보자. 이전 포스팅에서 성공적으로 Firebase에 앱을 추가했다면 어렵지 않게 구현할 수 있다. 1. Firebase 인증 설정 가장 먼저, 자신의 프로젝트로 이동하여 "Authentication" 항목으로 이동한다. 그리고 "시작하기" 버튼을 누른다. 그럼 "로그인 제공업체" 목록이 나올텐데, Google 을 눌러 "사용설정" 을 활성화하고, 프로젝트 지원 이메일을 입력하자. 프로젝트 공개용 이름은 원한다면 수정해도 좋다. 완료 후 "저장" 을 누른다. 2. Dependency 추가 우선 Firebase의 인증 기능을 위해서 Dependency를 추가해야 한다. plugins { ... } android { ... buildFeatures ..

개발/Android 2020.12.08

[Android] Dependency Injection (a.k.a DI) - 2. MVVM으로 기반 코드 작성

자, 우선 기반 코드를 작성하도록 하겠다. MVVM 아키텍처를 활용할 것이며, 구글의 아래 이미지를 참고하자. https://developer.android.com/jetpack/docs/guide?hl=ko 앱 아키텍처 가이드 | Android 개발자 | Android Developers 이 가이드에는 고품질의 강력한 앱을 빌드하기 위한 권장사항 및 권장 아키텍처가 포함되어 있습니다. 이 페이지는 Android 프레임워크 기본을 잘 아는 사용자를 대상으로 합니다. Android 앱을 처 developer.android.com 더 자세한 내용은 위 문서를 보고, 아래부터는 코드를 통해 DI를 확인 할 것이다. - 기반 코드 패키지 구조 패키지 구조는 위와 같다. 여기서 fake는 실제로 데이터를 받아오기..

개발/Android 2020.10.24
반응형