일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- jvm 작동 원리
- 안드로이드 유닛 테스트 예시
- 플러터 설치 2022
- rxjava cold observable
- 2022 플러터 설치
- 안드로이드 os 구조
- 2022 플러터 안드로이드 스튜디오
- ANR이란
- 안드로이드 유닛 테스트
- 안드로이드 레트로핏 사용법
- rxjava hot observable
- 안드로이드 레트로핏 crud
- 클래스
- 객체
- jvm이란
- 서비스 vs 쓰레드
- rxjava disposable
- 자바 다형성
- 안드로이드 라이선스
- 큐 자바 코드
- 안드로이드 유닛테스트란
- 서비스 쓰레드 차이
- ar vr 차이
- android ar 개발
- 스택 큐 차이
- 멤버변수
- 안드로이드 라이선스 종류
- 스택 자바 코드
- android retrofit login
- Rxjava Observable
- Today
- Total
목록Android (402)
나만을 위한 블로그

안드로이드에서 MVI 패턴을 구현하기 위해 사용하는 라이브러리로 Orbit이란 게 있다.아래는 Orbit 깃허브와 공식문서다. https://github.com/orbit-mvi/orbit-mvi GitHub - orbit-mvi/orbit-mvi: A simple MVI framework for Kotlin Multiplatform and AndroidA simple MVI framework for Kotlin Multiplatform and Android - orbit-mvi/orbit-mvigithub.comOrbit은 Redux/MVI와 비슷한 라이브러리지만 번거로움이 없다. 매우 간단해서 MVVM+라고 생각하면 된다- 간단함, type-safe, 코루틴 스타일, 확장 가능한 API- 멀티플랫폼,..

이 포스팅에선 material 3 기준으로 당겨서 새로고침 화면을 구현한 예시를 확인한다.이 글의 바탕이 된 코드는 아래 미디엄 링크를 참고했다. 그러나 글 내용 중 rememberPullRefreshState는 material 3에서 사용할 수 없는 API기 때문에 다른 걸 사용하도록 조금 수정했다. https://medium.com/@anandgaur22/jetpack-compose-pull-to-refresh-fafb4d1a5ea6 Jetpack Compose: Pull to RefreshIntroductionmedium.com 당연히 예시기 때문에 실제로 사용하려면 반드시 리팩토링한 후 사용한다.아래는 구현 완료 후 에뮬레이터에서 테스트한 GIF다. 이제 코드를 확인해보자.뷰모델을 같이 사용하기..
안드로이드 스튜디오 코알라에서 프로젝트를 기본 설정으로 생성하면 libs.versions.toml이란 파일이 생기는 걸 볼 수 있다.이 파일을 실행하면 편집기에 아래 내용이 표시된다. [versions]agp = "8.5.0"kotlin = "1.9.0"coreKtx = "1.13.1"junit = "4.13.2"junitVersion = "1.2.1"espressoCore = "3.6.1"lifecycleRuntimeKtx = "2.8.3"activityCompose = "1.9.0"composeBom = "2024.04.01"jetbrainsKotlinJvm = "1.9.0"appcompat = "1.7.0"material = "1.12.0"hilt = "2.48.1"orbit = "6.1.0"dat..

지금까지 app 모듈 안에 data, domain, presentation 폴더를 만들고 그 안에서 작업해 온 사람도 있을 것이다.그러나 이렇게 하면 삐끗하면 클린 아키텍처를 어길 수 있으니, 실제로 저 이름을 가진 모듈들을 만드는 방법을 포스팅한다.또한 이 방법이 절대 정답은 아니다. 본인이 설계한 앱에 맞춰 core 모듈을 추가할 수도 있다. 여러 레퍼런스를 찾아보고 필요한 모듈들을 알맞게 추가해 사용하자. 이 포스팅에선 앞서 말한대로 data, domain, presentation 모듈을 만들고 앱을 실행하는 것까지만 확인한다. 안드로이드 디벨로퍼에서 권장하는 앱 아키텍처가 저 3가지 모듈을 바탕으로 하기 때문인 것도 있다. 아래는 사용하는 안드로이드 스튜디오 버전이다. 먼저 File > New..

