반응형

Development 34

Android Studio Git 에서 Staged/Unstaged 사용하기

안녕하세요. Jamie입니다. Android Studio 내장 Git들 많이 사용하시죠?근데 Android Studio (IntelliJ 계열)에서는 내장 Git이 Git CLI과 약간의 구조가 다릅니다. 저 같은경우에는 CLI에서 Git을 사용하면서 먼저 수정한 부분은 Staged에 올려놓고, Unstaged와 검증을 추가로해서 작업을 하는데, Android Studio에는 Changelist라는것으로 통합되어서 Staged/Unstaged를 알수가 없더라고요. 그래서 결국 CLI로 내려와서 확인을 해야하는 불편함이 있었는데, Android Studio Git에서도 Staged/Unstaged를 사용할 수 있다는 내용이 있어서 이번 포스팅은 그 부분을 포스팅합니다. 자, 이제 안드로이드 스튜디오에서도 ..

Development/Android 2026.04.15

Koin? 한번 알아볼까요?

안녕하세요. Jamie입니다. 안드로이드 개발에서 의존성 주입(DI)은 아키텍쳐를 구현하는데 있어 필수입니다. 기존에는 ServiceLocator를 만들어서 수동으로 주입하고, Dagger, Hilt에 이어 Koin이 현재는 주목받고 있는데요,현재 시점에서 Koin이 왜 다시 주목받는지, 그리고 Hilt와의 비교에 대해서 포스팅 해보도록 하겠습니다.Koin이란?Koin, 그리고 항상 같이 비교가 되는 Hilt는 기본적으로 DI(Dependency Injection) 라이브러리라고 합니다.근데, 사실 Koin은 "의존성 주입"이라 부르지만, 기술적으로는 DSL(Domain Specific Language) 기반의 Service Locator 패턴에 가깝습니다. 하지만 사용 방식은 DI와 동일합니다.이 둘의..

Development/Android 2026.04.01

StateFlow, SharedFlow에 대해서 쉽게 이해하기

안녕하세요. Jamie입니다. 이번 포스팅은 Flow에 대해서 쉽게 이해할 수 있도록 정리해보았습니다.Flow는 현재 Android 앱 개발에서는 Coroutine과 함께 비동기 + 스트림 처리에는 필수적으로 사용되는 스택입니다. 우선 Flow에는 크게 3대 구성요소가 있습니다.Flow의 3대 구성요소생산자 (Producer)중간 연산자(Intermediary)소비자 (Consumer) 이 요소들은 다음과 같은 특징이 있습니다.Producer (생산자): 데이터를 스트림에 흘려보냅니다.flow { ... } 블록 안에서 emit()을 통해 데이터를 전달합니다. (예: Repository 레이어의 DB 쿼리 결과)Intermediary (중개자, 중간 연산자): 흘러가는 데이터를 가공합니다.map, fi..

Development/Android 2026.03.31

Android LiveData에서 Flow로 옮겨가야하는 이유

안녕하세요. Jamie입니다. Android에서 Flow 많이 사용하시죠? LiveData 많이 사용하신다구요? 그래도 현재 포스팅기준 (2026년) ‘아직’은 사용가능한데, 결국 Flow로 옮겨오셔야할겁니다. 오늘 포스팅은 그래야하는 이유에 대해서 소개합니다. 자 일단 여러가지 이유가 있는데, 각각의 도메인과 기술스택의 선점때문에 이유는 다르실것 같습니다. 왜 LiveData를 안쓰는가? 혹은 못쓰는가?현재 2026년 기준 가장 큰 이유는 KMP (Kotlin Multiplatform)가 대세로 떠오르면서 그렇습니다. 이제 도메인이나 데이터 영역에 안드로이드에 종속되어있는 라이브러이인 Live Data 를 쓰는건 설계상 결합도를 높이는 행위로 간주합니다. KMP 자체가 안드로이드에서만을 목적으로 나온 ..

Development/Android 2026.03.31

libs.versions.toml 써보셨나요?

