[담타 - 리팩터링] 내 앱의 MVVM 구조는 올바른걸까? (ViewModel 편)
·
프로젝트 - 담타/리팩터링
들어가며.. 엄청난 슈퍼 개발자가 아니라면, 빠른 개발과 좋은 설계 사이의 트레이드오프는 분명 있을 것이다. 앱을 직접 배포하면서 느낀 것이고, 그리고 아마 현업에서도 이럴 것이라고 생각한다. 보통 새롭게 추가해야하는 기능이 무한정 추가되지는 않는다. 서비스가 어느 정도 궤도에 오르면 새롭게 기능을 추가하는 것에 시간을 쓰기보다는, 유지보수를 하게 되고 좋은 코드를 고민해보게 된다. 나의 앱도 어느 정도 궤도에 올라서 좋은 코드와 설계에 대해 고민하고 싶어졌는데 항상 확신을 가지지 못했던 MVVM구조로 잘 설계되었는가에 대한 고민을 한번 해보고 글로 작성해보려 한다. 내 앱은 Provider를 이용하여 MVVM 구조로 나름 설계되어 있다. 앱의 기능상 문제는 전혀 없지만, 그건 아직 앱이 크지 않아서, ..
[담타 - 리팩터링] 필요 없는 주석 제거
·
프로젝트 - 담타/리팩터링
성격 때문인지 실력 때문인지 주석을 잘 못지우겠다. 차라리 기능에 대한 부가 설명을 써놓은 주석이라면 좋겠지만, 내 주석은 거의 DateTime standardDate = DateTime(year, month); // print('standard date ${standardDate}'); int totalDays = daysInMonth(standardDate); // print('totalDays : ${totalDays}'); 이런 print 디버깅을 사용하고 잠시 주석처리 해놓은 것이거나 // child: Center( // child: Badge( // // shape: BadgeShape.square, // // borderRadius: BorderRadius.circular(10), // //..
[담타 - 리팩터링] 테마 및 컬러 관리
·
프로젝트 - 담타/리팩터링
자주 쓰이는 값을 한번에 관리하기 위해 혹은 틀리면 안되는 값을 조금 더 엄격하기 위해 상수를 사용한다. 내 프로젝트에서는 아래와 같이 관리했는데, common 폴더에 theme.dart 를 만들고 appTheme 클래스를 이용해서 상수를 설정해주었다. 앱 내의 색이 들어가는 모든 것들에 대해 변수를 만들어주고 거기서 또 할당해주었다. 이렇게 한 이유는 색이 들어가는 모든 것들에 각각의 변수를 주어서 하나의 파일에서 모든 색을 수정할 수 있게 하고 싶어서였다. // /common/theme.dart class appTheme { static const Color mainGreen = Color(0xFF111111); static const Color white = Colors.white; static c..