В Ionic я могу создать одно приложение и во время выполнения Ionic выбрать подходящий скин Купертино или Android.
Может ли Flutter сделать то же самое? Я прочитал документацию, но не вижу оберток вокруг виджетов Android и Cupertino.





Есть и нет, некоторые виджеты работают по-разному в зависимости от платформы. Например, ScrollView, который отскакивает на iOS и создает оверлей, похожий на волну, на Android.
Но для настоящего нативного опыта вам нужно создать свои собственные виджеты, которые создают пользовательский интерфейс Material или Cupertino.
Пример:
...
Widget _customButton() {
return Platform.isIOS
? CupertinoButton(
child: Text('Tap me'),
onPressed: () {},
)
: RaisedButton(
child: Text('Tap me'),
onPressed: () {},
);
}
...
Если вы хотите создать отдельные «образы» для iOS и Android, вы можете использовать такой плагин:
https://pub.dartlang.org/packages/flutter_platform_widgets#-readme-tab-
У вас есть полный контроль над тем, какие части вашего пользовательского интерфейса должны зависеть от платформы, а какие вы хотите сохранить единообразием. Например, вы можете создать свою собственную настраиваемую кнопку вместо кнопки Купертино на iOs и RaisedButton на Android, но вы можете захотеть использовать разные виджеты TextField на iOs и Android.