안녕하세요. Jamie입니다.혹시 최근에 Android Studio로 새로 프로젝트를 만드신분들중에“libs.versions.toml” 이라는 무언가가 추가된걸 알아차리셨나요? 혹은 app수준의 build.gradle을 가서 라이브러리를 추가하려고 하는데, dependencies { implementation(libs.androidx.core.ktx) implementation(libs.androidx.lifecycle.runtime.ktx) implementation(libs.androidx.activity.compose) implementation(platform(libs.androidx.compose.bom)) implementation(libs.androidx.compo..

Development/Android 2026.03.22

Android Studio New UI 적용하기

안녕하세요. Jamie입니다. Android Studio Giraffe에서 현재 베타로 사용할 수 있는 New UI를 활성화 할 수 있는데요. 이번 포스팅에서는 New UI를 활성화 할 수 있는 방법에 대해서 알려드리겠습니다. 2023년 8월 기준, Android Studio Giraffe | 2022.3.1를 설치하시게 되면 활성화가 가능합니다. File -> Settings -> Appearance & Behavior 메뉴에 들어가시면 New UI (Beta)라는 항목이 생겼는데요. 이곳에서 Enable new UI를 체크하고 Restart를 선택하면, 재실행 후에 New UI로 변경됩니다. 아래 이미지로 비교해보겠습니다.

Development/Android 2023.08.18

flutter doctor Visual Studio not installed; this is necessary for Windows development 해결방법

안녕하세요. Jamie입니다. android를 flutter로 개발해보기위해 flutter를 설치하려고 합니다. https://docs.flutter.dev/get-started/install/windows 를 따라서 설치를 하고 있는데, 다음과 같은 이슈를 확인했습니다. C:\Users\cpdev>flutter doctor Doctor summary (to see all details, run flutter doctor -v): [√] Flutter (Channel stable, 3.10.6, on Microsoft Windows [Version 10.0.19045.3208], locale ko-KR) [√] Windows Version (Installed version of Windows is ver..

Development/Flutter 2023.08.07

다른앱과 통신할때 주의점 (feat. ApplicationId vs namespace)

안녕하세요. Jamie입니다. 최근에 앱 개발중 작은 삽질(?)을 한 부분이 있어, 혹시 같은 문제로 고생하시는 분들이 있을까하여 기록을 남깁니다. 제가 개발중인 앱이 외부 다른 앱의 데이터를 송수신하고, 그 앱에서 제 앱을 호출하는등 기능들이 있습니다. 문제는 다른앱에서 제 앱의 호출은 Intent를 통해 하고 있었는데, 어느날부터 외부앱에서 제 앱의 Activity가 실행되지 않는 증상을 확인합니다. 특별히 실행되는 Activity를 수정하진 않았는데, 문제가 되어 로그를 확인해보니 패키지명이 다음과 같이 찍힙니다. START u0 {act=android.intent.action.MAIN cmp=com.test.launcher/.IntroActivity} from uid 10461 cmp의 패키지명과..

Development/Android 2023.08.06

Class Model does not define a no-argument constructor. If you are using ProGuard, make sure these constructors are not stripped.

안녕하세요. Jamie입니다. 오늘은 제가 Firebase RealtimeDatabase의 데이터를 가져온 과정에서 발생한 에러의 해결 방법을 공유합니다. Firebase RealtimeDatabase에는 아래와 같은 모델 데이터가 있습니다. {a="abc", b="def", c="ghi", d="jkl"} 이것을 data class로 정의하여 파이어베이스에서 얻어오려고 다음과 같은 코드를 작성합니다. data class TestModel( val a: String, val b: String, val c: String, val d: String ) Coroutine + ViewModel을 사용하여 Firebase RealtimeDatabase에서 데이터를 가져옵니다. suspend fun requestD..

Development/Android 2023.06.29

Kotlin코드를 Java코드로 변경하기 (Android Studio)

Android Native앱을 개발하기 위해서는 보통 Java와 Kotlin을 사용합니다. Java와 Kotlin은 같은 JVM 기반 언어이기 때문에 서로 호환이 100% 가능합니다. Java이나 Kotlin을 이용할때 어떻게 동작하는지 서로의 언어를 보고 비교하면 도움이 됩니다. (특히 기존에 Java를 이용해서 개발하신분들은 Kotlin을 새로 접할때) Android Studio에서 변환하는 기능을 제공해주고 있는데요. 바로 소개하겠습니다. ※ Android Studio Dolphin | 2021.3.1 Patch1 버전기준으로 작성되었습니다. Kotlin Code를 Java로 변환하기 Kotlin으로 작성된 kt 파일을 bytecode로 변환한뒤, decompile을 통해 java 파일로 변환합니다..

Development/Android 2023.03.06
반응형