flutter 7

커플 앱 만들기 (8) — 매일 열 이유, 그리고 다음

7화까지 오니 기능은 충분해 보였다. 근데 앱을 쭉 써보다 마지막 질문이 남았다. "이거 매일 열 이유가 있나?"룰렛은 좋은 기능이지만 매일 쓰는 건 아니다. "오늘 뭐 먹지"가 매일 고민은 아니니까. 케미 지수나 대시보드도 자주 볼 건 아니고. 하루하루 앱을 여는 확실한 이유, 소위 말하는 데일리 글루(daily glue)가 없었다. 이걸 마지막으로 풀었다.오늘의 질문 — 매일의 접착제답은 흔하지만 강력한 거였다. 매일 하나씩 뜨는 커플 질문.매일 같은 질문이 두 사람에게 뜬다 ("어른이 됐다고 느낀 순간이 있어?" 같은)근데 핵심은 이거다. 내가 답해야 상대 답이 열린다둘 다 답한 질문은 아카이브에 차곡차곡 쌓인다 방 최상단에 제일 크게 박아놨다. 들어오면 제일 먼저 보이게.이 구조가 마음에 들었던 ..

커플 앱 만들기 (7) — 관계를 데이터로

방향을 튼 뒤로 앱이 살아났고, 이제 여기까지 쌓인 걸 활용할 차례였다. 지금까지 둘이 룰렛 돌리고, 기분 남기고, 내기한 게 전부 포인트 원장(2화의 그거)에 기록으로 쌓여 있었다. 이 데이터를 그냥 두면 아깝다. 관계를 보여주는 지표로 바꿨다.케미 지수 — 관계를 숫자로최근 7일 활동을 종합해서 0~100점짜리 "이번 주 케미"를 만들었다. 네 가지를 가중합했다.함께 정하기 (룰렛)마음 나누기 (기분 기록)티키타카 (내기)꾸준함 (연속일)점수에 따라 "천생연분 / 깨가 쏟아지는 / 알아가는 중 / 데워지는 중" 같은 레벨도 붙였다. 방 상단에 원형 게이지로 얹어놔서, 들어오면 바로 "우리 이번 주 어때"가 보인다.이것도 새 테이블 없이 원장에서 계산했다. 자꾸 원장 얘기가 나오는데, 진짜로 초반에 이..

커플 앱 만들기 (6) 카카오 로컬 API로 주변 맛집 검색 연동하기 (Node.js/Flutter)

여기까지 오면서 앱은 그럴듯해졌는데, 사실 결정적인 게 다 가짜였다. 룰렛에 뜨는 맛집이 전부 내가 하드코딩해둔 목업이었다. "면사랑", "평안도상원냉면" 같은 게 코드에 박혀 있었던 거다. 데모용으론 괜찮은데, 이게 진짜 서비스가 되려면 내 주변의 실제 맛집이 떠야 한다. 이번 화는 가짜를 진짜로 바꾸는 얘기다.카카오로 진짜 맛집 가져오기국내 장소 데이터는 카카오 로컬 API가 제일 무난했다. 카테고리별로 이렇게 나눠서 붙였다.음식점 → 카테고리 검색 (FD6)카페 → 카테고리 검색 (CE7)술집, 디저트 → 키워드 검색호출은 헤더에 키 하나 넣으면 된다.GET https://dapi.kakao.com/v2/local/search/category.jsonAuthorization: KakaoAK {RES..

커플 앱 만들기 (5) — "예쁜데 재미가 없는데?"

4화까지 만들고 나서 앱을 며칠 써봤다. 미니룸 있고, 미션 있고, 감정 날씨로 방도 흐려지고. 그럴듯했다. 근데 계속 뭔가 걸렸다. 정확히 말하면 이거였다."예쁜데... 재미가 없는데?"이걸 인정하는 게 좀 아팠다. 공들여 만들었으니까. 근데 솔직히 며칠 지나니까 내가 안 열더라. 만든 사람이 안 여는 앱을 누가 열겠나.진단 — 보상이랑 재미는 다르다한참 고민하다 내린 결론은 이거였다. 꾸미기는 보상이지 재미가 아니다.포인트 모아서 방 꾸미는 건 "열심히 한 것에 대한 보상"이다. 근데 그게 앱을 여는 이유(재미)가 되진 못한다. 재미는 다른 데서 온다. 긴장, 놀이, 예측 불가, 둘 사이의 티키타카 같은 거. 지금 앱엔 그게 없었다. 얌전한 기록·보상 앱이었던 거다.그래서 방향을 크게 틀기로 했다. ..

