강의 내용 정리 - [Flutter로 SNS 앱 만들기]

2024. 5. 3. 00:37·Dart와 Flutter
24년 5월을 기준으로 작성되었습니다.

 

 

1. [섹션 2. 회원 가입 화면] 가입완료 메시지 표시... 강의 수정 사항

9분 즈음에 디바이스 자체의 뒤로가기 버튼을 막기 위해 WillPopScope를 사용했다. 

하지만 WillPopScope는 Deprecated 됐으므로, PopScope를 대신 사용한다.

https://stackoverflow.com/questions/77529904/willpopscope-is-deprecated-in-flutter

 

WillPopScope is deprecated in Flutter

'WillPopScope' is deprecated and shouldn't be used. Use PopScope instead. This feature was deprecated after v3.12.0-1.0.pre WillPopScope( onWillPop: () async { // your logic return

stackoverflow.com

 

[기존 코드]

WillPopScope(
  onWillPop: () async => false,
)

 

[24년 9월 기준 수정 코드]

/// NEW CODE
PopScope(
  canPop: false,
  onPopInvokedWithResult : (_, __) => false,
)

 


2. Provider에서 context.read() VS context.watch()

context.read()와 context.watch()는 상태 관리 라이브러리인 Provider에서 사용되는 메서드이다.

 

1. context.read()

   - context.read()는 주어진 Provider에서 데이터를 읽어오는 메서드이다.
   - 데이터를 읽어올 때, 해당 Provider의 상태 변화를 구독(감지)하지 않는다.
   - 주로 Provider의 값을 일회성으로 읽어올 때 사용된다.
   - EX) 초기화 작업이나 일회성 계산에 사용할 수 있다.

 

2. context.watch()

   - context.watch()는 주어진 Provider의 상태 변화를 구독하고, 해당 데이터를 읽어오는 메서드이다.
   - Provider의 상태가 변경될 때마다, 구독한 위젯이 Rebuild된다.
   - 주로 UI에 Provider의 데이터를 표시하거나, 데이터 변경에 따라 UI를 업데이트할 때 사용된다.
   - Provider의 상태 변화를 실시간으로 모니터링하고 반영한다.

예를 들어, Counter 앱에서 context.read()를 사용하여 초기 값을 읽어올 수 있고,

context.watch()를 사용하여 카운터 값의 변화를 UI에 반영할 수 있다.

class CounterScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final counter = context.watch<CounterProvider>(); // 상태 변화 구독

    return Scaffold(
      appBar: AppBar(
        title: Text('Counter App'),
      ),
      body: Center(
        child: Text(
          '${counter.value}', // Provider 값 표시
          style: TextStyle(fontSize: 32),
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () => context.read<CounterProvider>().increment(), // 일회성 읽기
        child: Icon(Icons.add),
      ),
    );
  }
}




3. Navigator로 스크린(페이지)을 이동할 때의 주의할 점

Navigator.push() 나 Navigator.pushAndRemoveUntil() 같이 페이지를 이동할 때 사용하는

PageRoute는, 주로 MaterialPageRoute를 사용해서 화면을 이동하고 있다.

 

그러나, MaterialPageRoute는 도착한 곳의 위젯의 build() 메서드에서 Scaffold가 선언되어 있어야 한다!

 


4. IconKitchen

안드로이드, iOS, 웹 (기타 macOS 등등) 에 맞는 아이콘을 규칙에 맞게 생성할 수 있도록 도와준다.

 

https://icon.kitchen

 

 


5. [플러터] 앱의 패키지 이름, 프로젝트 이름 변경하는 법

✅ change_app_package_name 패키지

 

https://dev-nam.tistory.com/46

 

[flutter] 앱의 패키지 이름을 변경하는 방법

플러터에서 앱의 패키지 이름을 변경하는 방법 앱을 출시하려고 빌드하는 과정에서 앱의 패키지 이름을 변경해야 하는 경우가 있습니다. 이때 패키지 이름을 어떻게 변경하는지 알아보겠습니

dev-nam.tistory.com

 

패키지 설치

$ flutter pub add change_app_package_name

 

설치가 끝났다면 다음 명령어에 [com.new.package.name] 부분에 원하는 패키지 이름을 넣어서, 실행

$ flutter pub run change_app_package_name:main {여기에 수정할 패키지 이름}

 


✅ 프로젝트 이름 변경

https://blueming-dev.tistory.com/39

 

flutter app 이름 변경하기

처음부터 다시 배운다는 마음으로 열심히 flutter에 대해서 공부하고 혹시 다음에도 또 찾을 것 같은 것들을 기록하기로 마음 먹었습니다. 전에도 다 했던 것들인데 다시 열어보니 정말 ??? 물음표

blueming-dev.tistory.com

 


 

'Dart와 Flutter' 카테고리의 다른 글

Flutter 소소한 팁  (0) 2024.11.27
강의 내용 정리 - [Flutter로 메신저 앱 만들기]  (0) 2024.10.28
Provider와 Riverpod  (2) 2024.10.11
Flutter 개발 중 발생할 수 있는 에러 정리  (0) 2024.06.19
'Dart와 Flutter' 카테고리의 다른 글
  • Flutter 소소한 팁
  • 강의 내용 정리 - [Flutter로 메신저 앱 만들기]
  • Provider와 Riverpod
  • Flutter 개발 중 발생할 수 있는 에러 정리
달거달거
달거달거
개발자를 꿈꿉니다
  • 달거달거
    SWEE IT
    달거달거
  • 전체
    오늘
    어제
    • 분류 전체보기 (288)
      • 개발 환경 (5)
        • VSCode (1)
        • 파이썬 (Anaconda) (1)
        • Git (1)
        • Flutter (0)
        • Kotlin (1)
      • Spring (5)
        • 스프링 부트와 JPA 실무 완전 정복 로드맵 (2)
        • 스프링 부트와 AWS로 구현하는 웹 서비스 (1)
        • 채쌤의 스프링 부트 프로젝트 (1)
      • 알고리즘과 코딩 테스트 (16)
        • 파이썬 문법 (2)
        • 백준 25단계 (10)
        • 프로그래머스 코딩 테스트 고득점 Kit (1)
        • 코틀린 문법 (1)
      • 요리 (236)
      • 데이터베이스 (2)
        • MySQL (2)
      • 안드로이드 (11)
        • 연습 코드 (6)
        • 도서 내용 정리 (4)
      • Dart와 Flutter (12)
        • 도서 내용 정리 (4)
        • Flutter 위젯 정리 (1)
        • 15개 프로젝트 (2)
      • 피그마 (0)
        • 도서 내용 정리 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    docker
    파이썬
    안드로이드
    주석
    데이터베이스
    코딩 테스트
    JPA
    spring
    코틀린
    c++
    자취요리
    피그마
    티스토리챌린지
    프로그래머스
    node.js
    알고리즘
    AWS
    mysql
    문법
    DART
    머신러닝
    vscode
    git
    오블완
    아나콘다
    C
    백준
    Flutter
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
달거달거
강의 내용 정리 - [Flutter로 SNS 앱 만들기]
상단으로

티스토리툴바