React Native & Expo Bare를 사용하여 1인 독학으로 iOS/Android앱을 릴리즈!
2015년 React(React Native)이 처음 출시될 무렵부터 리액트를 독학하며 기계학습(ML)용 훈련 데이터셋을 만드는 웹(Like, Amazon mechanical turk)을 만들자!라고 개인 프로젝트를 시작했으나 리액트가 손에 익숙해질수록 다양한 웹 브라우저(Chrome, Safari, Edge, Opera, Firefox)를 지원하는 소모적인 작업에 지쳐갈 무렵, 원래 최종목표였던 모바일앱 개발에 도전하기로 결정함. 과연 1인 독학으로, React Native로, iOS/Android 앱을 만들 수 있을까? 출시는 할 수 있을까? 만든다면 어떤 앱을 만들까? 등등 고민했던 거 같다.
그리고 개발언어와 개발환경을 위한 무수한 검색 & 스터디, 앱에 대한 구상/기획 등을 거쳐 결국, 자습/학습 앱인 ichiman을 출시하게 된다.
무수한 검색 & 스터디했던 앱 개발에 필요한 지식들:
Front End, BackEnd, Javascript, TypeScript, Nodejs, NLP, VSCode, React, React Native, Expo Bare WorkFlow, Expo EAS, Google AdMob, Firebase/analytics, Firebase/app-check, Firebase/auth, Firebase/crashlytics, Firebase/dynamic-links, Firebase/messaging, Firebase/storage, Apple-authentication, Google-signin, fbsdk-next, Apollo/Client, Apollo/Server, Nexus, Prisma, GraphQL, Apollo3-cache-persist, i18n-js, REST API, Expressjs, VPS, Ubuntu, PostgreSQL, PM2, Xcode, Android Studio, InAppPurchase, App Store Connect, Google Play Console...
앱으로 공부할 재료를 만들어두고 다양한 학습방법으로 반복해서 학습할 수 있는 앱인데, 글쓴이가 주로 공부하던 방식과 좀 더 필요하다고 느꼈던 부분을 보완해서 만듦. 공부하는 사람들이 책을 손에 놓고 앱에 공부할 내용(예습/복습)을 기록할 것인가?라는 이슈는 존재하지만...
(글쓴이 주석) 일본어 기사가 더 잘 정리되어있음. 보실 분은 기사 맨 아래 일본어기사 링크를 참고 하세요.
아무튼 간략하게 소개하면,
학습 준비
🍎 공부할 내용을 직접 작성하거나, 타인의 학습카드를 검색 후 다운로드(코인소비)할 수 있으며 타인에게 선물하거나 일정 코인을 받고 보낼 수 있음
🍎 내장된 에디터를 사용하여 텍스트, 이미지 형식의 학습카드를 1장씩 작성할 수 있음
🍎 복수개의 공부할 내용을 CSV파일로 작성한 후 업로드함으로써, 복수개의 학습카드를 한꺼번에 작성할 수 있음
🍎 작성된 학습카드는 아래와 같은 옵션을 설정할 수 있음 - 클립 ON/OFF, 학습완료 ON/OFF, 잠그기/해제하기, 선물하기, 카드 삭제하기 등
※ 일정 개수 이상의 학습카드를 가진 학습노트는 각 학습 리스트에 자동으로 추가되어 학습할 수 있습니다.
※ ① 학습에 직접 필요한 행위는 그 시간과 내용이 기록되고, ② 그 외는 해당 행위의 내용만 기록됩니다. - 학습카드 작성(① ②), 선물하기(②)
학습하기
① 퀴즈 학습
🍄 일정 개수 이상의 *텍스트* 타입의 학습카드를 가진 학습노트인 경우 학습이 가능함.
🍄 학습 중에 각 학습카드에 메모를 추가/삭제할 수 있고, 클립을 ON/OFF 할 수 있음
🍄 학습 후에 타임인터벌 타입의 통지학습을 각 학습카드별로 선택적으로 등록/해지할 수 있음
※ 퀴즈 중에 틀린 문제가 있다면 해당 문제를 통지에 등록하여 일정시간 동안 집중 학습해 보세요. 또한, 등록한 통지는 언제든 해지할 수 있습니다.
② 암기(수동/자동) 학습
🌱 일정 개수 이상의 학습카드를 가진 학습노트인 경우 학습이 가능함
🌱 학습 중에 각 학습카드에 메모를 추가/삭제할 수 있고, 수동 학습인 경우 클립을 ON/OFF 할 수 있음
※ 수동 학습 중에 까다로운 학습카드가 있다면 클립을 ON 해서 리뷰학습에서 공부하거나 리뷰학습에서 등록가능한 캘린더타입 통지학습에 등록해 보세요.
※ 자동 학습은 양손을 사용하기 어려운 상황에서 영상을 보듯 엄지손가락 하나로 학습할 수 있습니다. 당신이 전철로 출퇴근 중에 공부하고 싶다면 유용할 겁니다.
③ 리뷰학습
🍒 클립이 ON 상태인 일정 개수 이상의 학습카드를 가진 학습노트인 경우 학습이 가능함
🍒 집중 학습이 필요하므로 이곳에서는 퀴즈학습, 암기(수동/자동) 학습, 통지학습이 모두 가능함
🍒 각 학습노트별로 리마인드 카드를 만들어 캘린더 타입 통지학습을 등록/해지할 수 있음
※ 집중학습이 필요하다면 이곳에서 학습해 보세요
④ 통지학습
🍓 타임인터벌(TI) 통지학습과 캘린더(C) 통지학습 등 2가지 타입이 있음
🍓 TI통지학습은 퀴즈 학습 후 등록/해지할 수 있으며 일정시간(24시간, 48시간 등) 동안 반복 & 집중(매 1시간, 매 2시간 등)적으로 학습하고자 하는 경우를 위한 학습 방법임 - 단기/집중 학습
🍓 C통지학습은 리뷰학습이 가능한 학습노트별로 리마인드 카드를 작성 후 등록/해지할 수 있고 매일 또는 특정 요일의 특정시간에 반복적으로 학습하기 위한 방법임 - 중/장기 학습
※ 리마인드 카드는 C통지학습의 스케줄관리를 위한 전용 카드입니다.
※ 통지학습은 *수신한 통지를 탭*하여 앱으로 진입한 경우에 한해서 학습시간과 내용이 기록되며 일정 코인을 획득할 수 있습니다.
⑤ PDF 학습
🍏 일정 개수 이상의 학습카드를 가진 학습노트는 PDF로 변환할 수 있음
※ PDF 파일을 인쇄하여 오프라인에서 학습하거나 PC/노트북 등에서 학습할 수도 있으므로 상황에 맞게 활용해 보세요.
- 단, PDF 학습은 학습시간이 기록되지 않습니다.
1만 시간 시스템
1만 시간 기록시스템 - 초단위 기록
1만 시간 차트시스템 - 공부 시간/패턴 파악
1만 시간 랭킹시스템 - 국가별, 토픽별
🥕 학습준비 및 학습하기 등의 사용자 행위를 시스템이 자동으로 탐지하고 자체 알고리즘으로 학습 시간과 내용을 산출함
🥕 산출된 학습 시간과 내용은 차트형태로 확인이 가능함 - 오늘, 일일, 주간, 월간, 년간
🥕 학습시간이 기록되면 자동으로 국가별 랭킹에 표시되고, 토픽별 랭킹은 선택적으로 가입/해지할 수 있음
인 앤 코인 / 월렛 시스템
※ 기본적으로 공부하면 코인을 획득할 수 있고, 그 외는 코인이 소비됩니다.
※ 일부 주요 코인소비 행위에 한해서 사전에 안내되며, 코인이 소비되는 모든 내역은 【MY 페이지 > 내 지갑】에서 확인해야 합니다.
※ 코인의 입출금 내역을 최근 20개까지 확인할 수 있습니다.
유저 리포트 제출 / 보상
🎯 각 스크린의 타이틀을 탭 하여 리포트해 주세요. 유용한 내용인 경우 심사 후 코인을 선물해 드립니다.
밝은 테마/어두운 테마 전환
🎯 기본적으로 폰설정과 연동되며 수동으로 설정할 수도 있습니다.
앱 내 가이드라인 표시
※ 가이드라인 표시 메뉴를 ON 하면 스크린별로 설정된 가이드라인을 볼 수 있고 스크린별로 메뉴를 비표시할 수도 있습니다.
※ 앱투어모드에서도 확인가능합니다.
앱투어모드
🎯 로그인 없이 앱을 주요 앱기능을 사용해 볼 수 있습니다.
🎯 투어모드 종료 후 작성된 데이터는 모두 리셋됩니다.
멀티언어 지원
※ 스마트폰의 OS 언어에 맞추어 앱의 언어가 자동으로 변환되므로, 스마트폰의 언어 설정에 따라 앱이 일본어, 영어, 한국어로 자동 전환됩니다.
※ 세 가지 언어 이외의 부분은 영어로 표시됩니다. 각 언어를 지원하지 않는 경우에도 사용 중인 스마트폰에서 영어로 앱이 표시되므로 최소한 기본적인 조작이 가능합니다.
앱 다운로드 링크
🚀 Android: ichiman App
🚀 iOS: ichiman App