Post

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.