My.solved
My.solved
보다 편리한 PS/CP를 위한 앱입니다.
solved.ac 프로필 정보를 앱에서 확인할 수 있습니다.
대회 일정을 불러오고, 푸시 알림 및 캘린더 등록 기능을 지원합니다.
개발 동기
solved.ac의 문제 풀이 스트릭을 유지하기 위해, 매일같이 프로필을 확인한 경험이 있습니다.
해당 정보를 앱에서 한눈에 보고 스트릭 알림을 받을 수 있으면 좋겠다는 생각에서 시작했습니다.
주요 기능
- solved.ac 프로필 확인
- 문제 검색 기능
- 정시 스트릭 알림
- 대회 일정 확인 및 푸시 알림, 캘린더 등록
- 크로스 플랫폼 지원 (iOS, Android, Web)
사용 기술
- Flutter
맡은 역할
- Flutter 앱 개발
- solved.ac API 리버스 엔지니어링
- NestJS 서버 개발
- 대회 이벤트 파싱 및 객체 모델링
- 안드로이드 및 웹 버전 배포
겪은 어려움
- 내부용 solved.ac API의 스펙 파악 및 변경시 대응
- 로컬 시간대/푸시 알림 설정 등 플랫폼별 차이 처리
- 로그인 기능 구현
- solved.ac에서는 쿠키를 통해 인증함
- HttpOnly, Secure 옵션이 있어 JS로는 접근 불가
- Flutter WebView 등으로 시도해보았으나, 접근 불가
배운 점
- Flutter에서의 상태 관리와 아키텍처 구성
- API 반환 결과로부터의 데이터 모델링 및 변환
- 크로스 플랫폼 앱 배포 및 디버깅 경험
관련 링크
This post is licensed under CC BY 4.0 by the author.