Mac App Store accetta l'applicazione scritta in Python / Java / Ruby?


Il Mac App Store accetta l'applicazione scritta in Python/Java/Ruby?

Author: Peter Hosey, 2010-10-22

6 answers

La buona notizia

Sì, è possibile inviare un'app Java al Mac App Store. Non è vero in passato, ma è vero almeno a partire da ora in 2013.

Un esempio è il successo MoneyDancepersonal finance app attualmente disponibile per la vendita nel Mac App Store.

La cattiva notizia

Preparare e inviare la tua app non è né semplice né facile. Devi saltare attraverso alcuni cerchi.

  • La tua app non può dipendere da Java installato sul Mac. È necessario includere un JRE ( Java Runtime Environment ) all'interno dell'app Mac.
  • Devi scrivere un wrapper Objective-C sottile attorno alla tua app Java. Il codice sorgente e gli esempi / tutorial sono disponibili sul web.
  • Come qualsiasi altra applicazione, è necessario passare attraverso tutti i problemi della costruzione complicata e rigmarole distribuzione con restrizioni di sicurezza Apple richiede di qualsiasi app Mac App Store.

Di più Informazioni

A proposito, puoi usare sia Swing che JavaFX nella tua app. JavaFX è ora in bundle con Java, almeno a partire da Java 7 Update 40 secondo queste Note di rilascio .

Java 9

Il Java 9 appena rilasciato dovrebbe rendi questo processo di avvolgimento di un'app con un runtime ancora più semplice e migliore.

Moduli

Java 9 porta "modularizzazione", Java Platform Module System (JPMS), dove le circa 5.000 classi in bundle con una JVM sono raggruppate in circa un centinaio di blocchi noti come moduli. Puoi includere solo i moduli contenenti le classi effettivamente utilizzate dalla tua particolare app piuttosto che trasportare ogni libreria. Se non si utilizza JSON o CORBA , allora non è necessario includere i moduli correlati a JSON o CORBA.

Il nuovo jlink lo strumento funziona per te, per assemblare e ottimizzare un set di moduli e le loro dipendenze in un'immagine di runtime personalizzata. Come bonus, viene eseguito un lavoro di ottimizzazione del tempo di collegamento per rendere più veloce il lancio dell'app.

Queste funzionalità sono supportate su sistemi macOS a 64 bit, insieme ad altre piattaforme.

Compilazione nativa

Java 9 offre anche un nuovo supporto per native compilazione, per creare un'app ottimizzata per hardware specifico. Ma questa capacità è sperimentale e non ancora pronta per l'uso in produzione.

Aggiornamento, a partire dal 2018

Oracle ha annunciato la fine della tecnologia web deployment , tra cui Java Web Start , la via precedentemente consigliata per le app desktop. Così ora, Oracle si aspetta che tutte le app Java vengano consegnate in bundle con una JVM come avviene con lo strumento jlink menzionato sopra.

Quindi, il processo di avvolgere un'app con un runtime Java che era una rarità solo per l'App Store di Apple è ora mainstream. Oracle si aspetta che qualsiasi app desktop basata su Java venga installata in questo modo.

 16
Author: Basil Bourque, 2018-05-05 06:42:52

Sì e no. Apple non si preoccupa della lingua in cui è scritta la tua app, ma non può dipendere o installare nulla al di fuori del binario che invii ad Apple. Le linee guida pertinenti sono le seguenti:

2.14
Apps must be packaged and submitted using Apple's packaging technologies included in Xcode - no third party installers allowed
2.15
Apps must be self-contained, single application installation bundles, and cannot install code or resources in shared locations
2.16
Apps that download or install additional code or resources to add functionality or change their primary purpose will be rejected

Quindi, mentre questo significa che non puoi dipendere da Ruby o Python, potresti usare un framework come MacRuby per costruire la tua app in Ruby e incorporare l'interprete Ruby. Parlando per MacRuby, le app sono state inviate con successo al Mac App Store in questo modo.

 4
Author: Dominic, 2011-02-05 21:38:25

Rubino ? Sì !
Apple ha già accettato una delle mie app scritte in MacRuby.

 3
Author: xhan, 2011-10-06 07:16:17

AFAIK, Cocoa ti permetterà di includere codice scritto in diverse lingue (inclusi Ruby e Python, ma non Java non credo).

Controlla l'SDK di Apple per maggiori informazioni, ma credo che (grazie a Cocoa) non sia un problema.

 2
Author: Benjamin Allison, 2011-01-17 19:07:23

Per le app Python, ho scritto un articolo completo che spiega come creare e inviare tali app al Mac App Store. Include il codice sorgente e gli script di compilazione per un'app di esempio barebone che ho inviato con successo.

 2
Author: David Foster, 2014-06-25 07:25:31

Possibilmente Java, se si raggruppa l'applicazione Java in un'applicazione mac.

 0
Author: Coder404, 2012-05-10 00:23:52