App 개발 일지/Nutri Capture 41

Nutri Capture 프론트엔드 - NutrientScreen의 무한 스크롤

#1 깨알 변경 - SnapshotStateList로 마이그레이션#1-1 NutrientScreenState.kt......import androidx.compose.runtime.snapshots.SnapshotStateListdata class NutrientScreenState( val dailyMeals: SnapshotStateList)data class DailyMeal( var date: LocalDate, val meals: SnapshotStateList)data class Meal( var time: LocalTime, var name: String, val nutritionInfo: NutritionInfo,)List형을 전부 SnapshotStateL..

Nutri Capture 프론트엔드 - NutrientScreen 구조 잡기

#1 깨알 변경 사항#1-1 "NutrientInputScreen"을 "NutrientScreen"으로 변경가독성을 위한 이름 변경이다. #1-2 "nutrient" 패키지 생성먼저, "NutrientScreen"를 "nutrient" 패키지에 넣는다. 또, 본 게시글에서 새로 만들 모든 파일은 해당 패키지에 들어간다 #2 개요#2-1 객체 지향적 UI 설계 [Android] Jetpack Compose - 객체 지향적 UI 레이어 설계#1 개요 UI 레이어  |  Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. UI 레이어 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. UI의 역kenel.tistory.com위 ..

Nutri Capture 방향성 - 고유인지감각, 새 UI 스케치

#1 사용자의 속마음#1-1 나쁜 사용자 경험의 요소: 높은 피로감 Nutri Capture 방향성 - 살아남는 앱이 되려면#1 앱의 인기는 끝났다 앱의 인기는 끝났다당신의 폰에는 이미 앱이 꽉차 있다. 그래서 당신은 이제 새로운 앱을 다운로드 하지 않는다. 새롭게 앱을 출시하는 앱개발사나 앱퍼블리셔는 지속해kenel.tistory.com위 게시글에서 Nutri Capture를 살아 남는 앱으로 만들겠다는 포부를 밝혔다. 그러려면 사용자가 원하는 것이 무엇인지 알고 정확하게 제공해야할테다. 식단 관리... 이전에 나는 여기에서 사용자가 자신이 먹은 영양 기록을 수치로 입력하는 내용의 UI 스케치를 했었다. 자신이 먹은 음식의 양과 영양분을 칼같이 계산하고, 그걸 매번 기록하는 게 정말로 사용자가 원하는 ..

Nutri Capture 프론트엔드 - NavigationBar

#1 개요#1-1 NavigationBar에 넣을 아이콘 가져오기 Material Symbols and Icons - Google FontsMaterial Symbols are our newest icons consolidating over 2,500 glyphs in a single font file with a wide range of design variants.fonts.google.comNavigationBar을 구현하기 위해선 먼저 아이콘이 필요하다. 위 페이지에서 SVG 아이콘을 다운로드했다. 이전 게시글에서 만든 NavHost의 Destination은 3개이므로 각각의 Destination에 어울리는 아이콘 3개를 골라 다운로드 했다 (참조: 첫번째 아이콘, 두번째 아이콘, 세번째 아이콘)..

Nutri Capture 프론트엔드 - NavHost

#1 개요#1-1 Scaffold의 bottomBar Nutri Capture 프론트엔드 - Scaffold#1 개요#1-1 첫 삽 뜨기무엇부터 손을 대야할 지 감이 잡히지 않는다. 프로토타이핑을 한번 더 해야 하나? 소프트웨어 모델링이라는 건 뭐지... 이걸 먼저 공부해야할까? ...  여러 의문이 든다. 그kenel.tistory.com이전 게시글에서 Scaffold를 만들었다. 해당 Scaffold에는 대부분 앱의 전형적인 구조로서 포함되는 NavigationBar를 넣을 것이다. 그러기 위해서 먼저, NavHost부터 만들어둘 필요가 있다. #1-2 NavHost 구현 [Android] Jetpack Compose - Navigation 기초#1 개요#1-1 전통적인 안드로이드 프로젝트에서의 Na..

Nutri Capture 프론트엔드 - Scaffold

#1 개요#1-1 첫 삽 뜨기무엇부터 손을 대야할 지 감이 잡히지 않는다. 프로토타이핑을 한번 더 해야 하나? 소프트웨어 모델링이라는 건 뭐지... 이걸 먼저 공부해야할까? ...  여러 의문이 든다. 그래도 분명한 건 앞으로 내가 핵심적으로 공들여야할 무언가(핵심 과제)는 분명 존재할 것이라는 사실이다. 가령 프론트엔드에서 매끄러운 애니메이션을 구현해야한다거나 생명주기를 말끔하게 처리하는 작업들이 그 예일 것이다. 그 과제까지 닿기 위해서 먼저 확실히 해두어야 하는 것들부터 먼저 처리해야한다. #1-2 Scaffold [Android] Jetpack Compose - Scaffold#1 개요#1-1 Scaffold의 사전적 의미Scaffold는 비계((건설) 높은 곳에서 공사를 할 수 있도록 임시로 설..

