>> Technologie Électronique >  >> Téléphones portables et accessoires >> Windows Mobile

Anti-patterns code mobile Android : ce qu'il NE FAUT PAS faire

Cette liste compile les erreurs critiques à éviter lors du développement d'apps Android. Les violer mène à crashes, vulnérabilités sécurité, ANR, fuites mémoire, et rejet Play Store.

Threading et cycle de vie

  • Ne bloquez PAS le thread principal (UI). Réseau, BD, I/O fichiers, calcul lourd → utilisez Coroutines (Dispatchers.IO), RxJava, ExecutorService, ou WorkManager.
  • Ne passez PAS d'objets Context entre framework et composants AndroidX Architecture (ViewModel, LiveData). Utilisez Contexte Application ou AndroidViewModel.

Sécurité et vie privée

  • N'accédez PAS aux données sensibles (contacts, localisation, micro) sans permission runtime et justification claire utilisateur.
  • N'exposez PAS ContentProvider aux autres apps sauf requis explicitement (android:exported="false" par défaut ; true seulement avec permissions granulaires).
  • N'accordez PAS plus de permissions que nécessaire. Suivez principe moindre privilège ; supprimez inutilisés.
  • N'autorisez PAS utilisateurs à changer portée permissions accordées dynamiquement de façon à casser hypothèses.
  • Ne stockez PAS PII ou secrets en clair (SharedPreferences, fichiers, logs). Utilisez EncryptedSharedPreferences, Keystore, Jetpack Security.
  • Ne comptez PAS sur SharedPreferences par défaut pour données sensibles.
  • Ne stockez PAS mots de passe, tokens, clés API dans code, assets, ou git. Utilisez enclave sécurisée, échange token backend, ou Android Keystore.
  • N'incluez PAS clés API dans commits git. Utilisez propriétés gradle (local.properties) + plugin secrets, ou injection secrets CI.

ContentProvider et données

  • N'utilisez PAS d'instances statiques dans ContentProvider ; c'est un singleton géré par système.
  • Ne rendez PAS ContentProvider inscriptible par défaut. Exigez signature/permission.
  • N'autorisez PAS apps à se connecter via Internet utilisateur sans consentement explicite utilisateur et config sécurité réseau.
  • Ne stockez PAS fichiers temporaires dans répertoire racine app. Utilisez cacheDir ou externalCacheDir ; ils sont auto-nettoyés.

Architecture et APIs

  • N'utilisez PAS la réflexion pour appeler APIs framework/cachées. Elles changent entre versions ; apps cassent. Utilisez SDK public ou équivalents Jetpack.
  • Ne codez PAS en dur URLs, noms utilisateur, mots de passe, secrets. Utilisez BuildConfig, fichiers ressources, ou livraison config sécurisée.
  • N'utilisez PAS plusieurs permissions simultanément sans flux consentement utilisateur clair (dialogue permissions runtime par groupe).

Pourquoi cela importe

Ces patterns causent :

  • ANRs (thread principal bloqué).
  • Violations sécurité (clés fuitées, providers exposés).
  • Crashes sur MAJ OS (réflexion, APIs cachées).
  • Violations politiques (rejet Play Store pour permissions larges, trafic clair).
  • Cauchemars maintenance (configs codées en dur, état statique).

Suivez les Core App Quality Guidelines et Security Best Practices Android. Lancez lint, detekt, et vérifications OWASP MASTG en CI.

Windows Mobile