Convention de dénomination Android: minuscule avec trait de soulignement contre cas camel

Je programme actuellement une application pour Android. Maintenant, ce que j’ai découvert, c’est que vous ne pouvez pas placer d’objects de ressources, par exemple une image dans le dossier pouvant être dessiné, et la nommer comme “myTestImage.jpg”. Cela vous donnera une erreur de compilation, car la syntaxe de casse camel n’est pas autorisée, vous devrez donc la renommer comme “my_test_image.jpg”.

Mais qu’en est-il des identifiants que vous définissez dans le fichier XML. Disons que vous avez la définition suivante

 

Ceci est une définition valide, comstack et fonctionne très bien sur mon émulateur Android bien que, comme vous le voyez, je spécifie l’ID dans la syntaxe du cas camel.

Maintenant, les exemples Android utilisent toujours des minuscules et des traits de soulignement. Est-ce juste une convention de nommage pour utiliser des minuscules avec un trait de soulignement pour les identifiants ou peut-il causer des problèmes sur le périphérique réel?

THX

L’appareil ne se plaindra pas si vous utilisez des noms d’identifiant de casse camel. Pour ma première application, j’ai écrit tous les identifiants dans camel-case car je pense que cela semble mieux dans le code Java, et ça marche très bien.

Je change lentement d’avis sur les chameaux, car vous vous retrouvez avec deux conventions de nommage différentes – par exemple:

 // This must be undescored due to naming conssortingctions setContentView(R.layout.my_long_layout_name); // Now this looks a little out of place findViewById(R.id.myLongSpecificId); 

Moi aussi, je m’interroge sur les normes ici. Google est incohérent dans leurs exemples; Parfois, ils utilisent toutes les minuscules, parfois ils insèrent des traits de soulignement, et parfois ils utilisent des boîtiers.

Si vous regardez les champs android.R.id.* , Vous remarquerez que tous sont dans le cas du chameau. Donc, si les identifiants Android sont écrits en camel-case, je suppose que nous devons suivre cette convention 🙂

Je pense qu’il parle d’id dans un fichier xml .

par exemple:

 android:id="@+id/home_button" 

contre

 android:id="@+id/HomeButton" 

Je n’ai trouvé aucune convention ou directive à ce sujet, donc les développeurs de mon projet utilisent les deux méthodes de manière indistincte, ce qui est assez pénible 🙁

Je pense que c’est bien si on utilise toutes les petites lettres avec des traits de soulignement.

Regardez juste ceci (en ajoutant à ce que Daniel avait répondu)

  // Camel Case TextView tvUserName = (TextView) findViewById(R.id.tvUserName); 
  // Small Caps and Underscores TextView tvUserName = (TextView) findViewById(R.id.tv_user_name); 

Dans ma propre expérience, j’ai tendance à avoir un peu de mal à comprendre la convention de casse de chameau dans xml parce que lorsque vous la liez à Java qui utilise également le cas camel (parce que c’est la norme), cela ressemble à un doppleganger.

Si vous regardez des exemples d’applications Googles tels que:

https://github.com/google/iosched

Ils utilisent des traits de soulignement. Alors … peut-être que c’est comme ça que nous devrions le faire?

Les noms de fichiers xml (utilisés dans le dossier pouvant être dessiné) doivent être tous séparés par un caractère de soulignement _ en minuscules, car les noms de fichiers capitalisés ne sont pas pris en charge dans xml.

Si le compilateur Android fait vraiment ce que vous dites en limitant la casse de chameau (ce qui semble plutôt étrange), vous devriez vous en tenir aux conventions établies.

Aller à contre-courant ne fera que créer une confusion inutile. Gardez les choses cohérentes dans tous les endroits où cela est possible.

Je pense que si nous utilisons la convention de soulignement pour id dans les fichiers xml et la convention de casse camel pour les champs de classe, cela donnera une meilleure visibilité à chaque développeur pour faire la distinction entre les identifiants xml et les champs de classe.

 android:id="@+id/frag_account_button" frag_account_button = ((ListView)view.findViewById(R.id.frag_account_button)); android:id="@+id/fragAccountButton" fragAccountButton = ((ListView)view.findViewById(R.id.fragAccountButton)); 

Tout d’abord, il n’y a pas de norme pour définir laquelle est la plus valable, mais j’ai quelques raisons de le prouver. Mon idée est raisonnable pour conserver les identifiants XML et java dans le même nom avec la convention camel-case.

1-) il est facile d’atteindre la variable en recherchant à la fois le projet XML et le côté java.

2-) définition de la bibliothèque butterKnife

  @BindView(R.id.infoTextView) TextViewFont infoTextView; 

il est plus approprié de restr ainsi.