如何解决我们是否必须在Flutter中编写两次代码才能导出为iOS和Android?
在Flutter中,MaterialApp()和CupertinoApp()小部件分别提供“ Android”和“ Apple”的感觉。我想构建一个可为这两个操作系统提供服务的应用程序,但除了外观外,大多数功能都将相同。我要复制代码还是有写一次的方法,可以将其导出为.apk或.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))
}
解决方法
对于用户界面是,对于大多数后端,是。
如果要使用平台特定的UI(例如Button),则必须检查平台,然后返回Material Widget
或Cupertino Widget
import 'dart:io';
Platform.isIOS // Returns true on iOS devices
Platform.isAndroid // Returns true on Android devices
此中级帖子详细说明了如何执行此操作: https://medium.com/@mehmetf_71205/platform-specific-ui-with-flutter-7a4da3cc6ed
以下是所有可用的Cupertino(iOS)小部件: https://flutter.dev/docs/development/ui/widgets/cupertino
以下是所有可用的Material(Android)小部件:
https://flutter.dev/docs/development/ui/widgets/material
在iOS和Android上运行时,大多数UI行为都会通过抖动自动调整。 本文介绍了平台特定的行为和适应颤振自动执行的操作: https://flutter.dev/docs/resources/platform-adaptations
您的App后端将不需要平台特定的代码。但是,如果要使用特定于平台的API
,则必须编写特定于平台的代码。
这篇文章将帮助您: https://flutter.dev/docs/development/platform-integration/platform-channels
,
答案取决于您需要实现的目标,
您可以编写整个UI来匹配Apple的ios,并且它可以在android上运行而没有任何问题(与Android相同),因此如果您需要针对不同用户的个性化应用,它完全取决于您移动平台,那么您必须编写两个不同的UI实施(尽管不完全),否则您将无法在所有平台上使用单个UI
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。