|
|
1
5
我会先为目标受众最大的平台(比如你的杀手级应用)开发,然后利用我在开发过程中学到的不可避免的经验教训来改进我为其他平台开发的方式。 |
|
|
2
5
尽管我一直在狂热地寻找适用于这两个平台的桌面解决方案,但我认为两次构建应用程序没有任何问题。…可能是有道理的。 也就是说,我认为你不应该先建造一个,然后再建造另一个,而是试着做一些非常困难的事情,比如 对两者使用相同的UML类图。 这将迫使您将应用程序划分为以下部分: 完全相同的 以及根据定义特定于平台的部分。 我们的想法不是共享代码库,而是共享软件设计。 |
|
|
3
4
您最初应该专注于为一个平台编写应用程序,并担心以后移植它。如果你不完成你的项目,它肯定会失败,试图同时为两个平台编写它肯定会增加整体开发时间。你能说出一款因为不支持多个平台而失败的商业软件吗? |
|
4
2
你提到的利弊都是绝对正确的。就我个人而言,我讨厌回去重新做一些事情,即使是用不同的语言,而不是不断地在精神上转换语言思维。我每天都在做这件事,我用Python做服务器开发,用JavaScript做客户端开发。 话虽如此,将低级内容与高级UI内容分开怎么样。在每个平台中构建底层内容,以便它们具有完全相同的API。底层内部实现可以完全不同,这并不重要,只要它们都公开了相同的接口。我想你会发现这样做很有趣。你还说你希望UI在每个平台上都是原生的,那么为什么不考虑像Java中的SWT这样的东西呢。如果SWT和Java不是一种选择,那么我想你必须使用WPF和Cocoa构建高级内容。但到这个时候,您的工作会更容易,因为您将调用以前在低级库中构建的相同的API。 |
|
|
5
1
如果我是你,我会选择跨平台框架和/或编程语言,现在你有很多跨平台的语言/框架,比如Java、QT(使用Java和C++语言)、C#与MONO、GTK+与C(gtkmm与C++、GTK#和MONO用于C#)。因此,如果你用一种语言/框架做这件事比同时用两种语言/架构做更简单,因为如果你用两种不同的语言/框架编写同一个应用程序,你将花费额外的开发时间,其中一半的时间你可以掌握新的框架和语言,因为你从一开始就知道你的目标平台是多平台的。如果现在你的主要平台是Windows,后来的Mac用户非常喜欢这个应用程序,那么重写它的原因就是针对另一个平台并使用它的开发工具。 |
|
|
6
1
你确定你不能将低级服务抽象为一个通用接口,并且仍然有足够的应用程序(如UI)来让跨平台开发更经济吗?如果你想有一个快速的上市时间,计划每件事都做两次听起来很浪费。 |
|
|
7
1
使用第三种语言作为母语调用的粘合剂怎么样? 我听说python或ruby具有很好的本地库集成能力。差异可以通过内部API进行抽象。 这样,所有的逻辑都可以设置在第三种语言中,特定的部分可以设置在另一种语言中。 Java可能也是如此,但我认为集成看起来有点困难。 顺便说一句,这就是(或者曾经是?)java.io.File这样的类的工作方式。 告诉我们事情进展如何。 编辑 我认为大公司这样做的方式是使用C++,并使用fork来编写特定于平台的代码。 |
|
|
8
0
如果你无论如何都要学习一项新技术(Objective-C),我会再看一看Java。试图在两个不同的平台上开发同一个程序两次,同时学习太多东西,可能意味着你最终会得到一个在两个平台上都能很好地工作的程序——或者如果你被诱惑使用一个平台上可用的功能,而在另一个平台却无法使用,那么你会陷入无法支持的混乱。 如果你使用Java,你只需要处理每个平台上的一些UI和安装怪癖——你的大部分应用程序(以及重要的是,你所做的任何错误修复)都会立即移植。Java UI现在看起来相当成熟,并且有很多可重用的UI代码(例如JIDE组件很好)。如果你的应用程序想法真的是杀手锏,你可以在赚到数百万美元后雇佣员工来做“一流的公民应用程序”。 你还可以看看其他跨平台应用程序是如何成功交付的——例如,看看firefox、thunderbird、openoffice,看看你可以重用什么。我也知道一些用Java开发的跨平台应用程序,例如我使用PersonalBrain和crashplan,它们似乎都是基于Java的,而且根本没有侵入性。(有趣的是,PersonalBrain最初只提供Windows,然后他们进行了Java重写。然而,有些功能仍然是Windows专用的,但我很高兴在Mac上使用它。) 这在一定程度上取决于你想写的应用程序——例如,你想在某个时候支持iPhone吗?如果是这样,目前别无选择,只能使用目标C,如果你提前计划,你可能会看到MacOSX工作的一些重用。 无论你做什么,我肯定会建议将UI与程序的主逻辑分开,并使主逻辑尽可能直接可移植。否则,你将在每个平台上重新发明每个轮子。 |
|
|
9
0
正如我通常在回答这样的问题时提到的,你至少也应该看看 Real Studio ,它允许您从相同的代码库创建本机桌面应用程序。它还允许您使用声明或插件连接到低级服务。 |
|
itMaxence · 从c库调用objective-c方法 8 年前 |
|
|
seladb · Makefile-目录不存在时失败-跨平台 8 年前 |
|
|
Ryan · 调整StackLayout元素的高度 8 年前 |
|
|
Sergei G · C printf跨平台格式,无警告[重复] 8 年前 |