안드로이드

ChatGPT api를 활용한 헬스 관리 어플

channy-jin 2025. 1. 5. 15:19
반응형

 

 

 

1. 주요 기능

1. 데이터 저장

 

2.체크박스 기능

 

3. 달력 사용

 

4. chat-GPT api 상담 서비스

 

2. 구조 (XML 파일)

 

   1. activity_main.xml

LinearLayout 으로 정렬되어 있고, 메인 액티비티로 위에 앱바에는 목록과 로고가 있다.

그 아래에는 오늘의 목표 텍스트박스와 배경이미지를 넣었고, 그 아래의 +,-버튼을 누르게 되면 목표를 추가 할 수 있도록 자바 파일에 정의했다.

 

   2. activity_calendar.xml

가장위에는 toolbarxml파일을 불러와 앱바를 넣었고, 캘린더가 있고, 그 아래에는 캘린더의 날짜를 불러온다, 그 아래에는 날짜에 기입된 일정들을 출력한다. 데이터가 있으면 수정, 삭제 버튼이 뜨고, 데이터가 없다면 저장 버튼이 보인다.

 

   3. activity_diet_management.xml

가장위에는 toolbarxml파일을 불러와 앱바를 넣었고, 식단관리 액티비티로 마찬가지로 +,-버튼을 사용하여 시간, 식단, 양을 입력하여 체크박스로 달성을 관리할 수 있다.

 

   4. activity_exercise_management.xml

가장위에는 toolbarxml파일을 불러와 앱바를 넣었고, 운동관리 액티비티로, 마찬가지로 +,-버튼을 사용하여 운동, 세트수, 횟수를 입력하여 체크박스로 운동 달성을 관리할 수 있다.

 

   5. activity_consultation.xml

가장위에는 toolbarxml파일을 불러와 앱바를 넣었고, 가운데 공간에는 항목을 고르고 추천 버튼을 누를 시 chat-GPT의 추천 답변이 보인다.

 

   6. toolbar.xml

앱바를 정의해둔 것으로 가져다 쓰인다.

 

3. 구조 (JAVA 파일)

 

   1. MainActivity.java

메인 화면의 자바 파일로 일단 왼쪽 상단의 목록 버튼을 누르면 4가지 목록이 보이도록 리스트를 만들어 주었고, 누르면 보이게, 다시 누르면 보이지 않도록 구현하였다, 또한 +,-버튼을 누르면 오늘의 목표를 추가addNewGoal() 하고, 뒤에 있는 항목을 삭제removeLastGoal() 할 수 있도록 구현하였다. 또한 saveGoals()로 데이터를 저장할 수 있도록 하였고, 저장된 데이터를 loadGoals()로 불러오게 하였다.

 

   2. Calender.java

두번째 액티비티의 자바 파일로 캘린더의 날짜를 불러와 텍스트 박스로 년, , 일로 나누어 출력하게 하였고, 해당 날짜에 일정을 기입하여 데이터가 저장되어 보일 수 있도록 구현하였다. 또한, 이미 데이터가 있으면 수정, 삭제 버튼이 보이도록 하였다.

또한 데이터가 저장되도록 만들었다.

 

   3. DietManagementActivity.java

일단 +,-버튼을 눌러 식단을 추가, 수정, 삭제를 할 수 있고, 체크박스도 구현을 하였다. save할 때 데이터를 저장시키고 remove를 하면 저장되었던 것이 삭제시키고 저장을 한다. 데이터가 저장되기 때문에 프로그램이 종료되어도 유지된다.

 

   4. ExerciseManagementActivity.java

일단 +,-버튼을 눌러 운동, 세트, 횟수를 추가, 수정, 삭제를 할 수 있고, 체크박스도 구현을 하였다. 물론 save할 때 데이터를 저장시키고 remove를 하면 저장되었던 것이 삭제시키고 저장을 한다. 데이터를 로드할 때는 loadExercises()함수로 로드를 시킨다. 데이터가 저장되기 때문에 프로그램이 종료되어도 유지된다.

 

   5. ConsultationActivity.java + network 패키지 + model 패키지

network는 주로 GPT api를 연결시켜 받아오는 역할을 하고, 그 받아온 메시지를 model 패키지에서 처리하도록 구현하였다. ConsultationActivity.java에서는 전체적으로 api를 연결시킬 때 필요한 api key를 넘겨주어 연결을 시키고 받아온 값을 화면에 띄우도록 해두었다. 또한 항목을 고를 수 있도록 구현하였다.

 

 

4.  어플 화면 이미지

   1. 메인 화면

오늘의 대표적인 목표를 정해두고 추가하고 삭제하며 목표를 달성 할때마다 체크박스에 표시하도록 해두었고, 데이터가 저장되도록 구현.

 

   2. 위에 메뉴목록 버튼을 누르면 메뉴가 나열된다.

 

   3. 캘린더 액티비티

날짜마다 눌러서 일정을 기록할 수 있다.

 

   4. 내용에 일정을 치고 저장버튼을 누르면 ->

 

   5. 데이터가 저장이 된다.

 

   6. 식단관리 액티비티

오늘의 식단을 시간, 식단, g수까지 기입하며 추가 삭제하여 식단관리를 할 수 있고, 이루면 체크박스에 표시 할 수도 있다.

 

   7. 운동 관리 액티비티

식단관리와 비슷하고, 운동종목, 세트수, 횟수를 추가 삭제하여 관리할 수 있다.

 

   8. 운동 상담 액티비티(Chat-GPT api사용)

목록에 있는 부위를 선택하고 운동 추천을 누르면 chatGPT 에게 질문이 들어가 GPT가 해당운동 부위 추천을 해주게된다.

항상 다른 답을 해준다.

 

   9. 운동 상담 액티비티(Chat-GPT api사용) - 질문 화면

GPT에게 어깨운동을 물어본 화면이다.

 

 

5. 어플 코드 깃허브 링크

ChannyJIN/HealthManagerApp

반응형