Skip to content

식품의약안전처 조리식품 레시피 DB OpenAPI를 활용하여, 다양한 카테고리의 음식 레시피를 제공하는 앱입니다.

Notifications You must be signed in to change notification settings

DDH-975/Chef-s-Note

Repository files navigation

Project Name: Chef's-Note

설명

이 프로젝트는 식품의약안전처 공공데이터활용서비스조리식품 레시피 DB OpenAPI를 활용하여, 다양한 카테고리의 음식 레시피와 레시피 사진을 제공하는 앱입니다. 사용자는 밥, 국, 반찬, 고급 음식, 디저트 등의 카테고리에서 다양한 레시피를 손쉽게 찾고, 관련 이미지를 확인할 수 있습니다.

※ 본 프로젝트의 카테고리 화면에서 사용된 모든 이미지는 뤼튼AI 서비스를 이용하여 직접 생성하였습니다.

기능

  • 음식 레시피 조회: 밥, 국, 반찬, 고급 음식, 디저트 카테고리의 레시피를 검색하여 조회 가능
  • 레시피 이미지 제공: 각 레시피에 대한 관련 이미지 제공
  • 검색 기능: 음식명으로 레시피 검색 기능 제공
  • 즐겨찾기 기능: 마음에 드는 레시피를 즐겨찾기에 추가하여, 나중에 쉽게 다시 확인 가능

기술 스택

  • 언어 (Languages): Java, XML
  • 도구 (Tools): Android Studio
  • 라이브러리 (Libraries): Android SDK, Glide, Retrofit, Room
  • 기술 적용:
    • Retrofit: 식품의약안전처 공공데이터활용서비스의 조리식품 레시피 DB OpenAPI와의 통신을 통해 다양한 카테고리의 레시피 및 관련 이미지 조회.
    • Glide: 레시피 이미지 로딩 및 표시 최적화, 빠르고 효율적인 이미지 처리.
    • Room: 로컬 데이터베이스 사용, 즐겨찾기 레시피 저장 및 관리.
    • RecyclerView: 유연하고 효율적인 리스트 구현, 레시피 목록 및 즐겨찾기 목록 표시.



프로젝트 진행 중 새롭게 배운 것

Room DB에 리스트 데이터를 저장할 때의 JSON ↔ ArrayList 변환

Room DB는 ArrayList과 같은 복합 데이터 타입을 직접 저장할 수 없기 때문에, @TypeConverter를 사용하여 리스트를 JSON 문자열로 변환해 저장하고, 다시 불러올 때는 JSON을 리스트로 역변환해 사용합니다. 이를 위해 Converters 클래스를 만들어 Gson으로 변환 로직을 정의했으며, 복잡한 데이터 구조를 효과적으로 관리하는 데 유용합니다.

Converters 클래스

public class Converters {
    private static Gson gson = new Gson();

    @TypeConverter
    public static String fromList(ArrayList<String> list) {
        return gson.toJson(list);  // 리스트 → JSON 문자열 변환
    }

    @TypeConverter
    public static ArrayList<String> toList(String json) {
        Type listType = new TypeToken<ArrayList<String>>() {}.getType();
        return gson.fromJson(json, listType);  // JSON 문자열 → 리스트 변환
    }
}



Screenshots

메인화면

App

  • , , 반찬, 고급 음식, 디저트의 요리 카테고리를 제공합니다.
    또한, 원하는 음식을 검색하여 레시피를 쉽게 찾아볼 수도 있습니다.

요리 리스트 및 레시피 화면

category recipe App


즐겨찾기 기능

home App
● 즐겨찾기 기능을 통해 마음에 드는 레시피를 빠르게 확인할 수 있습니다.

About

식품의약안전처 조리식품 레시피 DB OpenAPI를 활용하여, 다양한 카테고리의 음식 레시피를 제공하는 앱입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages