일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 디자인패턴
- mockito
- 책
- ReactiveProgramming
- g 단위테스트
- android
- 알고리즘
- 스레드
- 병렬프로그래밍
- 코루틴
- 안드로이드스튜디오
- Kotlin
- 자바
- k8s
- 병럴프로그래밍
- 회고
- viewmodel
- 테스트
- Coroutine
- 커스텀상태
- 글또
- Gradle
- 안드로이드강좌
- theming
- 안드로이드
- 코틀린
- kotlin강좌
- Rxjava
- 알게되는
- Compose
- Today
- Total
목록분류 전체보기 (154)
선생님, 개발을 잘하고 싶어요.
우선 참조 링크 https://developer.android.com/topic/libraries/architecture/navigation/navigation-implementing#java Navigation Principles- 앱은 고정된 시작 지점을 가진다.- 네비게이션의 상태들은 스택처럼 관리된다.- 업 버튼으론 절대 앱을 나가지 않는다.- 백 버튼으론 절대 앱을 나가지 않는다.- 여러 방향으로 깊게 연결해서 도착한 곳이 같은 목적지라면, 똑같은 네비게이션 스택을 가진다. Navigation Architecture Component 를 사용한 네비게이션 구현 프로젝트 환경 설정 (이게 제일 중요) 0. Refactor > Migrate to AnroidX 로 리펙토링 하기(중요중요! 안됬다 싶..
항상 블루투스를 스캐닝 하는 어플리케이션을 만들 일이 생겼다. 필요한 사항으론 1. 블루투스를 "항상" 스캐닝 한다. 2. 특정 블루투스가 감지되는지 안되는지 여부를 판단해 lost / found를 설정한다. 이를 위해 프로그램 개발 방향은 0. 블루투스 권한 및 위치 권한 확보 1. "항상" 스캐닝 할 수 있도록 service 를 구성한다. 2. service 가 꺼지지 않도록 한다. 3. lost / found 상태를 타이머를 통해 설정한다. 0.메니페스트에 권한 설정을 해주고 123cs onCreate 시에 블루투스 확인과 위치권한 확인을 동적으로 수행해주자. 1234567891011121314151617181920212223242526final BluetoothManager bluetoothMan..
1. 잠금화면 구현 1.1 빈 액티비티의 잠금화면 띄우기 1.2 커스텀 잠금화면 액티비티 상에 잠금 해제 로직 추가 1.3 APP의 데이터를 화면에 띄워주고 정답 맞출 경우 1.2 적용 1.4 오답일 경우 화면 표시 개발 1.5 커스텀 잠금화면 액티비티에 자기가 원하는 이미지 띄우기 개발 1.6 잠금화면 풀때 드래그로 yes / no로 이동되는 기능 2. APP 실행시 화면(메인 앱 화면) 개발 2.1 메인 화면 개발 (OX퀴즈, 틀린부분찾기, 설정 기능 접근) 2.2 OX 퀴즈(오답노트) 화면 개발 2.3 틀린부분 찾기 개발3. 설정 페이지 개발 3.1 설정 메인 페이지 개발 (퀴즈 설정, 스킨 설정, 글꼴 설정 기능 접근) 3.2 잠금화면에 Display할 퀴즈 설정 개발 3.3 잠금화면 액티비티의 ..
잠금화면을 구현했는데 통화가 오는 경우에도 커스텀 잠금화면이 화면 위를 덮어서 통화가 불편했다. (잠금화면에 문제를 틀리면 일정시간 강제 잠금이라 생각보다 매우 화나더라.) 따라서 통화중인지 아닌지 여부를 판단하여 통화가 온 상태라면 잠금화면을 띄우지 않도록 구현하였다. 1. 전화상태를 체크하기 위해서 READ_PHONE_STATE 권한 필요 - 2. 전화상태를 읽는 리스너 등록1234567891011private var mIsPhoneIdle = trueprivate val phoneListener = object : PhoneStateListener() { override fun onCallStateChanged(state: Int, incomingNumber: String) { when (state..