커플 앱 만들기 (4) — 매일 열게 만드는 법

앱을 만들어놓는 것과 사람들이 매일 여는 건 완전히 다른 문제다. 특히 커플 앱은 "특별한 날에만 여는 앱"이 되기 쉽다. 그러면 죽는다. 이번 화는 어떻게 매일 열 이유를 심었나 하는 얘기다.두 개의 축을 잡았다. 하나는 "해야 할 것 같은" 습관 장치, 하나는 "챙김받는 느낌"을 주는 케어 장치.습관 장치 — 미션과 연속 기록게임 해본 사람은 다 안다. 데일리 퀘스트, 출석 체크, 연속 접속 보상. 이게 사람을 매일 들어오게 만드는 검증된 장치다. 이걸 그대로 가져왔다.오늘의 미션 — 오늘 룰렛 돌렸나, 오늘 기분 남겼나 같은 걸 체크 항목으로연속 기록(스트릭) — "3일 연속" 이런 거. 끊기기 아까워서 또 들어오게방 상단에 "N일 연속" + 오늘의 미션 + 보너스 버튼을 박아뒀다. 연속 기록이 쌓..

커플 앱 만들기 (3) — 첫 놀이 룰렛, 그리고 소켓 삽질

이 앱의 핵심 놀이는 룰렛이다. "오늘 뭐 먹지"를 둘이 같이 정하는 거. 근데 그냥 돌림판 돌리는 건 심심하니까, 틴더처럼 카드를 넘기면서 각자 맘에 드는 걸 고르고, 둘 다 좋아한 걸로 정해지는 방식으로 잡았다. 하트 시그널이라고 이름 붙였다.문제는 여기서 내가 욕심을 부렸다는 거다."실시간이면 멋있겠는데?"둘이 같이 고르는 거니까, 실시간으로 하면 좋겠다는 생각이 들었다. 상대가 지금 카드를 넘기는 게 보이고, 둘이 동시에 같은 걸 좋아하면 그 순간 "찌릿!" 하고 매칭 이펙트가 뜨고. 상상하니까 멋있었다.그래서 Socket.IO를 붙였다.접속할 때 JWT로 인증하고커플을 하나의 "방(room)"으로 묶고카드 덱은 서버가 들고 있고둘이 동시에 같은 카드에 Like 하면 매칭 신호를 쏘고양쪽 다 끝나..

커플 앱 만들기 (1) — 왜 하필 커플 앱이었나 [1인 개발 개발일지]

결론부터 말하면, 나는 커플 앱을 하나 만들었다. 이름은 룸메이트. 이게 최종 결과물이다. 기획부터 디자인, 프론트, 백엔드, 실제 지도 API 연동까지 전부 혼자 했다. 이 시리즈는 이걸 어떻게 만들었는지, 그리고 만들면서 커플 앱이라는 제품에 대해 뭘 배웠는지를 정리하는 개발 일지다. 기능을 열 개 넘게 붙이고, 중간에 방향을 크게 한 번 틀었던 과정까지 담을 거다. 일단 1화는 어쩌다 이걸 만들기 시작했는지부터.시작은 "뭐 먹지"였다커플이 제일 자주 하는 싸움이 뭘까. 나는 "오늘 뭐 먹지"라고 본다. 진짜 별거 아닌데 서로 "아무거나~" 하다가 은근히 신경전 되는 그거. 어디 갈지, 주말에 뭐 할지도 마찬가지고.이걸 앱으로 풀면 재밌겠다는 생각이 출발점이었다. 근데 시중에 커플 앱은 이미 많다. ..