MVVM 패턴 이후 MVI라는 새 패턴이 등장했다. MVI 패턴을 다룬 글은 2019년에도 있어서 등장한지 꽤 오래됐다고 생각된다.각설하고 MVI 패턴은 무엇인지 먼저 확인한다. https://medium.com/@mohammedkhudair57/mvi-architecture-pattern-in-android-0046bf9b8a2e MVI Architecture Pattern in AndroidA guide to adopt MVI pattern in your projectmedium.comMVI(모델-뷰-인텐트) 아키텍처는 앱을 3가지 주요 컴포넌트로 나눠서 깔끔한 코드, 명확한 관심사 분리를 강조한다. 이런 단방향 데이터 흐름과 뚜렷한 역할은 앱을 더 쉽게 이해하고 빌드, 유지보수하는 데 기여한다. 또..

의존성 주입은 hilt, koin 등의 라이브러리를 활용해 프로젝트에 적용할 수 있다.의존성 주입이라는 단어의 뜻을 모른다면 영문 위키백과의 내용을 확인해 본다. https://en.wikipedia.org/wiki/Dependency_injection Dependency injection - WikipediaFrom Wikipedia, the free encyclopedia Software programming technique Dependency injection is often used alongside specialized frameworks, known as 'containers', to facilitate program composition. In software engineering, dep..

같은 타입인 객체의 중복 바인딩을 유지하면서 사용해야 할 경우가 있다. 예를 들어 base url이 서로 다른 레트로핏 객체를 생성하고 싶을 수 있다.그러나 hilt는 같은 타입의 객체를 바인딩하려고 하면 DuplicateBindings 태그가 포함된 에러가 발생한다.이 때 사용할 수 있는 hilt 어노테이션이 2가지 있다. QualifierNamed 각 어노테이션의 사용 방법을 간단하게 확인한다. 프로젝트에 hilt를 사용하도록 설정하는 건 생략한다.먼저 Qualifier 어노테이션을 쓰기 전 아래 클래스들을 미리 작성해둔다. import javax.inject.Injectclass Bar @Inject constructor() {}class Foo constructor(val name: String)..

Compose로 앱을 만들면 Scaffold라는 컴포저블을 자주 쓰게 된다.디벨로퍼에서 설명하는 Scaffold는 아래와 같다. https://developer.android.com/develop/ui/compose/components/scaffold?hl=ko Scaffold | Jetpack Compose | Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. Scaffold 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Material Design에서 Scaffold는 복잡한 사용자 인터페developer.android.comMaterial Design에서 Scaffold는 복잡한 UI를 위한 표준화된 플..

뷰모델을 초기화하는 방법은 다양하다. 이 방법들 중에서 자신의 프로젝트, 뷰모델 성격에 맞는 초기화 방법을 사용하자. ViewModelFactory, ViewModelProvider 사용 ViewModelProviders가 deprecated되서, 대신 ViewModelProvider를 사용해야 한다. 아래는 예시 코드다. val viewModelFactory = MyViewModelFactory(myRepository)val viewModel = ViewModelProvider(this, viewModelFactory).get(MyViewModel::class.java) 이 방법은 hilt를 사용하지 않는 경우, androidx.activity:activity-ktx 라이브러리를 사용하지 않는 경우에 ..

현재 안드로이드 15는 베타 단계다. 디벨로퍼에 걸린 로드맵대로라면 곧 플랫폼 안정화 단계로 이동하면서 15에 적용될 변경사항들이 확정될 것이다. 그럼 현재까지 드러난 안드로이드 15의 변경사항과 변화되는 안드로이드 생태계는 무엇이 있는지 확인한다.먼저 안드로이드 생태계의 변경사항부터 확인한다.아래 링크를 바탕으로 작성했다. https://blog.google/products/android/android-15-google-io-2024/#theft-privacy-security 10 updates coming to the Android ecosystemFrom Theft Detection Lock to casting on Rivian to Wear OS 5 updates, here’s what’s co..