❮
[Flutter] 9. Cupertino Widgets
20190930
Flutter의 큰 특징 중에 하나는 멀티 플랫폼에서 동일한 디자인의 앱을 만들어 낸다는 것입니다.
iPhone 11 Pro Max 에서 Material 스타일을 사용하고,
갤럭시 폴드에서 Cupertino 스타일의 앱을 사용하게 할 수 있습니다.
import 'package:flutter/cupertino.dart';
아무래도 구글이 안드로이드 편이다 보니 iOS 스타일의 위젯에는 앞에 'Cupertino' 가 꼭 들어갑니다.
플랫폼에 종속되지 않은 디자인의 앱을 만드는 것은 이따금 단점이 될 수도 있습니다.
평생 iOS만 쓰던 사람이 Cupertino Picker만 보다가 Material DropdownButton 같은 걸 보면 그 끔찍함에 기겁을 할 지도 모릅니다.
native 코드를 바꾸지 않고도 현재 플랫폼이 무엇인지를 판별하고 플랫폼에 맞는 위젯을 넣어줄 수 있습니다.
import 'dart:io' show Platform;
...
Widget getPicker() {
if (Platform.isIOS) {
return iOSPicker();
} else if (Platform.isAndroid) {
return androidDropdown();
}
}
...
? : 를 사용할 수도 있겠죠
child: Platform.isIOS ? iOSPicker() : androidDropdown(),