본문 바로가기

Programming/Flutter

OS 구분하기

Flutter의 가장 큰 장점이라고 하면 아무래도 한 번의 빌드로 안드로이드와 iOS 앱 모두 제작이 가능하다는 것이라고 할 수 있다. 하지만 막상 앱을 제작해보면 생각보다 친절하게 OS를 구분해주지는 않는다.

 

가령 다이얼로그나 팝업 메뉴를 표시할 때도 단순히 AlertDialog를 표시하면 안드로이드에서 사용하는 Material Design의 Alert Dialog만 표시된다.

 

이럴 땐 OS를 구분하여 직접 넣어줘야하는데 OS를 구별하는 방법은 두 가지가 있다.


1. foundation.dart 사용

'flutter/foundation.dart' 패키지를 import한다.

 

import 'package:flutter/foundation.dart';

 

그러면 defaultTargetPlatform으로 현재 OS 정보를 가져올 수 있게 된다.

 

if (defaultTargetPlatform == TargetPlatform.iOS) {
	//iOS
} else if (defaultTargetPlatform == TargetPlatform.android) {
	//Android
}

2. dart:io 사용

'dart:io'를 Platform의 이름으로 import한다.

 

import 'dart:io' show Platform;

 

Platform 내에 OS를 판별하는 인자가 들어있다. 이를 사용해 OS를 구분할 수 있다.

 

if (Platform.isIOS) {
	//iOS
} else if (Platform.isAndroid) {
	//Android
}