필요한 이유 null인줄 모르고 변수의 메소드를 호출해서 프로그램이 다운될 때가 있습니다. Null-Safety는 null을 사용안한다? Null을 사용합니다. 변수가 null을 허용하는지 여부를 Edit-Time에 체크하는 것 Null-Safety의 장점 코드 작성 à 컴파일 à 동작 (null error 발견) 코드 작성 à (null error 발견)
뷰(디테일 뷰 포함) 앱 $ flutter create -t skeleton my_app • ChangeNotifier • arb파일을 이용하여 현지화 • 해상도 별 이미지 등록 • 기능 우선 폴더 구성 • Shared Preferences 지원 • Light & Dark 테마 지원 • 화면 이동 https://github.com/esDotDev/flutter_experiments https://blog.gskinner.com/?s=skeleton
bool operator ==(Object other) => other is SomeObject && a == other.a && b == other.b && c == other.c; int get hashCode => a.hashCode ^ b.hashCode ^ c.hashCode; } dart:core 패키지에 hash 관련 메소드 추가 “조금 더 편하게 hashCode 메소드를 override 할 수 있습니다.” int get hashCode => Object.hash(a,b,c);
• 새로운 라우터 API(Navigator2.0)에 대한 세 라우터 패키지 beamer, route master, go router • Flutter와 Dart 용으로 SQLite를 보다 쉽게 만들어주는 패키지의 이름 변경 moor -> drift • Data Class와 Union/Sealed Class를 자동 생성해주는 freezed • 코드 품질을 분석하고 개선하는데 도움을 주는 정적 분석 도구 dart_code_metrics • 멋진 GUI 패키지들 flex_color_scheme, flutter_svg, feedback, toggle_switch, auto_size_text
프로그래밍이란? 다른 코드를 생성하는 코드 입니다. 예시) build_value, freezed, json_serializable, moor(drift) 현재의 불만들 변경 사항 생기면 생길 때 마다 코드 재생성으로 인한 시간 소모가 크다. 코틀린처럼 data class를 그냥 만들 수 있었으면 좋겠다는 의견이 굉장히 많습니다. 해결 방법 정적 메타 프로그래밍(Static metaprogramming)