-
책의 난이도가 자신과 맞지 않는 사용자
-
책의 특정 부분이 이해되지 않는 사용자
-
책에 대한 자신의 생각을 다른 사람들과 나누고 싶은 사용자
-
한 책을 같이 스터디 할 수 있는 환경이 필요한 사용자
이런 사용자들이 모여 책의 특정 부분에 대해 독서 토론 혹은 질문을 채팅으로 나눌 수 있는 플랫폼
- Coroutine을 이용한 비동기작업 (도전)
- 적절한 애니메이션 UI 제작 (도전)
- MVVM 모델 (도전)
- 기기 OS버전별 분기 작업 (도전)
- Clean한 Code (도전)
- 오직 터미널을 이용한 Git 사용 (도전)
- Figma를 이용한 앱 디자인 (도전)
- 도전했다가 디자이너님 영입 후 디자인 수정
- feat (feature) : 새로운 기능에 대한 커밋
- fix (bug fix) : 버그 수정에 대한 커밋
- config (configuration) : 설정 정보에 대한 커밋
- docs (documentation) : 문서 수정에 대한 커밋
- style (formatting, missing semi colons, …) : 코드 스타일 혹은 포맷 등에 관한 커밋
- refactor : 코드 리팩토링에 대한 커밋
- test (when adding missing tests) : 테스트 코드 수정에 대한 커밋
- chore (maintain) : 그 외 자잘한 수정에 대한 커밋
구분 | Tech |
---|---|
Language | Kotlin |
Architecture | MVVM, Clean-Architecture, Multi-Module |
Network | Retrofit2 |
DataBase | Room, DataStore |
Asynchronous | Coroutine, Flow |
DI | Dagger-Hilt |
Serialization | Kotlinx-Serialization |
Build | Version Catalog, Precompiled-Script-Plugin |
ETC | OAuth, OIDC, FCM, Glide, Stomp, WebSocket, Krossbow |
Detail (크게보기)
- WebSocket을 이용한 다수 사용자가 참여할 수 있는 오픈 채팅방
- 소켓 끊김 사이에 발생한 채팅방 변경사항 및 채팅 동기화 기능
- 전송 실패한 채팅 자동 재전송 기능
- 방장/ 부방장 권한 위임 및 박탈 기능
- 유저 강퇴 기능
- ID 매핑 방식을 통한 서비스 내 유저 닉네임 변경 시 모든 메시지에 실시간 반영
- RoomDB를 이용한 채팅방 및 채팅 Offline Data 구성
- 채팅 내 상하 방향 Paging 기능
- 주요했던 채팅을 이미지로 저장할 수 있는 채팅 캡처 기능
- FCM을 이용한 채팅 Notification
- 단일 기기만 허용하는 서비스 구조
- FCM을 이용한 강제 로그아웃기능
- OAuth2.0를 이용한 Google/ Kakao 소셜로그인
- JWT 토큰을 이용한 유저 인가 (Authorization)
- OIDC를 통해 가져온 유저정보를 바탕으로 만든 서비스 자체 JWT 토큰
- OkHttp3의 Http Interceptor를 이용한 토큰 자동 갱신
- KeyStore에 저장된 Key를 이용한 토큰 대칭키 암호화
- 도서, 채팅방 검색 기능
- 도서의 독서상태를 기억할 수 있는 서재 기능
- ViewPager2를 이용한 독서예정, 독서중, 독서완료 각 페이지 구성
- Coroutine을 활용한 LongClick Swipe Animation
- BottomSheet를 이용한 도서의 읽고 있던 페이지를 기록할 수 있는 책갈피 기능
- 도서 별점 등록 및 독후감 기능
- 독서 중에 생겼던 고민을 기록할 수 있는 고민기록 기능
- ItemTouchHelper를 이용한 Item Swipe Animation
- 서버 점검 시 Remote-Config를 이용한 일시적 서비스 접속 제한 기능
로그인
카카오 로그인 | 구글 로그인 |
---|---|
회원가입
프로필 설정 | 닉네임 중복 체크 | 이미지 선택 | 독서 취향 선택 |
---|---|---|---|
메인 화면
화면 |
---|
서재 [독서 예정]
[독서예정] 삭제 | [독서중]으로 이동 |
---|---|
서재[독서 중]
책갈피 | [독서중] 삭제 | [독서완료]로 이동 | [고민기록]으로 이동 |
---|---|---|---|
서재[독서 완료]
[독서 완료] 삭제 | [고민기록]으로 이동 | [독후감]으로 이동 (작성된 독후감 X) |
[독후감]으로 이동 (작성된 독후감 O) |
---|---|---|---|
독후감
작성 | 작성 중 이탈 | 수정 | 삭제 |
---|---|---|---|
고민기록[폴더]
폴더 추가 | 폴더 삭제 | 폴더명 수정 |
---|---|---|
고민기록
고민 기록 추가 | 고민 기록 삭제 | 고민 기록 수정 |
---|---|---|
검색
검색 기록 | 종합 검색 결과 |
---|---|
검색[도서]
도서 검색 결과 | 독서 예정 | 독서 중 | 독서 완료 |
---|---|---|---|
검색[채팅방]
채팅 검색 결과 | 채팅방 입장 |
---|---|
채팅방 목록
페이징 | 꾹누르기 | 스와이프 |
---|---|---|
채팅방 생성
기본 | 이미지 선택 | 도서 선택 |
---|---|---|
채팅방
기본 | 하단 페이징 | 상단 페이징 |
---|---|---|
채팅방 설정
채팅방 세팅 | 방장 변경 | 부방장 변경 |
---|---|---|
마이페이지
프로필 변경 | 앱 설정 |
---|---|
App Design (Figma)
이전 디자인 (Figma)