TIL : 2023-10-04

이슬비·2023년 10월 4일
0

TIL

목록 보기
58/88

TIL : 스파르타코딩 Android 과정 7기

주의점

  • 매일 : TIL : today I learned 작성하기
  • github에 issue 꼼꼼히 쓰기
  • 주석 잘 적어 넣기

학습 목적 :

  1. Android 입문 학습에 이어 드디어 숙련주차가 시작됩니다. 2주동안 Android 앱개발 입문 학습을 바탕으로 개인과제와 팀 프로젝트를 완료함으로써 우리는 이제 막 숙련 학습을 위한 첫 허들을 넘었습니다. 든든한 기초 체력을 이용해서 앱개발 숙련주차도 섭렵해보도록 합시다!
  2. 앱개발 과정은 총 3가지(입문/숙련/심화)로 구성되어 있습니다. 그 중 우리는 이제 절반 왔습니다. 숙련 주차를 시작하게 되는 것이에요!
  3. 앱개발 숙련 과정을 통해서는 Android의 뷰바인딩과 어댑터뷰, 프래그먼트 등에 대해 배우게 됩니다.
  4. 숙련 과정에서 프래그먼트와 액티비티의 차이와 생명주기를 이해하고 다뤄보며 지식과 경험을 쌓습니다.

학습 목표 :

  • 뷰바인딩에 대해 이해하고 findViewById와의 차이점을 설명할 수 있습니다.
  • 어댑터 뷰의 기본 개념 및 종류를 이해하고 리스트 뷰와 그리드 뷰의 설정 방법을 이해한다.
  • 커스텀 항목 뷰를 정의하는 방법을 이해하고 RecyclerView를 사용하는 방법을 이해한다.
  • 프래그먼트의 기본개념 및 프래그먼트 생명주기를 이해한다.
  • 태블릿용 및 스마트폰용 디바이스에서 프래그먼트를 재 사용할 수 있는 방법을 실습한다.
  • 다이얼로그가 무엇인지 알고 구조에 대해 이해했습니다.
  • 알림을 생성하고 중요도 순서를 이해했습니다

오늘 계획 :

  • 오전
    • 09:00 ~ 10:10 : 팀 회의 & 오늘 계획 세우기
      • 오늘 계획 (Task)
        • 10시 : 팀 회의
        • 팀 프로젝트
        • 후발대 과제
        • 19시 : 마무리 회고 진행
        • TIL 작성하기
    • 10:10 ~ 11:00 : 팀 프로젝트
      • data class 수정
      • database 오류 고치기
      • 버튼 클릭 이벤트 수정
    • 11:00 ~ 12:00 : 후발대 과제
      • 동기/비동기
  • 집중 코딩
    • 13:00 ~ 18:00 : 팀 프로젝트
      • Room 사용법 익히기
      • 버튼 클릭 이벤트 수정
      • share기능 추가
      • api-key 숨기기
  • 저녁
    • 19:00 ~ 19:30 : 마무리 회고 진행
      • 팀 회의 : 마무리 회고 진행
    • 19:30 ~ 21:00 : TIL 작성하기
      • TIL 작성하기

오류 :

[Error] cannot find implementation for ~Impl does not exist

cannot resolve symbol ~ 에러 해결하기

사용 기능 :

[Kotlin] 안드로이드스튜디오 Fragment에서 Fragment 복합 트랜지션 (여러 애니메이션 동시 적용)

Kotlin 이슈 7 Room 사용하여 안드로이드 로컬 db 시작하기

Room @PrimaryKey autoGenerate

팀(or 개인) 프로젝트 :

심화과정 팀 프로젝트

