시험관
Examer는 개인의 듣기 능력을 평가하고 영어로 대화를 이해하는 테스트를 수행하는 데 사용되는 Android 앱입니다. 이 앱을 사용하려면 최신 버전의 Android Studio Arctic Fox를 사용해야합니다.
메모
앱은 작동하지만이 프로젝트의 개발은 영구적으로 중지되었습니다. 이 프로젝트의 개발을 계속할 의도는 없습니다. 구현 된 기능은 작동하지만 버그는 존재해야합니다. 이 앱은 대부분의 예외, 특히 네트워크와 관련된 예외를 처리하지 않습니다. FCM (Firebase Cloud Messaging)은 앱에서 사용되지만 토큰은 기록되어 있으며 어디에도 저장되지 않습니다.
목차
- 데모
- 스크린 샷
- 주목할만한 기능
- 색 구성표
- 기술 스택
- 소스 코드 및 아키텍처
데모
Examer-Demo.mp4
스크린 샷

주목할만한 기능
- 프랑스어에 대한 실험적 지원.
- 장치 설정에 따라 12 시간 및 24 시간 시간 형식을 모두 지원합니다.
- 날짜/시간 또는 시간대가 수동으로 설정된 경우 사용자는 앱을 사용할 수 없습니다.
색 구성표
이 앱에 사용 된 컬러 팔레트와 타이포그래피는 전적으로 Google에서 MATEDEATED 앱 중 하나 인 Reply App의 사양을 기반으로합니다.

기술 스택
- Kotlin에 완전히 작성되었습니다.
- 수동 의존성 주입.
- Jetpack은 UI 구축을위한 Compose입니다.
- 스레딩을위한 코 틀린 코 루틴.
- 로깅을위한 목재.
- 사용자 계정 생성 및 인증을위한 Firebase 인증.
- 데이터 저장을위한 Firebase Cloud Firestore.
- 오디오 파일 및 이미지 저장을위한 Firebase 스토리지.
- 이미지 로딩 및 캐싱 용 코일 (Compose).
- 창문 삽입 및 호출기, 호출기 인디네이터, Swiperefresh, 자리 표시자를위한 반주 도서관.
- 지속적인 배경 작업을위한 WorkManager.
소스 코드 및 아키텍처
- 수명주기 및 뷰 모델과 같은 아키텍처 구성 요소가 사용됩니다.
- MVVM 아키텍처가 사용됩니다.
- 소스 코드는 Kotlin 코딩 규칙을 준수합니다.
- 의존성 주입은 수동으로 수행됩니다.
- 재료 설계 색상 시스템 사양은 UI 구성 요소에 색상을 할당하는 데 사용됩니다.
- 커밋 메시지는 커밋 메시지에 대한 각도 사양을 따릅니다.
- 지속적인 통합 (CI)을위한 Github 조치.