| # Migration guide |
| |
| This migration guide details how to migrate to `package:platform` version 3.2, |
| from earlier Dart platform APIs located in: |
| |
| - `dart:io` |
| - `package:platform` version 3.1 |
| - `package:os_detect` |
| |
| # From `dart:io` |
| |
| The `dart:io` core library is only available on Dart native platforms |
| (and, for example, not available on Dart web platforms). |
| We recommend migration to `package:platform` version 3.2, as the APIs in |
| `package:platform/platform.dart` are available on all current platforms. |
| |
| ### General platform APIs |
| |
| The `dart:io` library exposes host platform information as static members of the |
| `Platform` class. This API has historically been made available on some |
| platforms that don't otherwise support `dart:io`. |
| |
| To migrate uses of that API to `package:platform` version 3.2, use the |
| similarly-named members on the `Platform.current` object. |
| |
| Migrate from: |
| ```dart |
| import 'dart:io'; |
| |
| bool onAndroid = Platform.isAndroid; |
| ``` |
| |
| To: |
| ```dart |
| import 'package:platform/platform.dart'; |
| |
| bool onAndroid = Platform.current.isAndroid; |
| ``` |
| |
| ### Native-only |
| |
| The remaining `dart:io` APIs on the `Platform` class, are only available on |
| native platforms (and not, for example, on the web). |
| |
| To migrate those to `package:platform`, use the `nativePlatform` getter. Note |
| that this will return `null` when not on a native platform. You can test if you |
| are on a native platform using `Platform.current.isNative`. |
| |
| Migrate from: |
| ```dart |
| import 'dart:io'; |
| |
| String hostname = Platform.localHostname; |
| ``` |
| |
| To: |
| ```dart |
| import 'package:platform/platform.dart'; |
| |
| if (Platform.current.isNative) { |
| String hostname = NativePlatform.current!.localHostname; |
| } |
| ``` |
| |
| # From `package:platform` version 3.1 |
| |
| _Note: This migration can be performed automatically by running `dart fix`._ |
| |
| ### General platform APIs |
| |
| The general APIs in `package:platform` v3.1, that determine what the host |
| platform is, rely on instantiating an instance of the `LocalPlatform` class. In |
| v3.2 a new convenience `.current` getter can be used, which returns the current |
| host platform. |
| |
| Migrate from: |
| ```dart |
| import 'package:platform/platform.dart'; // version 3.1 |
| |
| bool onAndroid = LocalPlatform().isAndroid; |
| ``` |
| |
| To: |
| ```dart |
| import 'package:platform/platform.dart'; // version 3.2 |
| |
| bool onAndroid = Platform.current.isAndroid; |
| ``` |
| |
| ### Native-only |
| |
| APIs in `package:platform` which are available only on native platforms (and |
| not, for example, on the web) have been moved to the `NativePlatform` class, |
| accessible via the `nativePlatform` getter. Note that this getter will return |
| `null` when not on a native platform. You can test if you are on a native |
| platform using `Platform.current.isNative`. |
| |
| |
| Migrate from: |
| ```dart |
| import 'package:platform/platform.dart'; // version 3.1 |
| |
| String hostname = LocalPlatform().localHostname; |
| ``` |
| |
| To: |
| ```dart |
| import 'package:platform/platform.dart'; // version 3.2 |
| |
| if (Platform.current.isNative) { |
| String hostname = NativePlatform.current!.localHostname; |
| print(hostname); |
| } |
| ``` |
| |
| # From package:os_detect |
| |
| ### General platform APIs |
| |
| Migrate from: |
| ```dart |
| import 'package:os_detect/os_detect.dart' as Platform; |
| |
| bool onAndroid = Platform.isAndroid; |
| ``` |
| |
| To: |
| ```dart |
| import 'package:platform/platform.dart'; |
| |
| bool onAndroid = Platform.current.isAndroid; |
| ``` |
| |
| ### Native-only |
| |
| `package:os_detect` has no native-only APIs. |