안드로이드 스튜디오

안드로이드 할 줄 몰라도 Ai로 개발부터 배포까지 가능할까 1~6 - 중간 점검2, 개발 완료, 소스 코드, GitHub 주소

yangcotton 2026. 3. 30. 15:02

일단 개발은 완료 하였다.  Git에 업로드 해놓았다..!

그래서 소스는 블로그에는 안적을 예정이다.

https://github.com/YHB2an/MGCS.git

이거는 git 주소..!

 

## Android MGCS App - Development Context 

### 1. Project Overview

MGCS (Modified Glasgow Coma Scale) app for small animals.

Score:

* Motor (1~6)
* Brainstem (1~6)
* Consciousness (1~6)

Total:

* 3~8 → Grave
* 9~14 → Guarded
* 15~18 → Good

---

### 2. Tech Stack

* Kotlin
* ViewBinding
* Internal Storage (JSON)
* MPAndroidChart

---

### 3. Current Features 

🔹 Main Screen (Record 입력 화면)

점수 계산

Motor / Brainstem / Consciousness 선택 시 실시간 total 계산
total 범위에 따라 상태 표시:
3~8 → Grave
9~14 → Guarded
15~18 → Good
상태 텍스트 UI 하단에 표시 (진한 회색 한 줄)

입력 UI

RadioGroup 기반 점수 선택
선택된 항목:
Bold 처리
선택 상태 시각적으로 강조

데이터 저장

이름 + 점수 + 날짜 + chartType 포함하여 JSON 저장
내부 저장소 (mgcs_records.json) 사용

버튼 기능

Save → 현재 데이터 저장
Load → 전체 기록 불러오기 (리스트 화면 이동 or 표시)
Load Latest → 가장 최근 기록 불러와 UI 자동 세팅
🔹 Record List Screen

리스트 구성

RecyclerView 사용
최신순 정렬 (내림차순)
각 아이템:
이름
날짜
Total score
상태 (Grave / Guarded / Good)

데이터 관리

JSON → List 변환
리스트 → UI 바인딩 완료

삭제 기능

Swipe 삭제 (좌/우)
Snackbar Undo 지원
Long Click 삭제 지원 (확인 없이 즉시 or 확인 다이얼로그)

모드 분리

VIEW 모드
단순 조회
EDIT 모드
삭제/수정 가능

Chart 연결 기능

각 Record에 chartType 존재 (C1 ~ C5)
Chart 필터링 기준으로 사용
🔹 Charts Screen (대시보드)

구성

총 5개 Chart 카드 (C1 ~ C5)
각 카드:
Preview Chart 포함
클릭 시 GraphActivity 이동

Preview Chart

최근 10개 데이터 기준
간단한 LineChart 또는 PointChart 형태

네비게이션

카드 클릭 → chartType 전달
intent.putExtra("chartType", "chart1")
🔹 GraphActivity (핵심 기능 화면)

데이터 처리

Intent로 chartType 수신
JSON → GraphRecord 리스트 변환
해당 chartType 데이터만 필터링
최신순 정렬 후:
기본: 최근 10개 표시
스크롤 시 과거 데이터 로딩 (확장 구조)

그래프 UI

MPAndroidChart LineChart 사용
Line 제거 → Point Graph 형태

점 색상 규칙

3~8 → 빨강
9~14 → 회색
15~18 → 하늘색

인터랙션 (핵심 UX)

그래프 점 클릭 시:
해당 record highlight
상단: 이름 표시
하단: 점수 표시
리스트 클릭 시:
그래프 해당 point highlight

리스트 연동

하단 RecyclerView 존재
그래프 ↔ 리스트 양방향 동기화

Marker 기능

그래프 선택 시:
커스텀 MarkerView 표시
이름 / 점수 표시

예외 처리

데이터 없을 경우:
"No data" 텍스트 표시

#### Main Screen

* 점수 계산 (실시간)
* RadioGroup UI (선택 Bold)
* Save / Load / Load Latest

#### Record List

* RecyclerView
* 최신순 정렬
* Swipe delete + Undo
* Long click delete
* VIEW / EDIT 모드 분리
* Chart 컬럼 (C1~C5 선택 가능)

#### Charts Screen

* 5개 Chart 카드 (C1~C5)
* 각 카드 → GraphActivity 이동
* Preview chart는 최근 10개 기준

---

### 4. GraphActivity

#### 구조

* Intent로 chartType 전달받음
* 해당 chartType 데이터만 필터링
* 최근 10개만 표시
* 좌측으로 스크롤시 과거데이터 조회가능
* 그래프 marker 선택시 하단에 record랑 mapping ,  상단에 이름/하단에 점수 표시
* 하단에 record list 조회 

#### 기능

* MPAndroidChart LineChart 사용
* 선 제거 (point graph)
* 점 색상:

  * 3~8 → 빨강
  * 9~14 → 회색
  * 15~18 → 하늘색
* 그래프 선택 시 리스트 highlight
* 리스트 클릭 시 그래프 highlight
* 데이터 없을 경우 "No data" 표시

---

### 5. 데이터 구조

#### GraphRecord

```kotlin
data class GraphRecord(
    val name: String,
    val total: Int,
    val date: String,
    val chartType: String
)
```

---

### 6. JSON 저장/로드

* 파일명: "mgcs_records.json"
* 내부 저장소 사용
* GraphActivity에서 JSON → GraphRecord 변환 완료

예시 JSON:

```json
[
  {
    "name": "Milo",
    "motor": 6,
    "brainstem": 6,
    "consciousness": 6,
    "total": 18,
    "date": "03-08 22:10",
    "chartType": "chart1"
  }
]