본문 바로가기
TIL

20231102 TIL

by 김빵그 2023. 11. 2.

Today 요약 

[] 프로그래머스 코딩테스트 3문제

[] dart 강의 7개

[] react 강의 1개

[] flutter 강의 2개

 

 


배운 점

1. dart

1-1 dart num 키워드 

  • num 키워드는 number의 약자로 숫자 관련 데이터 타입을 모두 저장 할 수 있다.
  • int, double 데이터 모두 저장 가능

2. flutter

2-1 provider

  • 단순화된 자원 할당/폐기
  • 지연로딩
  • 매번 새로운 클래스를 만드는 것보다 상용구가 크게 줄어든다 
  • InheritedWidget을 감싸 더 쉽게 사용하고 재사용 가능
  • 사용 앱에 많은 것을 제공하고 어디서나 열람할 수 있게 해준다

provider 유형

  1. Provider
    • 가장 기본적인 형태의 공급자. 값이 무엇이든 간에 값을 가져와 공개한다
  2. ListenableProvider 
    • Listenable 객체에 대한 특정 공급자. 객체를 수신하고 리스너가 호출될 때마다 객체에 의존하는 위젯에 다시 빌드하도록 요청
  3. ChangeNotifierProvider 
    • ChangeNotifier에 대한 ListenableProvider 사양. 필요할 때 자동으로 호출된다
  4. ValueListenableProvider
    • ValueListenable을 들음
 

provider | Flutter Package

A wrapper around InheritedWidget to make them easier to use and more reusable.

pub.dev

 

 

 

ChangeNotifierProvider class - provider library - Dart API

ChangeNotifierProvider class Listens to a ChangeNotifier, expose it to its descendants and rebuilds dependents whenever ChangeNotifier.notifyListeners is called. Depending on whether you want to create or reuse a ChangeNotifier, you will want to use differ

pub.dev

2-2 MultiProvider 

  • 앱을 provider로 감싸준다
  • providers 리스트를 사용한다
(new) MultiProvider MultiProvider({
  Key? key,
  required List<SingleChildWidget> providers,
  Widget? child,
  Widget Function(BuildContext, Widget?)? builder,
})
  • 다른 화면이 어떻게 changeNotifier에 접근하는가?
  • context.watch, read 사용 
  • changeNotifier를 정의하고 앱 상단에 제공한 다음 어디서든 읽고 불러올 수 있다
child: IconButton(
  icon: FaIcon(
    context.watch<Config>().isMuted ? (): (),
    color: Colors.white,
  ),
  onPressed: () {
    context.read<Config>().toggle();
  },
),

2-3 MVVM (model -view - viewModel의 약자)

  • 앱의 코드를 구성하고 데이터와 비즈니스 로직을 분리하기 위한 디자인 패턴
  • Model
    • 애플리케이션의 데이터 및 비즈니스 로직을 포함하는 부분이다. 데이터베이스, 네트워크 호출, 상태 관리 등을 처리하는 데 사용
  • View 
    • 사용자 인터페이스를 나타내는 부분. 사용자에게 표시되는 모든 것을 의미하며 화면 레이아웃 및 디자인과 관련된 코드를 포함한다
  • ViewModel 
    • Model과 View 사이의 중개 역할을 하는 부분. ViewModel은 사용자 인터페이스와 비즈니스 로직 사이의 상호 작용을 관리하며 Model 에서 가져온 데이터를 VIew에 바인딩하고 사용자 입력을 Model에 전달한다

2-4 MVVM과 Repository 

MVVM

  • 사용자 인터페이스 코드와 비즈니스 로직을 분리하여 앱을 유지 관리하고 확장하기 쉽게 만드는 것. 이 패턴을 따르면 코드가 더 모듈화되어 가독성이 향상되며, 여러 플랫폼에서 코드를 재사용 할 수 있다 

 

Repository 

  • MVVM 아키텍처와 밀접하게 관련되며 데이터 소스와 상호 작용하는 데 사용된다
  • 데이터에 대한 액세스를 추상화하고, 데이터베이스, 웹 서비스, 캐시 등과 상호 작용하는 데 필요한 모든 작업을 캡슐화한다
  • viewModel 에 데이터를 공금하고 필요한 경우 데이터 소스를 전환하는 데 사용된다

'TIL' 카테고리의 다른 글

20231106 TIL  (0) 2023.11.06
20231103 TIL  (0) 2023.11.03
20231101 TIL  (1) 2023.11.01
20231030 TIL  (1) 2023.10.30
20231028 TIL :: 오랜만에 빡공하는 주말  (0) 2023.10.28