【问题标题】:Advice on the best way to go about developing an app for Android and iOS as first project关于开发 Android 和 iOS 应用程序作为第一个项目的最佳方式的建议
【发布时间】:2021-10-07 23:21:44
【问题描述】:

抱歉,如果标题措辞不够清楚。我需要在 Android 和 iOS 上为合作伙伴公司部署一个非常简单的应用程序(应用程序不需要在 App Store 或 Google Play 中)以通过蓝牙控制一些机器。界面需要非常基本,只包含几个按钮和一些显示一些信息的文本标签(并且能够读取二维码)。

我们不是移动开发公司,因此我没有任何构建此类应用程序的经验,但所需的功能似乎很简单,至少可以了解需要做什么。

现在,问题是我只知道 C/C++ 和 Python(对 Qt 框架的经验适中)并且不太愿意同时学习 Java 和 Swift。我可能会考虑专门为这样一个简单的项目学习 Swift,因为 iOS 开发与他们的平台非常相关,但 Java 是不可能的。我环顾四周,似乎有一种方法可以用 Python 编写它们并部署到每个平台,但有些事情告诉我,这并不值得可能出现的大量问题。关于如何处理这个项目,我需要你的帮助:

  1. 能否使用 python(或 C/C++)开发跨平台应用程序并部署到 iOS 和 Android(从而将整体开发时间减半),同时保持足够整洁的外观和蓝牙通信?
  2. 如果不能,我可以使用 C/C++ 或 Python 开发 Android 应用程序而没有巨大障碍吗?我更喜欢 Qt,因为我已经熟悉该框架,但我想它可以做到。
  3. 在根据第 2 点开发 Android 应用时,是否可以在每次更改代码时无需在手机上安装应用就可以看到该应用的外观?

对不起,如果帖子太长,我真的很好奇这样的任务有多难。我不想浪费时间为这个项目学习 2 门新语言,也不想因为我对一门新语言的了解不足而导致初学者遇到问题而耽误合作伙伴公司的时间。

【问题讨论】:

  • 作为一名 ios 开发人员,我不建议为 ios 部分尝试任何跨平台解决方案。您只会遇到更多问题,而且我认为这比根据互联网上的一些教程以本地方式进行操作需要更多时间。在 uikit 中创建一个 swift 和基本 ui 的基本应用程序并不难。找一些初学者教程,尝试走原生 ios 方式。
  • @LeszekSzary 感谢您的反馈!我也应该为此买一个mac和iphone吗?我确信公司不会愿意为 iPhone 和 Mac 付费,但我不想告诉他们这可以在 Windows 上完成,并且发现自己需要将开发资金转向购买。一些在线资源提到了 VM 和 swift 沙箱,但这样做可能不值得。
  • 是的,我担心你需要一台真正的 Mac 和真正的 iPhone。如果没有真正的 iphone,您将无法测试蓝牙,因此您肯定需要真正的 iphone 设备。而且你不能在没有 macos 的情况下编译应用程序,所以你需要一个真正的 mac(在 windows 上使用 VM 的解决方案是不合法的)。

标签: android ios cross-platform


【解决方案1】:

我真的不建议这种项目跨平台。蓝牙堆栈和 API 将大不相同,最大限度地减少代码共享的能力。 UI 堆栈完全不同。真正使用除 iOS 上的本机工具之外的任何东西都可能特别棘手。 Python 尤其困难,因为它并不意味着与任何一个平台交互。 C 会更容易,因为 Java(通过 JNI)和 Swift(通过目标 C 到 C 的桥接器)都可以调用 C 代码。但是两者的 UI 层是如此不同,以至于它只对业务逻辑有用,我仍然建议在原生平台中编写 UI。

如果你要尝试做跨平台,我会建议 react native 和 javascript,因为它是跨平台产品中最成熟的。也就是说,他们的蓝牙堆栈可能不存在或开发不佳,因为它不是许多选择 react native 的应用程序使用的类型,因此您可能必须深入研究并学习如何制作模块。

鉴于这将是一个公司特定的应用程序,而不是在应用程序商店 - 你真的需要同时支持这两种操作系统吗?还是可以在单一类型的公司设备上完成?推迟该产品要求可能是您最好的选择。

【讨论】:

  • 到目前为止,讨论已经很初步了,因为我决定在接受拒绝他们的提议之前对此进行研究。他们最初的请求列表提到了平台和蓝牙通信。我不确定他们对特定平台的关心程度,但我认为他们多付给我几块 Ks 比去给他们的员工购买新手机来运行这个应用程序更便宜。这么长时间我都没有问题,我对我正在研究的内容有一个相当清晰的了解。
猜你喜欢
  • 2011-09-13
  • 1970-01-01
  • 2013-06-05
  • 2020-01-02
  • 2012-03-05
  • 1970-01-01
  • 2013-05-17
  • 2017-07-17
  • 2011-05-08
相关资源
最近更新 更多