easyhooon / KakaoMediaSearchApp2

Kakao Media(Blog, Video, Image) API 를 이용한 미디어 검색앱

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

카카오 API를 사용한 블로그/동영상/사진 검색 앱

Kotlin Gradle Android Studio minSdkVersion targetSdkVersion

How to build

AGP 버전 상, Android Studio Flamingo 버전 이상에서 Build가 가능합니다.

빌드 전, 'secrets.properties' 파일을 생성하여 다음과 같이 API KEY 값을 추가해야 합니다.

# secrets.properties

KAKAO_API_URL="https://dapi.kakao.com/"
KAKAO_API_KEY="KakaoAK {Kakao REST API KEY}

e.g.

# secrets.properties

KAKAO_API_URL="https://dapi.kakao.com/"
KAKAO_API_KEY="KakaoAK c9bf3b615072a170b64208b1eee62e0d"

ToDo

  • 멀티 모듈화
  • secrets.properties 파일을 통해 API KEY를 관리 (공개 Repository에는 이 파일을 포함하지 않음)
  • Ktor를 이용한 네트워크 환경 구축
  • Paging3 Library를 사용하여 미디어 검색 기능 구현
  • 기존의 뷰 시스템을 통해 미디어 검색 화면 구성(블로그/동영상/사진 API 를 시용하여 각각의 탭 내에서 검색 결과 리스트 조회)
  • Jetpack Compose를 사용하여 미디어 검색 화면 구성(블로그/동영상/사진 API 를 시용하여 각각의 탭 내에서 검색 결과 리스트 조회)
  • Paging3 Library LoadState 를 이용한 인터넷 에러 핸들링
  • 정렬 기능 구현 (최신순, 정확도순)
  • 기존의 뷰의 Theme 을 Compose Theme 으로 그대로 옮겨, 똑같은 UI 만들기
  • Convention Plugin 적용
  • 테스트 코드 작성

Features

동영상 검색 블로그, 사진 검색 검색 리스트 갱신, 다시 시도

Article

Jetpack Compose에서 Paging LoadStateFooter를 구현 하는 방법

Jetpack Compose 에서 TextField를 이용하여 자동 검색 기능 구현 하기 (기존 xml 에서의 방식과 비교) - 2

Jetpack Compose 에서 TextField를 이용하여 자동 검색 기능 구현 하기 (기존 xml 에서의 방식과 비교) - 1

Compose Navigation Argument 로 url 전달하기

Development

Environment

  • IDE : Android Studio Giraffe
  • JDK : Java 17을 실행할 수 있는 JDK
  • Kotlin Language : 1.9

Language

  • Kotlin

Libraries

  • Androidx

    • Activity & Activity Compose
    • AppCompat
    • Core
    • ConstraintLayout
    • Lifecycle & AAC ViewModel Compose
    • Material3
    • StartUp
    • Splash
    • Paging3 & Paging3 Compose
  • Kotlinx

    • Coroutines
    • Serialization
  • Dagger Hilt

  • Ktor

  • Timber

  • Coil & Coil Compose

Gradle Dependency

Architecture

Based on Google App Architecture similar to Clean Architecture

image image

Package Structure

├── app
│   └── application
├── build-logic
├── buildSrc
├── data
│   ├── datasource
│   ├── di
│   ├── mapper
│   ├── model
│   ├── paging
│   ├── repository
│   ├── paging
│   └── servce
├── domain
│   ├── entity
│   ├── repository
│   └── usecase
├── presentation
│   ├── ui
│   │   ├── compose
│   │   └── view
│   └── viewmodel
└── gradle
    └── libs.versions.toml

About

Kakao Media(Blog, Video, Image) API 를 이용한 미디어 검색앱


Languages

Language:Kotlin 100.0%