Reaching native capability.
WHAT PLATFORM CHANNELS DO
Allow Dart code to call native code on each platform.
WHEN YOU NEED THEM
Capabilities the framework and its packages do not cover.
WHAT THEY REQUIRE
Native code for each platform, written in that platform's language.
WHAT THAT MEANS
Cross-platform does not remove the need for platform knowledge entirely.
WHAT PACKAGES PROVIDE
Existing implementations for common needs: camera, location, storage, notifications, payments.
WHAT TO CHECK BEFORE ADOPTING A PACKAGE
Maintenance activity Platform support Whether it handles permissions correctly How widely it is used
WHY
Abandoned packages are a common source of blocked upgrades.
WHAT TO BE CAREFUL WITH
Packages wrapping native code you cannot inspect Packages requiring manual native configuration
WHAT TO ALWAYS HANDLE
The capability being unavailable Permission refused Platform differences in behaviour
WHAT TO TEST
On both platforms, physically.
WHY
Platform channel behaviour differs, and emulators do not reveal it.