본문 바로가기

개인 프로젝트9

운동일지 App 문제 해결 #01 문제1. 백그라운드로 처음 갔을 때 알림이 바로 생성되지 않고 두번 정도 가야 생성이 되는 문제 문제2. 타이머를 일시 정지 시켰을 때 알림은 계속 시간이 가는 문제 문제1. 해결 서비스를 수명주기가 ON_STOP 될 때 실행했었는데, 시작 버튼을 눌렀을 때 서비스가 실행되도록 하였다. 문제 해결 이전 코드 @OnLifecycleEvent(Lifecycle.Event.ON_STOP) fun onAppBackgrounded() { val startIntent = Intent(requireActivity(), ForegroundService::class.java) startIntent.putExtra(COMMAND_ID, COMMAND_START) startIntent.putExtra(STARTED_TIME.. 2022. 2. 17.
운동일지 App 개발일기 #04 운동 기록 화면 운동 기록 추가 화면 운동 기록을 추가하면, 달력에 기록 수에 따른 Dot을 찍는다. 달력의 날짜를 클릭하면 그날의 기록을 화면에 표시하도록 하였다. 루틴 목록 루틴 진행 타이머 작동 루틴 시작하기 버튼을 누르면, 루틴 진행 화면으로 넘어간다. 루틴에 포함된 운동을 확인할 수 있고, 타이머를 통해 루틴을 진행한 시간을 확인할 수 있다. 완료 버튼을 누르면 운동 기록을 저장할 수 있다. 추후에 운동 기록에 운동 시간도 저장할 수 있도록 해야겠다. 운동 목록 운동 목록을 확인할 수 있고, 추가할 수 있다. 타이머 기능을 추가하면서 한 생각이, 백그라운드로 실행했을 때도 서비스를 이용, 알림으로 운동 진행 시간을 알 수 있으면 좋겠다고 생각하여 추가한 기능이다. 백그라운드로 처음 갔을 때 알림.. 2022. 2. 16.
[kotlin] 운동 일지 App 개발일지 #03 본격적으로 Room을 이용하여 삽입, 삭제, 수정을 적용시키고 있다. 1:N, M:N의 관계를 가진 Entity들을 삽입, 삭제, 조회 기능을 추가하였다. 현재 운동일지 App의 Entity Dialog 그램이다. 루틴, 운동 Entity와 루틴, 운동부위 Entity는 서로 M : N 의 관계를 가진다. 루틴이 삭제되어도 등록한 운동들은 삭제되지 않아야 하고, 운동 부위들도 삭제되지 않아야 하기 때문에 이런 관계를 가진다. 운동, 운동세트는 1:N의 관계를 가진다. 운동이 삭제되면, 운동세트도 사라진다. 한눈에 보기 쉽게 SQL WorkBench로 작성한 것이며, 실제 Room Database와 다르다. 운동 추가 화면 루틴에 운동이 추가된 화면 운동 CardView 클릭 운동 검색 창 체크된 운동이 .. 2022. 2. 4.
[Kotlin] 운동 일지 App 개발일지#02 운동 추가하기 화면을 만들었다. 기존에 등록해놓은 운동을 선택할 수도 있고, 운동 이름을 직접 입력하여 운동을 추가할수도 있다. Spinner로 보이는 항목들은 TextView인데, Spinner처럼 xml에서 style을 지정해준것이다. "운동을 선택하세요"라는 스피너를 누르면 나타나는 BottomSheet이다. 운동 이름을 입력하면 ListView에 등록한 Adpater의 filter로 운동을 검색할 수 있다. BottomSheet에 EditText를 넣으니, 키보드가 LIstView를 가리게 되어서 이 방법은 좋지 않은 방법 인 것같다. 스피너 밑에 화면을 띄우는 방식으로 변경하던지, keyborad의 크기만큼 위로 올려주는 방식을 택해야 할 것 같다. 세트 개수를 선택하세요 스피너를 누르면 나타나.. 2022. 1. 27.