Mac App Store accepte-t-il une application écrite en Python/Java/Ruby?
Le Mac App Store accepte-t-il une application écrite en Python/Java/Ruby?
6 answers
Les Bonnes nouvelles
Oui, vous pouvezsoumettre une application Java au Mac App Store. Ce n'est pas vrai dans le passé, mais c'est vrai au moins à partir de maintenant en 2013.
Un exemple est le succès MoneyDancepersonal finance app actuellement disponible à la vente dans le Mac App Store.
Les mauvaises nouvelles
Préparer et soumettre votre application n'est ni simple ni facile. Vous devez sauter à travers des cerceaux.
- Votre application ne peut pas dépendre de l'installation de Java sur le Mac. Vous devez inclure un JRE (Java Runtime Environment ) dans votre application Mac.
- Vous devez écrire un wrapper Objective-C mince autour de votre application Java. Le code source et les exemples/tutoriels sont disponibles sur le web.
- Comme toute autre application, vous devez passer par tous les tracas de la construction compliquée et rigmarole de déploiement avec des restrictions de sécurité Apple exige de toute application Mac App Store.
Plus Info
- Il s'agit de l'application Java la plus utilisée par les utilisateurs de Mac App Store, et de l'OpenJDK pour le plaisir et le profit, parMarco Dinacci . Ces articles peuvent fournir d'autres informations utiles, mais heureusement, leur discussion sur le bifurcation du JDK est maintenant dépassée. Lui et d'autres ont fourni les correctifs nécessaires maintenant incorporés dans les versions officielles.
- Comment créer un programme d'installation Mac OS X pour une application Java (Mise à jour pour Mac OS X 10.8-Mountain Lion) par Dem Pilafian de Center Key Software.
- Empaqueter une application Java pour la distribution sur un Mac (Oracle)
- Soumettre à l'App Store Mac (Apple)
, Par la manière, vous pouvez utiliser à la fois Swing et JavaFX dans votre application. JavaFX est maintenant livré avec Java, au moins à partir de Java 7 Update 40 selon ces Notes de version.
Java 9
La nouvelle version de Java 9 devrait rendre ce processus d'emballage d'une application avec un runtime encore plus facile et meilleur.
Modules
Java 9 apporte la "modularisation", Java Platform Module System (JPMS) , où les quelque 5 000 classes fournies avec une JVM sont regroupées en une centaine de morceaux connus sous le nom de modules . Vous pouvez inclure uniquement les modules contenant des classes réellement utilisées par votre application particulière plutôt que de transporter chaque bibliothèque. Si vous n'utilisez pas JSON ou CORBA, alors vous n'avez pas besoin d'inclure les modules liés à JSON ou CORBA.
Le nouveau jlink tool fait ce travail pour vous, pour assembler et optimiser un ensemble de modules et leurs dépendances dans une image d'exécution personnalisée. En prime, un travail d'optimisation du temps de liaison est effectué pour accélérer le lancement de votre application.
Ces fonctionnalités sont prises en charge sur les systèmes macOS 64 bits, ainsi que sur d'autres plates-formes.
Compilation native
Java 9 apporte également un nouveau support pour le natif compiler, pour créer une application optimisée pour un matériel spécifique. Mais cette capacité est expérimentale et n'est pas encore prête pour une utilisation en production.
Mise à jour, à partir de 2018
Oracle a annoncé la fin du déploiement web de la technologie , y compris Java Web Start , l'avenue précédemment recommandée pour les applications de bureau. Alors maintenant, Oracle s'attend à ce que toutes les applications Java soient livrées avec une JVM, comme c'est le cas avec l'outil jlink
mentionné ci-dessus.
Donc, le processus de envelopper une application avec un runtime Java qui était quelque chose d'une rareté juste pour l'App Store d'Apple est maintenant courant. Oracle s'attend à ce que toute application de bureau basée sur Java soit installée de cette façon.
Oui et non. Apple ne se soucie pas de la langue dans laquelle votre application est écrite, mais elle ne peut pas dépendre ou installer quoi que ce soit en dehors du binaire que vous soumettez à Apple. Les directives pertinentes sont les suivantes:
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
Donc, bien que cela signifie que vous ne pouvez pas dépendre de Ruby ou de Python, vous pouvez utiliser un framework comme MacRuby pour construire votre application dans Ruby et intégrer l'interpréteur Ruby. Parlant pour MacRuby, les applications ont été soumises avec succès au Mac App Store de cette façon.
Ruby ? Oui !
Apple a déjà accepté une de mes applications écrites en MacRuby.
AFAIK, Cocoa vous permettra d'inclure du code écrit dans différents langages (y compris Ruby et Python, mais pas Java je ne pense pas).
Vérifiez le SDK Apple pour plus d'informations, mais je crois (grâce à Cocoa) que ce n'est pas un problème.
Pour les applications Python, j'ai écrit un article complet expliquant comment créer et soumettre de telles applications au Mac App Store. Il comprend le code source et les scripts de construction pour un exemple d'application barebones que j'ai soumis avec succès.
Peut-être Java, si vous regroupez l'application Java dans une application mac.