Android sans Java

Après avoir effectué toute la programmation “entreprise” pendant un certain temps, je suis sérieusement désillusionné par le langage lui-même et je me sens toujours très gêné si je dois y revenir. La taille du projet de votre application Android moyenne n’est pas trop intimidante et les bibliothèques sont en fait assez sympas quant à leur style de codage, mais si je pouvais éviter Java, je le ferais certainement.

Voilà donc la question: puis-je l’éviter? Bien que de nombreux langages JVM soient une option sur les ordinateurs de bureau et les serveurs, la VM Dalvik et les périphériques eux-mêmes posent certaines limites. Cela semble être un peu mieux en 2.2 avec l’ECM, mais me limiter à la pointe de la technologie serait une décision assez dure.

La seule alternative que je connaisse qui soit quelque peu utilisée semble être Scala. Y a-t-il une possibilité que je manque? Clojure semble rencontrer exactement les problèmes que j’ai illustrés ci-dessus avec Dalvik, mais comme AppInventor est construit sur Kawa, il pourrait y avoir un espoir d’un Lisp sur la plate-forme mobile?

Quelles autres langues sont déjà utilisables ou progressent dans cette direction?

Personnellement, je dirais que Scala est votre meilleur pari pour le moment. Cela fonctionne très bien, l’inconvénient étant que vous devez inclure Scala comme dépendance (ce qui augmentera la taille de votre application).

  • Programmation Scala pour Android
  • Puis-je programmer pour Android en utilisant un langage JVM?
  • Mise en route de la programmation en langues dynamics sous Android

Avez-vous regardé Mirah ? Il vous donne une syntaxe Ruby-like et comstack en Java. Il a été étiqueté le CoffeeScript de Java.

Y a-t-il une possibilité qui me manque?

Des tonnes de leur!

Clojure semble répondre exactement aux problèmes que j’ai illustrés ci-dessus avec Dalvik

Je ne suis pas au courant de cela. Tout langage JVM qui est un compilateur à l’avance (c’est-à-dire qui génère du bytecode Java sur le PC du développeur) doit fonctionner avec Dalvik.

mais comme AppInventor est construit sur Kawa, on pourrait espérer un Lisp sur la plate-forme mobile

AFAIK, App Inventor utilise uniquement Kawa pour la génération de code.

Quelles autres langues sont déjà utilisables ou progressent dans cette direction?

Eh bien, il y a HTML5 (Javascript), qui fonctionne correctement en mode déconnecté.

Ou bien, il y a PhoneGap (HTML + CSS + Javascript).

Ou, il y a Rhodes (applications Rails-esque dans Ruby sur le périphérique).

Ou, il y a Titanium Appcelerator Mobile (HTML + Javascript, mais avec des raccords Javascript pour rendre les widgets d’interface utilisateur natifs).

Ou bien, il y a Flash, du moins pour Android 2.2+.

Ou alors, il y a AIR … et bien, c’est toujours en pré-publication.

Comme Elfred l’a noté pendant que j’écrivais ceci, il y a JRuby avec Ruboto.

Il y a le substrat rocheux, Corona, DroidScript, Flixel, MobiForms, Monodroid, MoSync, Squeak et SuperWaba.

Il y a C / C ++ via le NDK, bien que ce soit surtout pour append des bibliothèques d’extension à une application Java, plutôt que pour écrire des applications avec code complet.

Il existe SL4A (anciennement Android Scripting Environment ou ASE), votre passerelle vers Python, Perl, Lua et d’autres langages de script. À partir de ce moment, vous ne pouvez pas empaqueter ces scripts en tant qu’APS, mais ils y travaillent.

Maintenant, rien de tout cela ne va vous donner exactement l’apparence d’une application Android “classique”. Pour ceux-là, vous avez besoin d’un langage JVM avec une compilation en avance. Et il ne fait aucun doute que les applications Java standard Java sont de loin les plus nombreuses. Mais contrairement à certains systèmes d’exploitation aromatisés aux fruits qui bloquent ce genre de choses, vous avez de nombreuses possibilités d’expérimenter des alternatives au codage Java traditionnel avec Android.

Un gars chauve écrit un livre qui va revoir toutes ces options, mais ce n’est que partiellement prêt pour le moment.

Ce lien contient des détails sur la façon de faire fonctionner les applications Scala sur Android. Je suis sûr que vous pouvez faire quelque chose de similaire pour clojure ou d’autres langages Jvm.

Ruboto a pour but de faire venir JRuby.

DroidScript est probablement l’un des outils de développement mentionnés ci-dessus les plus simples à utiliser pour le développement sur Android. Comme Cordova, vous utilisez JavaScript, mais contrairement à Cordova, vous avez le choix d’utiliser l’interface graphique Android native ou HTML5 pour créer vos interfaces d’application.

De plus, vous avez toujours access à tous les capteurs / matériels des périphériques sans avoir à importer des charges de plugins compliqués. De plus, vous bénéficiez du bonus de pouvoir réellement développer sur votre appareil mobile (vous pouvez même créer des fichiers APK et les publier à partir de votre appareil).

Je dirais que c’est très bien pour les débutants ou le prototypage, mais peut-être pas assez flexible pour les développeurs chevronnés.

Xamarin Studio vous permet de construire en C # / Mono et de créer des applications pour Android et iOS. Maintenant, les couches de présentation doivent être implémentées différemment sur les deux plates-formes, mais pour pouvoir utiliser C #, c’est une grosse victoire.

Vous pouvez créer une application Android avec la connaissance de Html / css / Js uniquement. Donc, il n’est pas nécessaire de Java pour créer une application Android. Visitez ici pour quelques connaissances de base. [1] http://www.chromeearth.com/requirements-cordova-platform/

Je ne l’ai jamais utilisé, mais Kotlin est un nouveau langage fonctionnant sur la JVM développée par JetBrains (le fabricant d’Android Studio) et qui mérite d’être mentionné. Le site Web de Kotlin affirme que le langage est interopérable à 100% avec Java et propose un tutoriel pour Bien démarrer avec Android et Kotlin et Android Studio est désormais livré avec le support Kotlin.