Skip to content

[7주차 미션] Database #38

@eeeeeaaan

Description

@eeeeeaaan

✨ 이슈 내용

이슈 개요를 입력해주세요.

  • 강의 - 간단 실습의 코드 직접 작성하고 실습 진행하기
  • 💪🏻 강의에서 보여준 기능들 전부 구현
    • [MainActivity] DB에 더미데이터 insert

    • [MainActivity] sharedPreference에 'songId' (primary key) 저장

    • [MainActivity] 저장된 'songId' (primary key) 값으로 song 초기화

    • [SongActivity] DB 데이터 songs에 Add

    • [SongActivity] 저장 되어있는 'songId' (primary key)으로 songs와 비교하여 nowPos 값 찾기

    • [SongActivity] 다음곡 버튼 누르면 다음곡 이동,이전 곡 버튼 누르면 이전곡으로 이동 구현

      🚩 mediaPlayer 리소스 해제 및 thread 재시작을 무조건 해야합니다
    • [SongActivity] 하트 누르면 songs[nowPos],db 업데이트

    • [보관함 프래그먼트] 좋아요 구현

      • DB의 클릭한 song의 isLike 업데이트
      • true라면 보관함에 곡이 추가되도록 구현
    • [Main Activity] 다음곡 버튼 누르면 다음곡 이동, 이전 곡 버튼 누르면 이전곡으로 이동

      • 다음곡, 이전곡 노래 이동 및 재생까지 구현 (전달코드 및 실습 참고)
      • MainActivity 에서도 'song' → 'songs'로 변경
      • DB 데이터 songs에 Add
      • 'songId' (primary key)를 sharedPreference에 저장해서 MainActivity와 SongActivity 노래 동기화
      • 다음곡 버튼, 이전곡 버튼 기능 구현 → 기존 실습에서 SongActivity에서 진행한 다음 곡으로 이동, 이전 곡으로 이동 참고
  • Album DB 구현하고 적용하기
    • 기존 AlbumDAO와 Album data class를 만들기
    • 위의 이미지의 Album Table과 동일하게 구현해 주시면 됩니다.
    • 강의에서 진행한 Song Data Class에 albumIdx 값을 추가
    • albumIdx에 Album Table의 Primary Key값(Album Table의 id) 할당 (구분해줄 값이기 때문에 autogenerate X)
    • 해당 albumIdx로 각 song이 어떤 Album의 노래인지 구분 가능
    • HomeFragment에서 띄우는 Album들을 DB에 저장하고 가져오기
  • [Song Activity] 좋아요, 좋아요 취소 누를때 실제 플로앱 처럼 Toast message 커스텀
    • Dialog, Snack Bar, Toast 커스텀 키워드로 검색
  • [홈프래그먼트] 앨범 재생 클릭
    • 앨범 수록곡 전체 재생
    • 저번 주차에 진행한 과제에 RoomDB 적용해 보기 (제공 코드 참고‼️)
      • 리사이클러뷰를 적용했던 아래의 화면에 RoomDB를 적용해 주시면 됩니다.
    • 스터디에서 코드리뷰 해보기
  • [보관함 프래그먼트] 보관함 전체 선택 후 좋아요 취소
    • 전체선택 클릭 → 기존 BottomNavigationView위로 새로운 BottomSheetDialog 노출
    • 기존 앱의 맨 오른쪽 '저장하기' 이미지 '삭제' 이미지로 변경
    • 싫어요 클릭 시 데이터 전체 리사이클러뷰에서 삭제 및 DB isLike = false 업데이트
      • BottomSheetDialog를 함께 숨기기
  • RoomDB의 코드를 주석처리 한 뒤 파이어베이스의 Realtime Database를 활용하여 Flo의 좋아요 버튼을 누른다면 파이어베이스에 저장이 되고 저장한 데이터를 가져올 수 있도록 구현하기 (RoomDB를 사용하여 구현했던 기능과 같은 기능을 하도록 만들어주시면 됩니다.)
    • 이미지를 제외한 내용을 저장해 주시면 됩니다. (Storage이미지까지 저장할 수 있다면 더 좋습니다!)
    • 참고자료의 가장 마지막 유튜브 재생목록 참고

📌 참고 사항

추가적인 설명이 필요한 경우 입력해주세요.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions