Gibt es große Unterschiede zwischen objektiv-c und Java, oder iPhone und Android?

Edit: Mein schlechtes, ich meinte Objektiv-c, nicht c #. Ein Grund, warum ich es in meinen Kopf bekam, war es c # das iPhone verwendet. Also die Antworten für c # waren toll, danke, aber theyre ein bisschen irrelevant, sorry darüber.

Ich habe einen Blick aber kann nichts finden, was das beantwortet, obwohl einige die Frage durch die Beantwortung von Teilen davon verkürzt haben. Zwischen einer kleinen Gruppe, hatten wir vor, einige Arbeit auf iPhone und Android, die 2 separat zum größten Teil aber helfen einander aus, und mit einigen Jungs machen Grafikarbeit zwischen ihnen aufgeteilt.

  • ListView onScroll fügt weitere Elemente hinzu
  • Könnte ein Service einen anderen Dienst binden
  • Es ist nicht erlaubt, lokale Ressource zu laden: file: /// android_asset phonegap
  • IntelliJ und Android Gradle Abhängigkeiten - unfähig, Modul zu finden
  • Wie kann ich die Aktivität in einer anderen Anwendung starten?
  • Mit OKHttp, was ist der Unterschied zwischen synchroner Anforderung in AsyncTask und OKhttp Asynchronous Anfrage?
  • Aber wir dachten über die Möglichkeiten, Dinge zwischen den beiden zu bewegen, nicht unbedingt Apps, vielleicht nur nützliche Klassen oder so. Wenn man auf objektiv-c und Java schaut, scheinen sie über die gleichen Eigenschaften zu verfügen, dass das größte Hindernis System-Interface-Sachen wäre, also haben wir uns gefragt, ob, wenn wir eine Abstraktion über diese auf jedem System erstellt haben, so dass sie die gleiche Eingabe erhalten könnte (Was, wenn ich nicht falsch wäre, würde das System nicht zu stark belasten?), Würde es irgendwelche Probleme geben, etwas zu schreiben, um zwischen objektiv-c und Java umzuwandeln, schlimmer als die Standorte der Methoden in den sdks? Oder gibt es Schlüsselmerkmale oder etwas in einer Sprache, die das andere nicht hat, was wir verpasst haben, das würde bedeuten, dass die einzige Möglichkeit, es zu tun, von neuem umschreiben würde.

  • Debugging einer ASP.NET MVC-Anwendung auf einem Android-Telefon
  • Mit Skia in Android NDK
  • FindFragmentById return null
  • GitLab.com CI Läufer für Android-Projekte
  • Android API für Google Drive?
  • Android Location Manager, Get GPS-Standort, wenn kein GPS dann an Network Provider Standort zu bekommen
  • 8 Solutions collect form web for “Gibt es große Unterschiede zwischen objektiv-c und Java, oder iPhone und Android?”

    Ich würde keine Zeit verschwenden, um die Gemeinsamkeit zwischen iOS und Android zu finden.

    Cross-Plattform ist fast immer eine Verschwendung von Zeit und Ressourcen, es sei denn, die Cross-Plattform-Fähigkeit ist zentral für die Anwendungen funktionieren. Das gilt besonders für Plattformen wie iPhone und Android, die benutzerdefiniertes Betriebssystem haben und sehr eng mit der Hardware arbeiten.

    Cross-Plattform-Entwicklungsumgebungen hinzufügen, anstatt die Komplexität langfristig zu reduzieren. Ja, es klingt ordentlich, aber normalerweise bekommst du 90% was du willst einfach und dann schlägst du eine Straßensperre, die alle Einsparungen zerstört, die du gemacht hast und dann anfängt, dich in das Loch zu bringen. Es gibt einfach viele Kompromisse und quadratische Stöpsel, die in runde Löcher eingeklemmt sind.

    Es sei denn, Ihre App könnte in Theorie von einer generischen Web-Seite zu arbeiten, Cross-Plattform ist nicht für Sie.

    Im konkreten Fall von Objective-C und Java, obwohl Java von Objective-C abstammt, haben sie keine moderne Interoperabilität. Sie können den Code nicht von einem anderen verwenden.

    Sie sollten die Zeit verbringen, um die jeweilige API der einzelnen Plattformen zu erlernen. Es gibt keine Abkürzungen.

    Tools wie XMLVM , Codename One und iSpectrum erklären uns, dass Sie Java-Code (von einer Android App oder von einem Scratch) direkt auf den Objective-C-Code überführen können, der auf einem iPhone läuft, ohne dass eine virtuelle Maschine installiert werden muss Apfelseite der Dinge.

    Ich schlage vor, die Entwicklung von iPhone-Anwendungen mit Java zu sehen

    Leider Apples Lizenzvereinbarung für das iPhone SDK verbietet die Portierung der Java Virtual Machine auf das iPhone. In dieser Präsentation stellen wir einen Open-Source- Java-to-Objective-C-Cross-Compiler sowie eine Java-basierte Implementierung der Cocoa-Bibliothek vor. Mit Hilfe dieser Tools können iPhone-Anwendungen in reines Java geschrieben werden. Mit der Java-Version von Cocoa ist es möglich, eine Java-basierte iPhone-Anwendung als Java-Desktop / Applet-Anwendung auszuführen, die überkompiliert werden kann, um nativ auf dem iPhone zu laufen. Im Gespräch werden die Herausforderungen des Java-to-Objective-C-Cross-Compilers sowie die Java-basierte Version von Cocoa diskutiert. Details finden Sie unter http://www.xmlvm.org/

    Und für mehr Einblick ein aktueller Vortrag über Cross-Compiling Android-Anwendungen auf das iPhone von Frebruar 2010 ist hier verfügbar, die auf http://www.xmlvm.org/android/ dokumentiert ist:

    Android ist eine Open Source Plattform für mobile Geräte. Initiiert von Google, hat Android viel Aufmerksamkeit erhalten. Android-Anwendungen werden mit Java entwickelt, obwohl ein spezieller Compiler Klassendateien in eine proprietäre, registerbasierte virtuelle Maschine konvertiert, die auf Android-Geräten zum Ausführen von Anwendungen verwendet wird. Android definiert eine eigene API zum Schreiben von mobilen Anwendungen. Mit Hilfe von XMLVM ist es möglich, Java-basierte Android-Anwendungen auf native iPhone-Anwendungen zu kompilieren.

    Die Android-Anwendung ist in Java geschrieben und nutzt eine Android-spezifische API. XMLVM bietet eine Kompatibilitätsbibliothek, die in Java geschrieben ist und die gleiche API wie Android bietet, aber nur die Java-basierte API für Cocoa Touch verwendet. Während des Cross-Compilation-Prozesses werden sowohl die Anwendung als auch die Android-Kompatibilitätsbibliothek von Java zu Objective-C kompiliert und mit der Cocoa Touch-Kompatibilitätsbibliothek verknüpft, um eine native iPhone-Anwendung zu erhalten.

    Von der 2008 sprechen über das Erstellen von Java-Anwendungen für das iPhone http://www.xmlvm.org/iphone/ :

    Apples iPhone hat großes Interesse bei Benutzern und Entwicklern gleichermaßen. Wie MacOS X basiert die iPhone-Entwicklungsumgebung auf Objective-C als Entwicklungssprache und Kakao für die GUI-Bibliothek. Die iPhone-SDK-Lizenzvereinbarung erlaubt nicht die Entwicklung einer virtuellen Maschine. Mit XMLVM, umgehen wir dieses Problem durch Cross-Compilieren Java auf das iPhone. Genau wie eine Java-Anwendung kann auf AJAX kompiliert werden, kann XMLVM verwendet werden, um eine Java-Anwendung auf Objective-C zu kompilieren. Die Cross-Compilation wird auch durch die Nachahmung einer Stack-basierten Maschine in Objective-C erreicht.

    Wenn Sie sich darauf konzentrieren, Dinge wie Systeminteraktionen zu abstrahieren und sich an die gemeinsame Teilmenge der Sprachen zu halten, können Sie wahrscheinlich Klassen erstellen, die wenig oder gar keine Modifikationen benötigen, um von einer Sprache zur anderen zu wechseln.

    C # hat eine bessere Implementierung von Generika als Java, da C # 's Generika eine starke Eingabe zur Laufzeit behalten.

    C # hat auch LINQ, was soweit ich weiß habe kein Äquivalent (noch) in Java. LINQ bietet eine SQL-ähnliche Abfrage-Fähigkeit, die in die Sprache integriert und vollständig von der .NET frameowrk unterstützt wird, mit dem Sie Objektsammlungen abfragen können, und zwar in einem sehr funktionalsprachigen Stil. LINQ kann von Abfrageanbietern erweitert werden, um mit anderen Datenformaten wie XML und SQL zu arbeiten, sobald der Abfrageanbieter ein Objektmodell bereitstellt, das in das andere Format übersetzt wird. LINQ macht auch die Parallelisierung sehr einfach für Multi-Core-Arbeit. Es ist eine riesige Erweiterung der Sprachfähigkeit.

    Dieses Thema ist oft mit dem Dogma der Technologie-Jihadis gefüllt, also werde ich versuchen, das in meiner Antwort zu vermeiden.

    In meiner Erfahrung würde ich weitgehend mit den Leuten übereinstimmen, dass das Versuchen, Code zwischen den beiden Plattformen zu teilen, schwierig sein würde. Allerdings gibt es einige wichtige Ausnahmen:

    Ich würde eine plattformübergreifende Entwicklung betrachten, in der Ihre Geschäftslogik :

    • Ist nicht trivial;
    • Sollte über Plattformen standardisiert werden; und
    • Hat gut definierte Interaktionen mit der Außenwelt (zB Netzwerkstack oder UI).
    • (Bonus) ist bereits geschrieben.

    Apple ist die Rate bestimmen Schritt hier, da die jetzt berüchtigten 3.3.1 Einschränkungen auf Quellcode-Sprachen. Sie können Code in Javascript nach dem gebündelten Webkit, C, C ++ und Ziel C schreiben.

    Wenn du keine zusätzlichen Sprachen auf einem 'Droid installieren möchtest, kannst du das Java benutzen, das sich auf den Dalvik-Code, das Javascript, nach dem etwas anderen Build von Webkit oder etwas aus dem NDK kompiliert. Dann schaust du C / C ++ an. Du könntest Objective-C kreuzen, aber ich habe noch keine Erfahrung gemacht.

    Die saubere Trennung von Geschäftslogik von UI und Vernetzung ist wichtig, da Sie schauen, um Adapter für die Netzwerkschicht zu schreiben, etwas anderes für die Benutzeroberfläche.

    Ich würde nicht versuchen, Cross-Plattform- UI-Code in C / C ++ zu schreiben, und würde entweder etwas schreiben, das HTML / CSS / JS verwendet, oder eher etwas ganz anderes schreiben, um die Vorteile der verschiedenen UI-Metaphern auf jedem Plattform zu nutzen – zB gibt es Kein Analogon zur Benachrichtigungsleiste auf dem iPhone. Animation auf dem iPhone ist Größenordnungen einfacher zu implementieren als auf Android.

    Wenn Sie nicht brauchen, dass die Benutzeroberfläche massiv mit dem Betriebssystem integriert wird, dann kann ein Webview und einige HTML5 ausreichend sein. Titanium ist eine gute Option hier, und meine Kollegen in der wissen, sagen, es ist besser (dh kompiliert, nicht interpretiert) als PhoneGap. Wieder weiß ich nicht

    Andererseits geht es in der Komplexität anders, Open GLES ist auf beiden Plattformen verfügbar.

    Es sollte auch darauf hingewiesen werden, dass SVG nicht verfügbar ist auf der aktuellen Ernte von Android OSes.

    Geschriebene Antworten trotzdem, werfen Sie einen Blick auf diese Frage:

    Crossplatform iPhone / Android Code-Sharing

    Wenn du eigentlich Cross-Phone-Entwicklung machen willst, solange es nicht wirklich etwas rechnerisch teuer ist, würde ich wohl mit PhoneGap fahren .

    PhoneGap ist ein Open-Source-Entwicklungsrahmen für den Aufbau von plattformübergreifenden mobilen Apps. Erstellen Sie Apps in HTML und JavaScript und nutzen Sie die Kernfunktionen im iPhone / iTouch, iPad, Google Android, Palm, Symbian und Blackberry SDKs.

    Soweit ich sagen kann, ist es so ziemlich das einzige Cross-Plattform-Toolkit, das im iPhone App Store erlaubt ist.

    Wenn Sie tot auf native Entwicklung gesetzt sind, denke ich, dass Sie das finden werden, es sei denn, Sie machen ein Spiel und zielen auf c, wird es eine Menge Arbeit zum Hafen sein. Die Frameworks sind sehr unterschiedlich und die Art und Weise der Aufbau von UI ist sehr unterschiedlich. Das heißt, um Ihnen zu antworten, sind Sie direkt von objektiv-c gegen Java, es ist nicht so schlimm. Es ist aber anders genug, dass ein Abstraktionswerkzeug nicht so einfach wäre – nicht wie Java vs C #. Objective-c hat zum Beispiel keine Garbage Collection (zB auf dem iPhone) und die Syntax ist ganz anders. Ziel-c ist lose typisiert in der Art, wie es Methoden ruft (Nachrichten in Objektiv-c). Das heißt, sie sind nicht ganz anders in Bezug auf Programmierparadigmen. Sie sind beide objektorientierte Imperativsprachen. Sie haben beide Klassen und Methoden, öffentlich und privat. Wenn du den Code von Hand portieren wolltest, wäre es nicht das Ende der Welt, ich denke nur, du würdest vielleicht viel mehr Zeit verbringen, um eine Abstraktionsschicht zu bauen.

    Wenn du über Android-Entwicklung nachdenkst, ist mein bester Rat für Java zu gehen. Es gibt überhaupt keinen Vorteil, eine komplette Abstraktion zu schreiben (vorausgesetzt, Sie können), um von C # zu Java zu konvertieren. Wie für die IPhone-Entwicklung nicht Zweifel über die Verwendung von Objective-C für den gleichen Zweck.

    Sie können nicht für das iPhone in der gleichen Sprache wie für Android zu entwickeln. Für das iPhone kannst du nur in Objective C programmieren, es wird von Apple entwickelt. Sie können es nicht für Android, und die einzige Möglichkeit, iPhone-Entwicklung zu tun ist mit dieser Sprache (es ist in der Benutzervereinbarung).

    Wie für C # vs Java, ist das ganze Prinzip anders. Java ist eine Sprache für jede Plattform. .Net ist eine Plattform für jede Sprache. Sie sind nicht kompatibel. Sie können Java auf Android verwenden, aber ich bin nicht sicher, ob Sie auch C # (.Net) verwenden können.

    Wie auch immer, du musst zwei verschiedene Apps für diese beiden mobilen Betriebssysteme bauen.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.