일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Kotlin
- 알고리즘
- Gradle
- 테스트
- Coroutine
- viewmodel
- mockito
- 디자인패턴
- android
- k8s
- 스레드
- 자바
- 알게되는
- Rxjava
- 글또
- ReactiveProgramming
- kotlin강좌
- g 단위테스트
- theming
- 코루틴
- 코틀린
- Compose
- 안드로이드강좌
- 병럴프로그래밍
- 책
- 병렬프로그래밍
- 안드로이드스튜디오
- 안드로이드
- 회고
- 커스텀상태
- Today
- Total
목록개발 (73)
선생님, 개발을 잘하고 싶어요.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/kCExq/btq1OM64ECf/KBNKdxKjqLed98UJ295Ea1/img.png)
수명 주기 패러다임 Activity가 새로운 상태에 들어가면 시스템에서 호출하는 콜백 시스템 콜백 내부에서 일어나는 일, 무엇을 구현해야 하는 지 onCreate - 생성됨 상태 내부에서 일어나는 일 시스템이 Activity를 생성할 때 실행 생성됨 상태 → 시작됨 상태 해야 할 일 데이터 바인딩 뷰 바인딩 Activity와 ViewModel 연결 클래스 범위 변수 인스턴스화 이전 Activity 저장 상태가 포함된 savedInstanceState 세팅 onStart - 시작됨 상태 내부에서 일어나는 일 Activity가 사용자에게 보임 앱은 Activity를 foreground로 보내 상호작용 준비 시작됨 상태 → 재개됨 상태 매우 빠르게 완료 해야 할 일 앱이 UI를 관리하는 코드 초기화 onRes..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cdVFhr/btq1KceQBW3/Kiegt2MuhFj8plhyFJX5QK/img.png)
사이드 프로젝트가 배포를 앞두고 있습니다. (몇 달째 이 말을 하는지 모르겠지만...) 그래서 이제 배포를 하기 위해서 apk를 신나게 뽑고 있었습니다만 네, 앞으로 Google Play에 apk 배포 말고, App Bundle로 배포하라고 하네요. 한마디로 배포 관점에서 apk 배포는 dprecated 되었습니다. 이에 미루고 미룬 App Bundle을 왜 쓰나 알아보고, 직접 적용해 본 내용을 간단하게 정리합니다. App Bundle이 뭔데? 결국, 안드로이드 시스템이 앱을 소비하기 위해서는 apk가 필요합니다. App Bundle 자체를 실행할 수 있는 것은 아니죠. 그럼 App Bundle은 뭘까요? App Bundle을 사용하면 apk 생성과 Signing이 지연된다. 기존에는 개발자가 apk를..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b3CODB/btqVcsVVSpp/dIrWF0pP2oDjpZCandW021/img.png)
대상 2개 이상의 라이브 데이터를 조합해서 사용하고 싶은 사람. MediatorLiveData가 별로라고 생각하는 사람. 문제 2개 이상의 라이브 데이터를 조합하여 새로운 라이브 데이터를 만들고 싶다고 해보죠. 예를 들면, 로그인 화면에서 이메일과 비밀번호가 작성되었을 때만 로그인의 enable 설정이 되었으면 이 화면에서 2개의 live data를 쉽게 설계할 수 있겠죠. val email: MutableLiveData = MutableLiveData() val password: MutableLiveData = MutableLiveData() 해결 해결할 때 Flow를 사용해 봅시다. val enableLogin = combine(email.asFlow(), password.asFlow()) { ema..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nQbuM/btqU4ZyJS8A/d5iXAcxOKSjNonhV0LSGu1/img.png)
무엇을 원하는가? 완전 커스텀한 뷰의 Dialog 전면을 다 차지하는 Dialog 단계별로 따라 하기 1. AlertDialog 사용하기 Dialog를 띄우는 가장 쉬운 방법은 AlertDialog.Builder가 제공하는 기능만 사용하는 것입니다. setTitle, setMessage, setPositiveButton을 조합하면 위의 Dialog와 일치하는 정보를 제공할 수 있습니다. 개발 기간이 너무 촉박하다면 이 코드를 사용해보세요. AlertDialog.Builder(context) .setTitle("로그인 해볼까요?") .setMessage("로그인 후 사용할 수 있는 기능입니다.") .setPositiveButton("로그인 하기", null) .setNegativeButton("x") { ..