Upgrade to Pro — share decks privately, control downloads, hide ads and more …

플러터 업데이트 모아보기

플러터 업데이트 모아보기

2022년 3월 5일
Flutter Festival Extended Korea에서
'플러터 업데이트 모아보기'라는 주제로 진행했던 세션의 PPT 입니다.

Avatar for HongJongPyo

HongJongPyo

March 05, 2022
Tweet

More Decks by HongJongPyo

Other Decks in Programming

Transcript

  1. Flutter 업데이트 모아보기 Flutter 2.0 ~ 2.10, Dart 2.12 ~

    2.16 애드포러스 앱 개발자 홍종표
  2. 2021.03.03 2021.05.19 2021.09.08 2021.12.08 Flutter Engage Flutter 2.0 Dart 2.12

    2022.02.03 2022.01 Flutter Timeline Google I/O Flutter 2.2 Dart 2.13 Flutter 2.5 Dart 2.14 Flutter 2022 Roadmap Flutter 2.8 Dart 2.15 Flutter 2.10 Dart 2.16
  3. Flutter 2.0 & Dart 2.12 2021.03.03 Flutter Engage 행사에서 Flutter

    2.0과 Dart 2.12 업데이트가 발표되었습니다. • Null-safety • Web release • Desktop pre-release • Flutter Engage Extended Korea
  4. Null-Safety ?와 late 키워드로 null error로부터 안전한 코드 작성 Null-Safety가

    필요한 이유 null인줄 모르고 변수의 메소드를 호출해서 프로그램이 다운될 때가 있습니다. Null-Safety는 null을 사용안한다? Null을 사용합니다. 변수가 null을 허용하는지 여부를 Edit-Time에 체크하는 것 Null-Safety의 장점 코드 작성 à 컴파일 à 동작 (null error 발견) 코드 작성 à (null error 발견)
  5. 9

  6. Flutter 2.2 & Dart 2.13 2021.05.19 Google I/O 행사에서 Flutter

    2.2과 Dart 2.13 업데이트가 발표되었습니다. • DartPad workshops • Flutter at Google I/O • Google I/O Extended with double S • Flutter Favorites Package
  7. 높은 품질 표준을 통과한 패키지들 새롭게 추가 된 Flutter Favorites

    • FlutterFire 패키지들 (cloud_firestore, cloud_functions, firebase_auth, firebase_core, firebase_crashlytics, firebase_messaging, firebase_storage) • Flutter Community의 plus 패키지들 (android_alarm_manager_plus, android_intent_plus, battery_plus, connectivity_plus, device_info_plus, network_info_plus, package_info_plus, sensors_plus, share_plus) • 네이티브 오류를 캡처해주는 sentry & sentry_flutter • infinite_scroll_pagination & flutter_native_splash 패키지
  8. Lint 자동 적용 소스 코드를 분석하여 모범적인 코딩 관행을 장려하는

    도구 기본 규칙 pub.dev의 채점 기준 기본 규칙 + 권장 규칙 모든 다트 코드에 권장 기본 규칙+ 권장 규칙 + 플러터 특별 권장 규칙 모든 플러터 코드에 권장
  9. 새로운 템플릿 Skeleton 추가 커뮤니티 모범 사례를 따르는 2페이지의 리스트

    뷰(디테일 뷰 포함) 앱 $ flutter create -t skeleton my_app • ChangeNotifier • arb파일을 이용하여 현지화 • 해상도 별 이미지 등록 • 기능 우선 폴더 구성 • Shared Preferences 지원 • Light & Dark 테마 지원 • 화면 이동 https://github.com/esDotDev/flutter_experiments https://blog.gskinner.com/?s=skeleton
  10. class SomeObject{ final Object a, b, c; SomeObject(this.a, this.b, this.c);

    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);
  11. Flutter 2.8 & Dart 2.15 2021.12.08 • Webview 3.0 •

    Flutter Favorites Package • find.image 추가
  12. 많은 업데이트를 받은 Webview 패키지 WebView 3.0 • (Android) Virtual

    Displays -> Hybrid Composition • String, File로 HTML 로드 • POST 및 GET 지원
  13. 높은 품질 표준을 통과한 패키지들 새롭게 추가 된 Flutter Favorites

    • 새로운 라우터 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
  14. Flutter 2022 Roadmap 2022.01 • Flutter Desktop Release • 개발자

    경험 향상 • 정적 메타 프로그래밍 지원 로드맵을 공유해 다른 사람들이 우선순위를 보고 현재 진행중인 일을 기반으로 계획을 세울 수 있도록 공개
  15. 2022년에 가장 중점을 둘 영역 개발자 경험 향상 • 자주

    보이는 패턴을 정리하기 위한 새로운 API 도입 • Flutter Web의 Hot reload 기능 • 오류 메시지 개선 • 새로운 린트 추가 • 더 유용한 예시
  16. 코드 생성 없이 Data Class 만들기 정적 메타 프로그래밍 메타

    프로그래밍이란? 다른 코드를 생성하는 코드 입니다. 예시) build_value, freezed, json_serializable, moor(drift) 현재의 불만들 변경 사항 생기면 생길 때 마다 코드 재생성으로 인한 시간 소모가 크다. 코틀린처럼 data class를 그냥 만들 수 있었으면 좋겠다는 의견이 굉장히 많습니다. 해결 방법 정적 메타 프로그래밍(Static metaprogramming)
  17. Flutter 2.10 & Dart 2.16 2022.02.03 • Flutter Windows Release

    • Android 관련 변경사항 • 통합 테스트 (Integration Test) • Pub.dev 검색 UI 변경
  18. Android 관련 업데이트 기본 지원 SDK 변경 Android 12 (API

    level 31) * android:exported 속성 관련 주의 코틀린 버전 변경 1.5.31 이상으로 변경 Gradle 에러 메시지 출력 방식 변경
  19. 전체적으로 어떻게 동작되는지 혹은 실제 장치에서의 성능을 검사하는 통합테스트 통합

    테스트(Integration Test) 2020년도에 flutter_driver를 대체하기 위한 integration_test라는 새로운 통합 테스트 패키지를 발표되었습니다. 2.10버전으로 업데이트되면서 기존에 있던 문서들과, 샘플, 코드랩이 업데이트 되었습니다.