본문 바로가기

Flutter5

(플러터) 리팩토링의 기본 리팩토링은 앱의 유지보수성, 확장성, 가독성을 향상시키기 위해 필요하다라고 하면 굉장히 식상하지만 프로젝트를 진행하다 보면 이런 부분을 굉장히 자연스럽게 느끼게 된다. 특히 몇 년 유지(또는 방치)된 프로젝트 코드를 보다 보면 왜 리팩토링이 필요한지 누가 아무 말 안 해도 절감하게 된다. 그럼 리팩토링을 잘 하는 방법이 따로 있는가? 1. 모듈화와 컴포넌트 분리 지금 내가 만지고 있는 프로젝트는 모듈화와 컴포넌트 분리가 '하나도' 안 되어 있다. 파일 하나(클래스 하나)에 코드가 1,500줄이 넘는 건 기본이고 어떤 건 2,000줄 가깝다. 로직이 어떻게 돌고 있는지 이해하기 쉽지 않는 건 물론이고 스크롤한다고 손가락 아파 죽겠다. UI는 작은 위젯으로 분리해야 한다. 가능한 한 작게 만들고 다른 곳에서.. 2024. 2. 6.
i18n, l10n, 최소한만 알아보자. 그게 뭔지만 대충 알아도 된다. 어차피 개발 시 적용할 때 다시 깊게 생각해야 된다. i18n이란? 국제화를 뜻한다. l10n이란? 지역화를 뜻한다. 국제화 (Internationalization, i18n) 정의: 'i'로 시작해서 'n'으로 끝나는 사이에 18개의 문자가 있어서 i18n이라고 한다. 국제화는 소프트웨어를 설계하고 구현하는 과정에서 다양한 언어와 지역 설정에 맞춰 쉽게 적용될 수 있도록 준비하는 것을 말한다. 목적: 국제화는 코드의 재사용을 극대화하고, 지역별 특화 작업을 최소화하여 다양한 언어와 문화권에서 소프트웨어를 효율적으로 사용할 수 있도록 한다. 개발 시 주의사항: 문자열을 코드에서 분리하여 외부 파일이나 데이터베이스에 저장해야 한다. 날짜, 시간, 통화 등 지역에 따라 다르게.. 2024. 2. 3.
프로바이더 뽀개기 프로젝트 프로바이더가 discontinued되지 않는 이상 ongoing 프로젝트입니다. https://github.com/JaeeunSkywalker/provider_examples GitHub - JaeeunSkywalker/provider_examples: Literally, provider examples.Literally, provider examples. Contribute to JaeeunSkywalker/provider_examples development by creating an account on GitHub.github.com 내용은 굉장히 심플합니다.간단 소개, 깃헙 샘플 코드 연결 버튼, 기능 확인 페이지가 끝입니다.개인적으로 Provider, Riverpod, GetX 다 써보고 싶어서.. 2024. 2. 3.
플러터-프로바이더-라이브러리-정리 클래스 ChangeNotifierProvider: ChangeNotifier를 청취하고, 이를 후손에게 제공하며, ChangeNotifier.notifyListeners가 호출될 때마다 의존하는 위젯들을 재구성합니다. => changenotifier, notifylisteners로 묶어서 상태 관리할 때 쓰는 가장 기본적인 형태. ChangeNotifierProxyProvider: 다른 값을 기반으로 ChangeNotifier를 생성하고 동기화하는 ChangeNotifierProvider입니다. ChangeNotifierProxyProvider0부터 ChangeNotifierProxyProvider6까지 여러 값을 동기화할 수 있는 버전들이 있습니다. ChangeNotifierProxyProvider0:.. 2024. 2. 2.
플러터-프로바이더-궁금했던-내용들 1. provider는 changenotifier랑 notifylistener랑만 묶어서 사용할 수 있나? provider 패키지는 ChangeNotifier와 함께 사용하기에 최적화되어 있으나, 이것만이 유일한 사용 방법은 아닙니다. ChangeNotifier는 상태 변경을 알리기 위해 notifyListeners() 메서드와 함께 자주 사용되지만, provider는 다양한 타입의 데이터와 객체를 관리할 수 있습니다. 예를 들어, 단순한 값(value)이나 다른 타입의 객체를 공유하고자 할 때 Provider를 사용할 수 있고, 이 경우 ChangeNotifier와 notifyListeners()는 필요하지 않습니다. 또한, provider 패키지는 ListenableProvider, StreamPro.. 2024. 2. 2.