본문 바로가기
50 year old flutter developer challenge

[50살에 플러터 개발 도전기] 학습 관리 앱 개발 여정의 첫 번째 컴포넌트 완성!(잔디 만들기)

by Maccrey Coding 2024. 12. 26.
반응형

안녕하세요! 50세의 Flutter 개발자 지망생입니다.

오늘은 제가 학습 관리 앱을 만드는 과정에서 겪은 중요한 고민과 결정을 공유하려고 합니다.

이번 글은 특히 날짜 데이터 처리와 관련된 부분을 다루고, 어떻게 최적의 방법을 찾았는지 이야기할 거예요.

날짜 데이터 처리 고민

앱을 만들면서 가장 큰 고민 중 하나는 바로 날짜 데이터를 어떻게 처리할 것인가 하는 점이었습니다.

처음에는 DateTime()을 사용하여 날짜를 저장할지, 아니면 에포크 타임(Unix Time)을 사용하여 저장할지에 대해 많은 고민을 했습니다.

  • DateTime()은 개발자에게 직관적이고 쉽게 사용할 수 있는 형태지만, 시간이 지나면서 여러 국가의 타임존을 고려해야 하므로 문제가 될 수 있다는 점이 있었습니다.
  • 반면, 에포크 타임은 1970년 1월 1일부터의 초(second)로 계산된 숫자여서, 시간을 처리할 때 타임존에 관계없이 일관되게 데이터를 다룰 수 있는 장점이 있습니다.

에포크 타임을 선택한 이유

전 세계인을 대상으로 서비스를 제공하려면, 다양한 타임존을 고려한 날짜 처리가 매우 중요합니다.

그래서 에포크 타임을 사용하고, utcOffset을 설정하여 각 사용자의 지역에 맞는 시간을 표시하는 방식이 훨씬 더 효율적이라는 결론에 도달했습니다.

이 방법으로 데이터를 저장하면 타임존에 의한 오류를 줄이고, 사용자 경험도 더 일관되게 만들 수 있습니다.

컴포넌트 기반 디자인

앱의 디자인은 모두 컴포넌트 형태로 구현하고 있습니다. 각 컴포넌트는 독립적이고 재사용 가능한 구조로 설계되어, 설정에서 사용자가 원하는 대로 개인화할 수 있는 부분을 더욱 강화하고 있습니다.

이는 앱의 확장성을 높이고, 다양한 요구 사항에 맞추어 유연하게 기능을 추가할 수 있는 장점이 있습니다.

첫 번째 컴포넌트: GitHub에서 영감을 받은 잔디 구현

그리고 12월 25일, 드디어 첫 번째 컴포넌트가 완성되었습니다! 바로 GitHub의 잔디(GitHub Contributions)와 같은 스타일의 컴포넌트를 구현했습니다.

이 컴포넌트는 사용자의 활동 기록을 시각적으로 보여주며, 동기부여를 위해 매우 중요한 요소가 될 것입니다. GitHub에서 아이디어를 얻어 구현한 이 기능은 이제 완벽하게 작동하고 있습니다.

이제 첫 번째 컴포넌트를 완성했으니, 앞으로도 더 많은 기능과 컴포넌트를 추가하며 앱을 발전시켜 나갈 계획입니다.

 

앱 개발 과정에서의 고민과 결정을 기록해본 오늘의 일기! 이제 저는 다음 단계를 향해 달려가고 있습니다.

Flutter로 개발하는 과정에서의 배움과 도전이 정말 흥미롭고, 이 여정을 통해 점점 더 성장하고 있다는 느낌이 듭니다.

앞으로도 계속해서 블로그에 개발 일지를 작성할 예정이니, 많은 관심 부탁드립니다!

 

이 글은 "Flutter 학습 관리 앱 개발"이라는 키워드를 중심으로 작성되었습니다.

날짜 데이터 처리와 컴포넌트 기반 디자인을 통한 효율적인 개발 방법에 대한 이야기를 담고 있어 관련 개발자들이 참고할 수 있을 것입니다.

구독!! 공감과 댓글,

광고 클릭은 저에게 큰 힘이 됩니다.

 

Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.

 

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

 

반응형