본문 바로가기

Programming/Dart & Flutter

Flutter 7일 차 - Flutter for iOS devs (7/8), Interacting with hardware, third party services and the platform

반응형

Interacting with hardware, third party services and the platform

https://flutter.dev/docs/get-started/flutter-for/ios-devs#interacting-with-hardware-third-party-services-and-the-platform

How do I interact with the platform, and with platform native code?

Flutter 는 플랫폼에서 바로 코드를 실행하지 않는다.

Dartk 코드는 디바이스에서 네이티브하게 실행하는 Flutter 앱을 만든다.

 

Flutter 에서 네트워크 요청을 실행하면 Dart context 에서 바로 실행한다.

일반적으로 네이티브 앱을 만들때 사용하는 장점을 가지는 Android, iOS API 를 사용하지 마라.

Flutter 앱은 여전히 View 인 네이티브 앱의 ViewController 에서 실행된다. 그러나 ViewController 자체나 네이티브 프레임워크에 직접 접근은 하지 않는다.

 

Flutter 앱이 native APIs 또는 작성한 native code 와 상호작용을 할 수 없다는 의미는 아니다.

Flutter 는 Flutter view 가 있는 ViewController 와 데터를 교환하고 커뮤니케이션하는데 platfrom channel 을 제공한다.

Platform channel 은 본질적으로 dart 코드를 iOS framework 와 host ViewController 와 연결하는 비동기 메세징 메커니즘이다.

네이티브에서 메서드를 실행하거나 예를 들어 디비아스 센서로부터 데이터를 가져오는데 platform channel 을 이용할 수 있다.

 

추가적으로 plaform channel 을 바로 사용해야 한다면 특정 목적으로 작성된 native 또는 dart 코드로 캡슐화된 다양한 pre-made plugins 를 사용할 수 있다.

예를 들어 Flutter 에서 카메라, 앨범에 접근하려면 통합 코드 없이 plugin 을 사용할 수 있다. 

Plugins 는 Dart 와 Flutter 오픈소스 패키지 래퍼지토리인 pub.dev 에서 찾을 수 있다.

일부 패키지들은 iOS, Android, web 등의 네이티브 통합을 지원한다.

 

만약 pub.dev 에서 딱 맞는 플러그인을 찾을 수 없다면 직접 작성하여 pub.dev 에 올릴 수 있다.

 

 

 

 

 

 

 

 

반응형