앱을 만들기로 결정하고 기획부터 배포까지 일주일에 걸쳐 영단어 퀴즈앱 '바로보카'가 완성되었습니다.
많은 사람들이 영단어를 꾸준히 외우고 싶어하지만, 꾸준히 습관을 만들기가 참 어려운 것 같아요.
저도 '하루에 20개씩 외우겠어!' 라고 다짐하지만 며칠 못가고는 했습니다. (중학교때부터 지금까지...)
동기부여가 되도록 영단어 암기에 보상을 추가한 보상형 영단어 퀴즈앱을 만들고 싶어졌습니다.
캐시워크가 100보에 1캐시씩 바꿔주듯이, 영단어 1문제를 풀때마다 1캐시씩 적립시켜주는 앱을 말이죠.
용돈을 벌 수 있다면 더 성취감도 있고, 커피도 사먹고..영단어를 더 자주 보지 않을까요?
이런 아이디어를 시작으로 앱 기획을 시작했습니다.
작업 1. 영단어 퀴즈앱을 만든다.
작업 2. 영단어 퀴즈에 캐시 적립 기능을 추가한다.
부족한 실력으로 한 번에 1번과 2번을 모두 구현하여 출시하려면 꽤 오래 걸릴 것 같았습니다. (예상 기간조차 감이 없었죠)
1번이 되는 앱을 만들어서 우선 출시하고 그 다음에 2번을 추가하기로 했습니다.
그리고 12월 28일에 기획을 시작해서, 그 당일에 끝났어요. 페이지 3쪽이라 기획이라고 하기도 민망할 정도입니다.
기획 끝에 나온 앱 구조이자 페이지는 크게 3개입니다.
개발 시작 전에 다짐하고, 개발하는 동안 스스로에게 계속 주의를 줬던 건, '절대 추가 기능을 넣지 않는다!' 였습니다. (하지만 지키지 못했다죠)
개발을 하다보면 이것도 넣고 싶고, 저것도 넣고 싶고, '어? 이런 기능도 있으면 좋겠다!' 라는 생각이 굉장히 많이 들거든요.
그러다보면, (특히 혼자 개발하는 경우) 첫 기획에는 없는 다양한 기능이 마구 들어가고 개발 기간도 길어지게 됩니다. 그래서 애초에 저 2가지 기능만 갖고 일단 출시하자를 목표로 잡았어요. 원래는 2주정도 생각했는데, 이렇게 최소 목표를 잡고 시작하니까 생각보다 더 빨리 출시할 수 있었던 것 같아요.
프로젝트 파일을 만들고 배포하는 과정동안 코드를 개발하는 시간보다 라이브러리를 찾고, 환경을 세팅하고, 설정하는 시간이 더 오래걸렸습니다.
전체 100이라면 코드 개발 40, 개발환경 및 배포환경 세팅 60 정도 소요된 것 같습니다,,ㅜㅜ
프로그래밍 실력보다 구글링 실력이 더 좋아진 것 같네요 ㅎㅎ..
처음으로 혼자서 a-z까지 다 해본거라, 기록을 남기고 싶어졌습니다.
날짜별로 어떤걸 개발했는지 메모해놨다면 좋았을텐데, 잘 생각이 안나네요. 분명 엄청 바빴던거같은데...
아, 깃헙 커밋을 보면서 기억을 더듬어봐야겠네요. 앞으로는 틈틈히 기록을 해야겠어요.
12월 28일에 기획을 시작했고, 1월 1일이 새해맞이로 구글에 출시 심사를 요청했습니다.
iOS는 설정해줘야할 게 더 많아서 우선 플레이스토어에 먼저 제출했어요. 그리고, 2일동안 열심히 셋팅해주고 보완해서 앱스토어에도 심사를 제출했답니다.
그런데... 애플.... 이녀석...!
이 글을 쓰고있는 1월 5일 기준으로, 안드로이드는 아직도 심사중인데 애플은 심사제출한 밤에 바로 승인이 났어요!
늦게 제출한 앱스토어에서 오히려 먼저 배포가 되었답니다.
28일
29일
(버려진 나의 코드..ㅠㅠ 길이는 짧지만 구조를 짠다고 오래 걸렸다고 한다. 아까우니 여기에라도 남으렴..?)
const vacaNoteContainer = () => {
return (
VOCATYPE.map((item, index) => {
return (
<View
key={index}
style={styles.vocaNoteContainer}>
<Text style={styles.vocaNoteContainerTypeText}>{item.name}</Text>
{vocaNote(item)}
</View>
)
})
)
}
const vocaNote = (vocaType) => {
return(
vocaType.data.map((item, index) => {
return (
<TouchableOpacity
key={index}
onPress={() => navigation.push("QuizIndex", {id:1})}
activeOpacity={0.6}
>
<View style={styles.vocaNoteView}>
<Text style={styles.vocaNoteTitle}>{vocaType.name} 영단어 {index + 1}</Text>
<Text style={styles.vocaNoteNumWord}>{vocaType.wordNum} 단어</Text>
</View>
</TouchableOpacity>
)
})
)
}
30일
31일
1월 1일
1월 2일
1월 3일, 4일
첫 출시인데도 4시간만에 승인해준 애플 그는 대체..
1월 5일 새벽
이렇게 RN으로 기획부터 배포까지 앱 전체 사이클을 한 번 돌면서, 1번 작업(영단어 퀴즈앱을 만든다.)이 끝났습니다.
하지만, 백엔드가 없는 앱이라 완전한 경험을 했다고 하기에는 조금 부실하죠.
이제부터는 2번 작업을 시작해야겠습니다.
1월 6일
1월 7일~9일
임시 디자인이지만 로그인 버튼이 생기니 진짜 어플 같습니다 ㅎㅎ(진짜 어플 맞는데...)
이 다음으로는 firebase의 firestore db를 연결해주어야 합니다. realtime db와 firestore db중에 무엇을 사용할까하고 찾아보니, 대부분 후자를 추천하네요.
안녕하세요. 글 잘 봤습니다.
제가 궁금한 점이 조금 있는데 여쭤봐도 될까요?
혹시 단어장 데이터들은 어떻게 얻으셨나요?
저도 얻고 싶어서요.
답변해주시면 감사하겠습니다.