Abo
  • Services:
Anzeige
Inbox schreibt Google auf für iOS und das Web zum Teil in Java.
Inbox schreibt Google auf für iOS und das Web zum Teil in Java. (Bild: Google)

Transpiler: Googles Inbox zu zwei Dritteln plattformübergreifender Code

Inbox schreibt Google auf für iOS und das Web zum Teil in Java.
Inbox schreibt Google auf für iOS und das Web zum Teil in Java. (Bild: Google)

Um native iOS- und Android-Apps sowie die Web-App für Inbox möglichst gemeinsam weiter zu entwickeln, setzt Google auf Transpiler, die Java in Javascript und Objective-C übersetzen.

Anzeige

Ungefähr zwei Drittel des Client-Codes von Googles neuem E-Mail-Dienst Inbox werden plattformübergreifend genutzt. Das ist insofern ungewöhnlich, da für Android in Java, für iOS in Objective-C und für das Web in Javascript programmiert wird. Dennoch ist eine weitgehend einheitliche Code-Pflege möglich. Google nutzt dafür Transpiler und das Konzept Model View Controller (MVC) zur Strukturierung.

Letzteres erlaubt den Entwicklern eine klare Trennung der darzustellenden Daten sowie der Anwendungslogik von der plattformspezifischen Oberfläche, für die unter anderem das Android SDK, UIKit für iOS sowie CSS für die Web-Anwendung genutzt werden. Die Logik und die Datenmodelle werden in Java geschrieben, was so unter Android direkt weiter verwendet werden kann.

Programmiersprachen ineinander übersetzen

Für iOS und die Web-Anwendung verwendet Google zwei selbst entwickelte Transpiler. Mit J2ObjC wird aus den Java-Quellen Objective-C-Code erzeugt, das Google Web Toolkit (GWT) erstellt entsprechend Javascript, das im Browser ausgeführt werden kann. Dadurch spart sich Google eigenen Angaben zufolge einen erheblichen Mehraufwand ein. Immerhin müssten Dinge wie die Netzwerkverwaltung, das Zwischenspeichern von Objekten oder die Unterstützung für Veränderungen an der Nutzerverwaltung für alle drei Clients korrekt implementiert werden und ständig aktualisiert werden.

Etwas problematisch wird diese Herangehensweise bei der Speicherverwaltung, da Java einen Garbage Collector (GC) nutzt, Objective-C hingegen eine Referenzzählung. J2ObjC verfolgt dabei den Ansatz, dass Speicherbereiche für Objekte, die normalerweise von GC aufgeräumt würden, freigegeben werden, wenn ein Autorelease-Pool leerläuft. Außerdem müssen Zyklen in dem Programmablauf aufgebrochen werden können, weshalb in dem Java-Code bereits schwache Referenzen annotiert werden. Diese werden wiederum vom Transpiler so übersetzt, dass die korrespondierenden Eigenschaften mit dem Zusatz __weak versehen werden.

Dank dieser Vorgehensweise habe man es geschafft, ein Produkt für drei Plattformen mit den gleichen Funktionen und vor allem termingerecht zu veröffentlichen, erklärt Google.


eye home zur Startseite
foxylion 26. Nov 2014

Weil Business-Logik auch so toll Bibliotheken des Zielsystems nutzen kann. Das enzige...

mxcd 25. Nov 2014

Das sähe ich dann als zutreffend an, wenn Google gleich eine entsprechende Webanwendung...

tomate.salat.inc 25. Nov 2014

Hatte ich auch erst vermutet, aber nach nochmaligem Lesen glaube ich, er meinte schon...

Nein! 25. Nov 2014

Hast mich neugierig gemacht. Teil deine Theorie.



Anzeige

Stellenmarkt
  1. Hays AG, Mainz
  2. Ratbacher GmbH, Großraum Chemnitz
  3. ekom21 - KGRZ Hessen, Gießen
  4. endica GmbH, Karlsruhe


Anzeige
Blu-ray-Angebote
  1. (u. a. Hobbit Trilogie Blu-ray 43,89€ und Batman Dark Knight Trilogy Blu-ray 17,99€)
  2. (u. a. Reign, Person of Interest, Gossip Girl, The Clone Wars)
  3. (u. a. 3 Blu-rays für 18 EUR, TV-Serien reduziert, Box-Sets reduziert)

Folgen Sie uns
       


  1. Hasskommentare

    Koalition einigt sich auf Änderungen am Facebook-Gesetz

  2. Netzneutralität

    CCC lehnt StreamOn der Telekom ab

  3. Star Trek

    Sprachsteuerung IBM Watson in Bridge Crew verfügbar

  4. SteamVR

    Valve zeigt Knuckles-Controller

  5. Netflix und Amazon

    Legale Streaming-Nutzung in Deutschland nimmt zu

  6. Galaxy J7 (2017)

    Samsung-Smartphone hat zwei 13-Megapixel-Kameras

  7. Zenscreen MB16AC

    Asus bringt 15,6-Zoll-USB-Monitor für unterwegs

  8. Sonic the Hedgehog

    Sega veröffentlicht seine Spieleklassiker für Smartphones

  9. Monster Hunter World angespielt

    Dicke Dinosauriertränen in 4K

  10. Prime Reading

    Amazon startet dritte Lese-Flatrate in Deutschland



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Sony Xperia XZ Premium im Test: Taschenspiegel mit übertrieben gutem Display
Sony Xperia XZ Premium im Test
Taschenspiegel mit übertrieben gutem Display
  1. Keine Entschädigung Gericht sieht mobiles Internet nicht als lebenswichtig an
  2. LTE Deutsche Telekom führt HD Voice Plus ein
  3. Datenrate Vodafone bietet im LTE-Netz 500 MBit/s

1Sheeld für Arduino angetestet: Sensor-Platine hat keine Sensoren und liefert doch Daten
1Sheeld für Arduino angetestet
Sensor-Platine hat keine Sensoren und liefert doch Daten
  1. Calliope Mini im Test Neuland lernt programmieren
  2. Arduino Cinque RISC-V-Prozessor und ESP32 auf einem Board vereint
  3. MKRFOX1200 Neues Arduino-Board erscheint mit kostenlosem Datentarif

Mesh- und Bridge-Systeme in der Praxis: Mehr Access Points, mehr Spaß
Mesh- und Bridge-Systeme in der Praxis
Mehr Access Points, mehr Spaß
  1. Eero 2.0 Neues Mesh-WLAN-System kann sich auch per Kabel vernetzen
  2. BVG Fast alle Berliner U-Bahnhöfe haben offenes WLAN
  3. Broadcom-Sicherheitslücke Vom WLAN-Chip das Smartphone übernehmen

  1. Re: Nach dem Theater mit Amazon FreeTime Unlimited

    hardtech | 22:23

  2. Re: Twicht muss die Lizenz haben?

    kampfwombat | 22:22

  3. Re: Danke dafür <3

    blabba | 22:22

  4. Nutzung auf Reisen

    bombinho | 22:21

  5. Re: Mich beeindruckt das nicht.

    Heinzel | 22:16


  1. 17:40

  2. 16:22

  3. 15:30

  4. 14:33

  5. 13:44

  6. 13:16

  7. 12:40

  8. 12:04


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel