티스토리 뷰
Google I/O 2022에서 Flutter 3.0이 발표 되었습니다.
1년 전쯤 flutter 2.0으로 업데이트 된 이후 1년 만에 메이저 버전이 업데이트 되었는데 개인적으로 의미 있는 것들이 있어 정리해 보고자 합니다.
https://medium.com/flutter/introducing-flutter-3-5eb69151622f
1년 전 flutter 2.0는 Dart 2.12.0 적용으로 Null Safety대응 문제로 flutter 1.x와 전혀 호환이 되지 않았습니다.
2.0으로 전환을 위해서는 코드를 수정하는 마이그레이션이 필요했기 때문에 쉽게 2.0으로 전환하지 못하는 프로젝트도 있었습니다.
참고 : https://ctoahn.tistory.com/3
이번 업데이트에서는 2.0으로 전환할 때처럼 코드 단위까지 마이그래이션은 필요하지 않을 것 같습니다.
최근 Flutter의 업데이트가 빠르기 진행되고 있어서 언젠가 3.0으로 업데이트될 거라 생각은 했지만 1년 만에 3.0으로 release 는 예상보다 많이 빠른 것 같네요.
모바일 개발자 입장에서는 1.x에서 2.0으로 넘어올 때에 비해 큰 변화를 느끼지는 못 했습니다. Flutter 3.0은 Dart 2.172.17을지원하는데 몇 가지 업데이트가 있지만 언어적으로는 통상적인 마이너 업데이트로 보입니다.
Flutter 진영에서 이번 업데이트를 2.11이 아닌 3.0으로 발표한 것은 아마 지원 가능한 모든 플랫폼들에 대해서 Beta가 아닌 Stable버전을 지원하게 되었다는 것에 큰 의미를 부여하는 것으로 같습니다.
Flutter 3.0의 주요 업데이트 내용
1. Linux, MacOS의 정식 지원
가장 중요한 업데이트로 Flutter가 진정한 크로스 플랫폼용 기술이 되었다고 볼 수 있습니다.
진심으로 Flutter가 더욱 발전해서 크로스 플랫폼용 기술의 끝판왕이 되길 기원합니다.
2. Material Design3 지원
Material Design 3을 공식 지원합니다.
기본 테마의 일부를 변경하거나 Meterial Design3용 위젯을 별도로 제공할 것으로 보입니다.
https://github.com/flutter/flutter/issues/91605
3. Firebase 진영에서의 Flutter정식 지원
Firebase에서도 Flutter를 지원하는 라이브러리들을 제공하고 있었지만 이제는 정말 공식적으로 지원하네요.
Firebase 사이트에도 Flutter 앱 설정 탭이 새롭게 생길 것이라고 합니다.
( 지금 확인했을 때는 아직 해당 기능이 활성화되어 있지는 않지만 나중에 사용 가능할 때 확인해보야 겠습니다.)
4. Flutter Game?
쉽게 게임을 만들어 볼 수 있는 toolkit를 제공한다고 합니다.. Flutter 2.8에서 Flame을 소개 한 이후 한 번 더 게임과 관련된 내용이 추가되었습니다. Flutter가 크로스 플랫폼으로써 게임 영역까지 확대하고 싶어 하는 것 같네요.
이제 모바일 개발자도 별도의 학습 없이 Flutter로 게임을 만들 수 있게 될까요? 물론 모바일 개발과 게임 개발을 똑 같이 접근 하기는 힘들 것입니다. 게임 엔진에 대한 학습도 따로 필요하겠지만 완전히 새롭게 시작하는 것보다는 조금은 쉽게 게임 개발을 시작해 볼 수는 있지 않을까요?
5. Dart 2.17
enum 생성자, super를 이용한 생성자에서의 쉬운 인자 전달 등 몇 가지 편리한 기능을 문법적으로 제공합니다.
개인적으로 enum 생성자를 수정할 수 있는 기능이 추가된 부분이 좋아 보이네요. 다른 언어에 비해 enum을 확장해서 사용하는 게 많이 불편했었는데 조금은 개선된 것 같습니다. 하지만 기존에 작성된 코드를 일부러 변경할 필요는 없어 보입니다.
이번 업데이트로 앱 개발에 큰 변화가 생길 것 같지는 않습니다. 하지만 Flutter가 크로스 플랫폼 기술로써 좀 더 발전하고 있는 모습을 보여주었으며, 앞으로 Flutter가 어떤 게 발전할지 명확하게 선언한 업데이트로 보입니다.
팀에서 Mac용 앱을 만드는 일도 함께 하고 있는데 Flutter로 Mac용 앱을 개발하는 것을 시도해볼 수 있을 것 같아 나름 의미 있는 업데이트로 기억될 것 같습니다.
'Flutter' 카테고리의 다른 글
[Flutter] Freezed : 우리는 왜 immutable 객체를 사용해야 하는가? (0) | 2022.07.06 |
---|---|
[Flutter/Dart] dart에서 열거형(enum) 의 효율적인 변환과 활용 (4) | 2022.05.30 |
[Flutter] Lint : 코딩컨벤션 (0) | 2022.01.11 |
[Flutter] Equatable : equals와 hashCode를 위한 라이브러리 (0) | 2021.12.27 |
[Flutter] intl & intl_utils : 국제화(다국어처리) 라이브러리 (0) | 2021.12.17 |
- Total
- Today
- Yesterday
- StatefulWidget LifeCycle
- flutter2.0
- flutter 다국어처리
- widget element
- Element LifeCycle
- Android
- Flutter LifeCycle
- flutter l10n
- DART
- json_serializable
- MVVM
- python3
- Mutiple Flutter
- flutter_secure_storage
- LocalKey
- Flutter3.0
- flutter i18n
- Route
- enum member
- Flutter
- FlutterEngine
- flutter element
- Widget Tree
- navigator
- dart 2.17
- dart enum
- RenderObject
- Flutter TDD
- flutter mvvm
- freezed
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |