2008-11-24 9 views
5

Was halten Sie davon, ob Sie eine Anwendung für eine bestimmte Plattform schreiben oder einen plattformübergreifenden Ansatz verwenden und mehr potenzielle Kunden erreichen?App entwickeln, um nativ zu laufen oder plattformübergreifend zu arbeiten?

Es wäre eine GUI-basierte Anwendung und ich denke Java zu verwenden.

Die meisten der Anwendungen, die ich auf Java gebaut habe laufen nicht so glatt wie die nativen Anwendungen auf den jeweiligen Plattformen.

Die zwei Plattformen, an die ich denke, sind Windows und Macs.

Wenn ich die App nur für meinen eigenen Gebrauch erstellen würde und ich ein System wählen müsste, würde ich mich auf den Mac konzentrieren.

Ich würde gerne Ihre Gedanken hören.

+0

Worum geht es in dieser Anwendung? Im Allgemeinen – OscarRyz

+0

In sehr allgemeinen Begriffen ... die Hauptaufgabe der Anwendung wäre es, den Überblick über Forschungsnotizen zu behalten. –

Antwort

0

Warum betrachten Sie nicht Webanwendung.

Sie können reich UI Website bauen in Browser ausgeführt wird, die überall läuft und alle Plattformen, Wenn Sie mit Java vertraut sind, können Sie GWT versuchen, für den Check out ‚Weblication‘ die demo page of GWT

0

Machen Sie es ein Web-App ? Ansonsten Java ich denke. Es hängt von vielen Dingen, Typ Ihrer App, Ziel usw.

3

Ich schlage vor, es zuerst für die Plattform zu entwickeln, mit der Sie sich wohl fühlen, und wo Sie alle Plattformgimmicks verwenden können; In diesem Fall wäre dies OS X.

Später, wenn Ihre App für den Mac erfolgreich ist, sehen Sie sich die Optionen für die Portierung an. Es ist IMO nicht wert, sich auf die Portierung zu konzentrieren, bis sicher ist, dass das Interesse an der App von Anfang an groß ist.

4

Anforderungen, Anforderungen, Anforderungen.

In aller Ernsthaftigkeit, "es kommt darauf an" ist die richtige Antwort.

Wirklich Cross-Plattform ist harte Arbeit; Arbeiten, wo Sie/Ihre Benutzer vertraut sind, ist etwas wert. Das Problem effektiv zu lösen ist wirklich die höchste Priorität.

1

Wenn Ihre App ein MVC-Design verwendet, können Sie portable Modellklassen mit C++ und nativen Controller- und Ansichtsklassen für jede Plattform schreiben, die Sie unterstützen möchten. Das gibt Ihnen das Beste aus beiden Welten - Portabilität, wo das praktisch ist, und eine native Oberfläche, für die sich Ihre Benutzer bedanken.

1

Ich stimme Ihrer Beobachtung über Java-Anwendungen im Vergleich zu nativen Anwendungen zu, obwohl ich mir sicher bin, dass ein erfahrener Java-Programmierer es wahrscheinlich zum Laufen bringen könnte.

Unter dem Strich sind die Programmier-APIs für Mac und Windows die besten Tools für den Aufbau von Schnittstellen auf ihren jeweiligen Systemen. Wenn Ihre App auf einem bestimmten System problemlos ausgeführt werden soll, sollten Sie die API dieses Systems verwenden. Wenn es absolut notwendig ist, über eine plattformübergreifende Implementierung zu verfügen, sollten Sie die gesamte Kernfunktionalität (Nichtbenutzerschnittstellenteil) für Ihr Programm in eine Bibliothek schreiben, die für beide Systeme kompiliert werden kann (C++ ist eine naheliegende Wahl)), und dann erstellen Sie eine nette Benutzeroberfläche für jedes Zielsystem, das Aufrufe an die allgemeine Bibliothek vornehmen kann.

