[계획] 내가 쓸 단어장 내 손으로 만들기

SteadySlower·2022년 7월 6일
0

앱을 만들게 된 계기

📄 종이 단어장?

요즘 자기 개발 반, 취미 생활 반으로 일본어 학원을 다니고 있습니다. 완전 기초 수준부터 공부를 하다보니 외워야할 단어가 많더라구요. 저는 단어들을 카드 형식으로 된 단어장을 사서 정리하고 링에 끼워서 외우고 다녔습니다. 통근 시간이 좀 길어서 단어는 주로 버스에서 외웠습니다.

하지만 한달이 되고 두달이 지나면서 너무나도 많은 단어장이 생기고 가방에 들고 다니기도 힘들더라구요.

그래서 원래는 제가 기존에 출시까지 했던 단어장 앱을 활용하려고 했습니다. 하지만 영단어 암기용으로 개발한 그 단어장을 사용하기에는 어려움이 많았습니다.

🤔 어떤 어려움?

  1. 기존의 단어장은 iOS용 앱이었습니다. 하지만 휴대폰으로 일본어를 입력하는 것은 쉽지 않았습니다. 손으로 쓰는 시간을 절약하고 싶었지만 오히려 시간이 더 걸렸습니다.
  2. 단어만이 아니라 문장도 학습을 하고 싶었습니다. 기존에서는 교재를 캡쳐한 것을 노션에 문장 단위로 정리해서 학습했습니다. 새로운 단어장은 이런 기능을 가지고 있었으면 했습니다.

어떤 앱을 만들 것인가?

✅ 새로운 단어장이 가져야 할 필수 기능

  1. Mac에서 단어를 입력하고 iPhone에서 단어 학습을 할 수 있어야 합니다.
  2. 텍스트는 물론 이미지도 저장할 수 있어야 합니다.

🛠 어떤 기술로 구현할 것인가?

🎨 SwiftUI

저는 기존에 개인 프로젝트를 진행할 때 모두 UIKit을 활용해서 개발을 했습니다. 하지만 회사에 입사해서 처음 참여한 프로젝트는 SwiftUI로 이루어져 있었습니다. 이전에 꾸준히 SwiftUI에 대해 학습을 해서 업무에 대응할 수 있었지만 아직 부족함을 많이 느낍니다. 이번에 SwiftUI로 토이프로젝트를 하면서 더 연습을 해보겠습니다.

🧪 Test

지금 회사에서 하는 업무의 50% 이상이 테스트 코드를 작성하는 일입니다. 테스트를 작성하는 역량을 키우고 더 Testable한 코드를 위해서 이 프로젝트에 Test를 포함하고자 합니다.

🔥 Firebase

기존에 개발했던 앱에서는 CoreData를 활용해서 단어를 저장했습니다. 하지만 이번의 경우 이렇게 하면 Mac에서 저장한 단어를 iPhone에서 볼 수 없습니다. 이번에는 Firebase를 통해서 서버에 단어를 저장하겠습니다.

Combine (to-do)

아직 combine을 학습하지는 않았지만 곧 학습할 예정에 있습니다. 학습하면서 이 프로젝트에도 천천히 도입하고자 합니다.

개발 계획

[Phase 1] 핵심 기능만 빠르게 개발하기

  1. 단어장이 요구하는 핵심 기능만 포함해서 최대한 빠르게 개발합니다.
  • Mac용 앱에 구현할 기능
    • 단어장 저장 기능
    • 단어 저장 기능
      • Text와 Image 포함
  • iOS용 앱에 구현할 기능
    • 단어 조회 기능
    • 단어 Pass / Fail 체크하는 기능
  1. 최대한 빠르게 1.0.0 버전을 만들고 Test Flight로 사용합니다.

  2. 실사용하면서 피드백을 받아 앱을 수정합니다.

[Phase 2] Test 작성하기

  1. Phase 1에서 개발한 기능에 대한 테스트를 작성합니다.

  2. Phase 1에서 개발한 코드를 Testable하게 리팩토링합니다.

[Phase 3] 추가 기능 개발하기

  1. TDD 방식으로 추가 기능을 개발합니다.

마치며…

만들면서 많은 것을 배울 수 있을 것입니다. 배운 내용들을 차근차근 블로그에 포스팅해보겠습니다!

profile
백과사전 보다 항해일지(혹은 표류일지)를 지향합니다.

0개의 댓글