https://github.com/Team18-T-World/YourMediaApp_18

  • 효율적인 Fragment UI 관리
    • Fragment 관리 위젯 선택 :
      • Navigation Component : Fragment 간의 전환, 데이터 전달, 반환 값 관리 등을 매우 단순화하고 시각적으로 제공
      • ViewPager2 : fragment들을 수평 혹은 수직으로 스와이프하여 전환하는 UI 패턴을 구현할 수 있게 해주는 위젯
      • BottomNavigationView or TabLayout : 주로 하단 탭 혹은 상단 탭을 통해 여러 Fragment 간의 빠른 전환이 필요할 때 사용
  • Retrofit을 활용한 YouTube API 데이터 연동
    • API key값 받기
    • API key값 안드로이드 앱 내에 안전하게 저장
    • YouTube Data API v3를 이용하여 필요한 비디오 정보를 앱 내에서 요청
    • 받아온 비디오 데이터는 앱 내 UI 요소에 동적으로 출력
  • 홈화면 (HomeFragment)
    • Most Popular Videos, Category Videos, Category Channels 목록을 스크롤이 가능한 RecyclerView 형태로 나열하여 출력
      • Most Popular Videos 목록 구현
        • YouTube의 현재 Trend 비디오 목록을 출력하세요.
        • API 활용: videos 엔드 포인트에 chart=mostPopular 파라미터를 사용하여 최신 인기 비디오 목록을 획득하기
      • Category Videos 목록
        1. 비디오 카테고리 조회
          • YouTube에서 제공하는 다양한 비디오 카테고리 조회
          • API 연동: videoCategories 엔드 포인트를 사용하여 원하는 국가의 비디오 카테고리 목록을 가져와 참조
        2. 카테고리 별 비디오 목록 조회
          • 특정 카테고리에 속하는 인기 비디오 목록을 조회
          • API 연동: videos 엔드 포인트에 videoCategoryId 파라미터를 활용하여 해당 카테고리의 가장 인기 있는(chart=mostPopular) 비디오 목록을 가져오세요.
      • Category Channels 목록
        • 특정 카테고리에 속하는 비디오의 각 채널들의 정보를 조회해 보세요.
        • API 연동: channels 엔드 포인트를 활용하고, id 파라미터에 채널 ID 값을 넣어 해당 채널의 정보를 가져오세요.
        • 가져온 채널 정보 중 snippet 부분을 활용하여, 채널의 기본 정보와 대표 이미지를 정확히 표시하십시오. API를 사용할 때 part 파라미터에 snippet 값을 넣어 주어야 해요.
  • 비디오 검색 (SearchFragment)
    • 사용자가 원하는 비디오를 쉽게 검색하고 결과를 빠르게 확인할 수 있는 기능을 제공하기
    • 상단에는 검색을 위한 Search EditText를 배치하고, 그 아래에 검색 결과를 출력할 RecyclerView를 배치하기
    • API 연동: YouTube Data API v3의 search 엔드 포인트를 활용하여, 검색 쿼리 기반으로 비디오 정보를 가져오기
    • 오류 및 예외 처리: 네트워크 오류, API 호출 제한, 검색 결과 없음 등의 예외 상황을 고려하여 사용자에게 적절한 메시지를 표시
  • 상세 정보 (VideoDetailFragment or VideoDetailAcitvity)
    • 각 비디오 아이템 선택시 Detail로 이동하여 선택된 비디오의 상세 정보를 제공
    • "좋아요" 버튼 추가: 비디오 상세 정보 아래에 "좋아요" 버튼을 추가하세요. 사용자가 버튼을 클릭하면 해당 비디오 정보가 내부 (예: Room or SharedPreference)에 저장
    • My Video 저장: "좋아요"를 누른 비디오 정보는 My Videos에서 조회 가능해야 합니다. 내부(예: Room or SharedPreference)에서 "좋아요"를 누른 비디오 목록을 가져와 출력
    • Detail page 시작과 종료시 특별한 Effect를 추가
  • 마이 페이지 (MyVideoFragment)
    • 사용자의 개인 정보 및 사용자가 ‘좋아요’를 누른 비디오 목록을 보여주는 기능 제공
    • 사용자의 프로필 사진, 이름 등의 개인 정보를 상단에 표시
    • ‘좋아요’를 누른 비디오 목록은 RecyclerView를 사용해 아래쪽에 목록 형태로 출력
    • "좋아요" 버튼을 통해 추가된 비디오는 내부 (예: Room or SharedPreference)에 저장되어야 하며, MyVideoFragment에서는 이 정보를 가져와서 표시

아쉬운 점 or 앞으로의 계획 :

  • 심화 : 팀프로젝트 작성
profile
개발꿈나무

0개의 댓글