4

Cross-Plattform-Entwicklung ist im Allgemeinen ein bisschen als Kunstform überbewertet. Java ist die führende Technologie hier, aber selbst in diesem Fall gehen die meisten Java-Programmierer nicht wirklich plattformübergreifend vor. Es gibt einige spektakuläre Beispiele für Tools wie Vuze und LimeWire und JRipper, die praktisch überall funktionieren, aber das sind statistisch gesehen Ausnahmen. Die meisten Java-Apps, insbesondere der Unternehmensvielfalt, sind mit einer Plattform programmiert und bewegen sich nie wirklich.

Wenn Sie mit Mac und Windows arbeiten möchten, sollten Sie sich die Zeit in der Codebasis von Limewire und Vuze nehmen. Beide Apps funktionieren auf beiden Plattformen sehr gut.

Sie werden auf jeden Fall zwei Builds benötigen. Ein Build wird wahrscheinlich nicht tun.

1

IMHO sollte diese Diskussion Antwort von den Kundenbedürfnissen sein.

Die meiste Zeit bietet die IT-Lösung, die Art und Weise, wie die Lösung erstellt wird, ist nur ein Detail für den Kunden.

Die Wiederverwendung des Codes könnte jedoch nützlich sein, falls Ihre erste Entwicklungsumgebung falsch war.

viele andere Kriterien können in das Denken kommen. zum Beispiel, wenn Ihre Software für die Gesundheitsversorgung ist, möchten Sie möglicherweise für 10 Jahre zu unterstützen, dann müssen Sie ein Betriebssystem für mehr als 10 Jahren unterstützt (Windows und Mac vergessen). etc.

2

In der heutigen Zeit, gibt es wirklich einen guten Grund, nativen Code zu schreiben?

Ja. Die verfügbaren Sprachen und Bibliotheken erlauben keine gute Programmierung. Im besten Fall erlauben sie es, Code zu schreiben, der plattformübergreifend funktioniert, aber niemals übertrifft.

Wählen Sie einen aus und konzentrieren Sie sich darauf. Konzentriere dich auf dieses Publikum (du wirst feststellen, dass das Publikum sowieso anders in seinem Geschmack und seinen Wünschen ist).

Sobald Sie eine App haben, die Leute auf der anderen Seite suchen, und bevor jemand einen Konkurrenten macht, bewerten Sie die Kosten/Nutzen, um Ihr fein abgestimmtes und gut entworfenes Produkt zu portieren.

Wenn Sie versuchen, "zwei Master zu bedienen", treffen Sie Designentscheidungen auf der Grundlage der für beide Plattformen einfachsten Möglichkeiten, und das ist kein guter Designprozess.

-Adam

0

ich viel Glück gehabt haben, mit Cross-Plattform Java SWT verwenden. Dadurch erhalten Sie einen nativen Look auf jedem Betriebssystem, und es gibt nicht viele Probleme, die JNI-Code erfordern. Mit etwas Glück sollten Sie in der Lage sein, die exakt gleiche Codebasis auf beide Ziele zu verteilen, und es sollte einfach funktionieren.

Nachdem dies gesagt wurde, sollten Sie bewerten, ob Sie wirklich die plattformübergreifende Funktionalität benötigen. Zumindest müssen Sie die GUI-Ebene Ihrer App auf jedem Betriebssystem testen (Testen von Layouts, Präsentationen usw.). Mit einer großen App wird dies sehr schnell umständlich.

In beiden Fällen bietet Ihnen die plattformübergreifende Sprache von Anfang an Flexibilität für die Zukunft. Wenn Sie von Anfang an systemeigenen Code schreiben würden, wäre es nicht trivial, den Code auf eine andere Plattform zu portieren. Es würde wahrscheinlich von mehreren Fehlern begleitet werden, und würde auch eine Portierung des gesamten Testcodes für die neue Plattform erfordern. Sie könnten Synchronisierungsprobleme mit neuen Funktionen, Bugfixes usw. bekommen.Mit Java können Sie JUnit-Tests schreiben, die in beiden Betriebssystemen ausgeführt werden, und alle Fehler oder neuen Features werden automatisch für beide Versionen propagiert.

