Sentry Answers>Flutter>

Detecting the host platform in Flutter

Detecting the host platform in Flutter

Lazar Nikolov

The problem

Flutter is a cross-platform framework, which means it can run on multiple platforms. Most of the time we want our app to look consistent on all platforms, but there are use cases where wed like to run different code on different platforms, or render different widgets.

The solution

The mobile-only approach

The dart:io package exports a Platform class that we can use to check the platform our app is running on. Let’s import the Platform class:

Click to Copy
import 'dart:io' show Platform;

The Platform class has boolean properties like isAndroid and isIOS that we can use to branch our platform-specific logic:

Click to Copy
if (Platform.isAndroid) { // Run Android specific code } else if (Platform.isIOS) { // Run iOS specific code } else if (Platform.isMacOS) { // Run MacOS specific code } else if (Platform.isWindows) { // Run Windows specific code } else if (Platform.isLinux) { // Run Linux specific code } else if (Platform.isFuchsia) { // Run Fuschia specific code } else { // Unknown platform }

The Flutter web approach

As we know, Flutter also runs on the web, but the previous solution wont let us branch web-only logic in our app. Theres a different package that we can use to figure out if were running in web:

Click to Copy
import 'package:flutter/foundation.dart' show kIsWeb;

The flutter/foundation.dart package exports a kIsWeb boolean, so we can use it similarly to the previous example:

Click to Copy
if (kIsWeb) { // Run Web specific code } else { // Must be some of the other platforms }
  • ResourcesSentry vs. Crashlytics: The Mobile Developer's Decision-Making Guide
  • Syntax.fmListen to the Syntax Podcast
  • Syntax.fm logo
    Listen to the Syntax Podcast

    Tasty treats for web developers brought to you by Sentry. Get tips and tricks from Wes Bos and Scott Tolinski.

    SEE EPISODES

Considered “not bad” by 4 million developers and more than 100,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.

© 2024 • Sentry is a registered Trademark of Functional Software, Inc.