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 we’d 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:
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:
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 won’t let us branch web-only logic in our app. There’s a different package that we can use to figure out if we’re running in web:
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:
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
- Sentry BlogFlutter Debugging: Top Tips and Tools You Need to Know
- Blog PostPub in Focus: The Most Critical Dart & Flutter Packages of 2024
- Listen to the Syntax Podcast
![Syntax.fm logo]()
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 150,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.
