En Flutter, los widgets MaterialApp () y CupertinoApp () dan la sensación de "Android" y "Apple" respectivamente. Me gustaría crear una aplicación que sirva para estos 2 sistemas operativos, pero la mayoría de las funciones serán las mismas, excepto por su apariencia. ¿Duplico mi código o hay alguna manera de escribir una vez y se puede exportar como .apk o .ipa?

[MY EXAMPLE OF DUPLICATING CODE]
if operating_system == "android"{
  runApp(MaterialApp(some code here))
} else if operating_system == "ios"{
  runApp(CupertinoApp(same code as above))
}
0
fendy3d 25 ago. 2020 a las 13:46

2 respuestas

La mejor respuesta

Sí para la interfaz de usuario, No para la mayor parte del backend.

Si desea una interfaz de usuario específica de la plataforma, como el botón, deberá verificar la plataforma y luego devolver el Material Widget o Cupertino Widget


import 'dart:io';
Platform.isIOS // Returns true on iOS devices
Platform.isAndroid // Returns true on Android devices

Esta publicación mediana explica cómo puede hacer esto en detalle: https://medium.com/@mehmetf_71205/platform-specific- ui-with-flutter-7a4da3cc6ed

Aquí están todos los widgets de Cupertino (iOS) disponibles: https://flutter.dev/docs/development/ui/widgets/cupertino

Aquí están todos los widgets de material (Android) disponibles:

https://flutter.dev/docs/development/ui/widgets/material



La mayor parte del comportamiento de la interfaz de usuario se adapta automáticamente mediante flutter mientras se ejecuta en iOS y Android. Este artículo muestra qué comportamientos y adaptaciones específicas de la plataforma hace Flutter automáticamente: https://flutter.dev/docs/resources/platform-adaptations


El backend de su aplicación no requerirá un código específico de la plataforma. Pero si desea utilizar un API específico de la plataforma, tendrá que escribir un código específico de la plataforma.

Esta publicación te ayudará con esto: https://flutter.dev/docs/development/platform-integration/platform- canales


0
Adithya Shetty 25 ago. 2020 a las 11:17

La respuesta depende de lo que necesites lograr,

Puedes escribir toda la interfaz de usuario para que coincida con el ios de Apple y se ejecutará sin ningún problema en Android, lo mismo en el caso de Android, por lo que depende completamente de ti, si necesitas personalizar tu aplicación para usuarios de diferentes plataformas móviles, luego debe escribir dos implementaciones de UI diferentes (aunque no completamente) o puede salirse con la suya usando una sola UI en todas las plataformas

0
Yadu 25 ago. 2020 a las 12:29
63577215