Nutri Capture 방향성 - 살아남는 앱이 되려면

#1 앱의 인기는 끝났다 앱의 인기는 끝났다당신의 폰에는 이미 앱이 꽉차 있다. 그래서 당신은 이제 새로운 앱을 다운로드 하지 않는다. 새롭게 앱을 출시하는 앱개발사나 앱퍼블리셔는 지속해서 증가하고 있지만 어느 순간 앱마켓이 포brunch.co.kr일단은 잘 만들려고만 했다. 잘 만드는 건 어렵다. 그래도 문제될 건 없다. 어려워도 해내면 된다. 하지만 진정한 문제는 나의 능력이 아니라, 현실이다. 사람들은 이제 앱을 다운로드하지 않는다. 더 정확히는, 새로운 앱을 다운로드하지 않는다. #2 살아남은 앱들의 특징#2-1 네 가지 분류다른 사람들의 마음을 헤아릴 것도 없다. 당장 나부터 쓰는 앱만 쓴다. 그 앱들은 크게 4가지 분류로 나뉜다고 생각한다. (1) 국민 누구나 쓸 정도의 앱, (2) 반강제적으..

Nutri Capture 방향성 - UI 스케치

#1 UI 스케치#1-1 개요먼저, 3개의 프래그먼트를 가지는 내비게이션 바를 만든다. 사용자는 '오늘' 프래그먼트, '통계' 프래그먼트, '나' 프래그먼트 중 하나를 선택할 수 있다. 기본 프래그먼트는 '오늘' 프래그먼트다. #1-2 '오늘' 프래그먼트'오늘' 프래그먼트는, 그 날 먹은 식품에 대한 정보를 표시한다.  + 버튼을 눌러서 아이템을 추가할 수 있다.
하루하루의 단위를 구분하는 Container는 ViewPager2 속에 담기게 구현한다. 각 Container는 스크롤로도 이동할 수 있고, ↑ 또는 ↓ 버튼으로도 간편하게 이동할 수 있다. 처음에 1안을 구상했으나, 2안도 괜찮아보여서 둘 다 업로드했다. 2안으로 갈 것 같다. 영 별로면 1안 또는 아예 새로운 디자인을 시도해보겠다. #1-3..

Nutri Capture 백엔드 - ERD

#1 ERD필수적인 테이블만 만들었다. 나중에 테이블을 추가해 넣을 가능성이 아주 높기에, 모든 테이블을 Non-Identifying Relationship으로 연결했다. 각 테이블의 모든 기본키는 AUTOINCREMENT가 Default값이다. nutrient 테이블은 100g 당 함유된 영양소가 기준이다. nutrient 테이블의 외래키 f_num는 UNIQUE KEY이고, 외래키 제약 조건인 ON CASCADE DELETE을 달아두었다. #2 코드 - SQLiteCREATE TABLE user ( -- 사용자 u_num INTEGER PRIMARY KEY AUTOINCREMENT, -- 사용자 번호 u_name TEXT, -- 닉네임 u_sex TEXT NOT NULL DE..

Nutri Capture 방향성 - 앱의 목적, 유스케이스 다이어그램

#1 앱의 목적과 여담Nutri Capture는 몇 년전에 번뜩 떠오른 아이디어로 만든 앱이었다. 대학교에서 안드로이드 수업을 듣던 중 구글의 ML Kit에 대한 내용이 나왔다. ML Kit는 이미지 속에서 텍스트를 뽑아내거나 카메라로 얼굴을 인식하는 등의 기능이 담긴 딥러닝 라이브러리다. 교수님은 ML Kit의 다양한 기능 중 하나를 활용해 앱을 만들어보라는 과제를 주셨다. 그리고 그 때 내 옆에는 프링글스 과자가 있었다. 프링글스의 원통 포장지에 인쇄된 영양성분표가 눈에 들어왔다. 그렇게 해서 얻은 아이디어였다.하지만, "어떤 상상을 하든 이미 그것은 특허로 등록되어있다."라는 말도 있지 않은가. 이 앱도 마찬가지다. 이미 해외에 굉장한 다운로드 수를 보유한 비슷한 앱이 있었다. 그렇다고 멈추진 않는..