반응형

분류 전체보기 35

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

Windows11에서 "알 수 없는 장치"가 뜨지 않을때

안녕하세요. Jamie입니다. 이번 포스팅은 제가 며칠간 고생했던 걸 공유합니다. 제가 현재 작업중인 프로젝트가 외부 기기를 이용하는 부분이 있어서, Laptop과 USB로 연결하여 사용해야 했는데요. 좀 오래 되긴 했지만.. 그래도 기기에는 문제가 없어 연결하는 순간 장치 관리자에 '알 수 없는 장치' 가 뜨지 않습니다. General한 USB 드라이버를 사용하지 않아서 장치가 뜨면 USB 드라이버 파일을 연결해주면 되는것이었는데 장치 관리자부터 뜨지 않습니다. USB 삽입시 분명 무언가를 인식한 소리는 들립니다. 제가 검색을 잘못하는건지 구글이나 여러곳을 찾아도 이런 경우는 없는것 같고요.... 그래서 열심히 삽질해본 결과 다음과 같은 방법을 찾았습니다. 1. Windows 11에서는 ' 알 수 없는..

Software 2023.06.16
반응형