Null 안전성과 C 상호 운용성을 갖춘 Dart 2.12가 출시되었습니다.

Google은 Flutter에서 앱을 빌드하는 데 사용되는 언어의 새로운 버전인 Dart 2.12를 출시했습니다. 이번 릴리스는 Flutter 2.0과 함께 제공됩니다.

와 더불어 Flutter 2.0 출시, Google은 Dart 2.12도 안정화 버전으로 출시했습니다. 몰랐을 경우를 대비해 Dart는 Flutter가 사용하는 언어입니다. 이는 TypeScript 기반 언어이지만 제가 곧 다루게 될 기능을 포함하여 일부 언어 기능이 추가되어 있습니다.

안전이 무효화됨

Null 안전은 매우 훌륭한 언어 기능입니다. 이를 통해 변수가 null이 될지 여부를 고려하고 잠재적인 null 상황을 명시적으로 처리하는 동시에 특정 변수가 null이 되지 않도록 보장할 수 있습니다.

Dart 2.12에서는 이제 Swift 및 Kotlin과 유사한 구문을 사용하여 null 안전성을 완벽하게 지원합니다. 스마트 캐스팅도 있습니다. Dart가 일반적으로 null을 허용하는 변수가 null이 될 수 없다는 것을 확실히 알면 이를 암시적으로 null을 허용하지 않는 형식으로 캐스팅합니다.

null 안전성은 (매우) 획기적인 변경이므로 이 기능은 선택되어 있습니다. Dart 2.12로 업데이트하면 컴파일이 중단되지 않으며 모든 항목에 null 허용 여부 힌트를 추가하는 데 몇 시간을 소비할 필요가 없습니다. 프로젝트가 아직 null 안전하지 않은 경우 null 안전 종속성을 사용할 수도 있습니다.

마이그레이션하기로 결정한 후에는 내장된 마이그레이션 도구(다트 마이그레이션) 및/또는 마이그레이션 가이드 모든 것을 설정하려면

또한 Dart 2.12에는 Null 안전성이 포함되어 있지만 새 Flutter 프로젝트를 생성하면 Null 안전성이 기본적으로 활성화되지 않습니다. 수동으로 활성화해야 합니다. 새로운 Dart 프로젝트에는 null 안전이 활성화됩니다.

외부 함수 인터페이스

Dart(및 Flutter)는 완전한 크로스 플랫폼 호환성에 초점을 맞추고 있지만 여전히 기본적으로 수행해야 할 몇 가지 작업이 있습니다. 기본 작업을 더 쉽게 만들기 위해 Dart에는 FFI(외부 함수 인터페이스)가 있습니다. FFI를 사용하면 이상한 문자열 기반 API 호출이나 기타 투박한 상호 운용성 방법에 의존하지 않고도 Dart의 C 코드와 상호 작용할 수 있습니다.

그리고 Dart 2.12를 사용하면 FFI가 이제 안정적입니다. 즉, 프로덕션 프로젝트에 사용할 준비가 되었으며 대부분 기능이 완벽해졌습니다.

이를 염두에 두고 몇 가지 주요 변경 사항을 포함하여 FFI에 몇 가지 변경 사항이 있습니다.

이번 릴리스에서 가장 중점을 둔 부분은 Dart와 C에서 구조체를 사용하는 방법이었습니다. 우선, 이전에는 참조만 지원되었던 참조 및 값으로 C 코드의 구조체를 전달할 수 있습니다. 또 다른 중요한 기능은 이번 릴리스 이전에는 제공되지 않았던 중첩 구조체에 대한 지원입니다.

이제 주요 변경 사항을 살펴보겠습니다. FFI를 사용하는 경우 2.12에서 작동하도록 코드를 업데이트해야 할 수도 있습니다. 이 버전의 FFI에서는 더 이상 빈 구조체를 생성할 수 없습니다. 어떤 이유로든 필요한 경우 새로운 "불투명" 유형을 사용할 수 있습니다. FFI 내장 기능 중 일부가 작동하는 방식에도 몇 가지 변경 사항이 있습니다. 여기에 대해 읽어보세요.

마지막으로 기존 C 헤더 파일에서 FFI 래퍼를 생성할 수 있는 FFI용 새 패키지가 있습니다. 피겐. 많은 API 메소드와 함께 사용해야 하는 C 코드가 많다면 이는 꽤 도움이 될 것입니다. 가지고 있는 C 코드의 양이 적더라도 이 기능은 좋은 편의 기능입니다.


Dart 2.12에서는 이것이 거의 전부입니다. 널 안전성과 안정적인 C 상호 운용성 라이브러리가 추가되면서 Dart는 기능이 매우 풍부한 언어로 변모하고 있습니다. 댓글로 Dart 2.12에 대한 여러분의 생각을 알려주세요!