Es hängt wirklich von Ihrer spezifischen Anwendung ab. Wenn Sie eine Benutzerbasis auf beiden Betriebssystemen erwarten, sollte dies die Sprachauswahl vorgeben.

6

Ich würde Qt verwenden und ja, auf jeden Fall Cross Platform Ziel ...

Der Hauptgrund ist in der Tat nicht, was Sie denken, es ist (Cross-Plattform selbst zu sein), sondern dass tatsächlich durch mehrere Plattformen Targeting Ihre Code von einigen komischen magischen Gründen neigt dazu, mit viel besserer Codequalität zu enden. Ich habe das unzählige Male in meinen eigenen Projekten gesehen. Jedes Mal, wenn ich eine neue Plattform hinzufüge, steigt die Qualität des Codes und der Code wird sauberer ...

Auch sollte jede ernsthafte App so wenig "Abhängigkeiten" wie möglich haben, da plattformübergreifend bedeutet, dass Sie weniger Abhängigkeiten haben. .;)

dann als „Bonus“ Sie Ihre App auf mehreren Plattformen laufen bekommen ...

+1

Ich denke, dass der Code mehr "sauber" ist, weil Sie auf Standards wie einige Plattformen schreiben müssen, hauptsächlich Mac OS X und Linux sind sehr streng mit ihrer Toleranz gegenüber Abweichungen von den Standards –

1

Hängt davon ab, wie viel Zeit Sie für die Anwendung verbringen möchten. Der schnellste Weg ist Java, ansonsten können Sie Ihr Modell mit C++ erstellen und GUI-Code mit MFC und Cocoa trennen.

0

Es ist möglich, eine gut aussehende Java-App für Windows, Linux und Java zu bekommen - sehen Sie sich zum Beispiel SBCommander an - und beachten Sie, dass Sie es ausführen und die Benutzeroberfläche anschauen können, auch wenn Sie nicht über die Hardware verfügen das soll es kontrollieren.

Auf der anderen Seite, eine Sache, die ich sehr schwer zu tun gefunden habe, ist eine Cross-Plattform-App zu schreiben, die wie eine native App auf jeder Plattform aussieht und sich verhält; Es gibt einfach zu viele verschiedene Annahmen darüber, wie sich eine Anwendung verhalten soll.

0

Es hängt wirklich davon ab, wer Ihre Benutzer sein werden. Gehen Sie nicht plattformübergreifend, nur weil Sie es können. Es muss ein echter Bedarf bestehen, unabhängig vom Werkzeug. Und Tests werden ziemlich viel Zeit in Anspruch nehmen. Sie müssen noch gründlich auf beiden Plattformen testen.

Ich benutze REALbasic, um eine Vielzahl von plattformübergreifenden Desktop-Anwendungen aus einer einzigen Codebasis zu erstellen, und es hat für mich und meine Kunden gut funktioniert.

0

Oft finde ich PC-Entwickler versuchen, auf dem Mac-Markt zu kapitalisieren (einige erfolgreich). Im Gegenzug entwickeln sie die Anwendung in der oben beschriebenen "plattformübergreifenden" Architektur (Java, oder ein Qt-Framework, etc ...) Das Ergebnis ist normalerweise eine schrecklich aussehende Anwendung mit schlechter Betriebssystemintegration und der Community-Backlash beginnt in die Bewertungen.

Mein Rat, Port es. Machen Sie einen guten Job, verstehen Sie Ihren Markt, bevor Sie Ihr plattformübergreifendes Produkt in Ihrem Teppichbomben-Marketing-Ansatz ablegen.

Verwandte Themen