Utilisation de l’IA pour construire ma première application Android: ce qui a fonctionné et ce qui n’a pas fait

Pensées initiales
Ayant passé plus d’une décennie à travailler dans le développement de logiciels et l’ingénierie des données, je pensais, où est l’IA en ce moment? Est-il capable d’éliminer le développeur ou y a-t-il encore du temps? Donc, je me suis mis au défi de créer une application Android. C’était une zone inconnue pour moi. Bien que cela m’intrigue, il y avait une tonne de questions qui se développaient dans mon esprit:
- Android Studio est-il toujours l’ide que tout le monde utilise?
- Dois-je essayer Java First ou Kotlin?
- Comment obtenir un apk ces jours-ci?
Enfin, ma curiosité m’a incité à essayer de voir par moi-même.
Mon approche
Comme beaucoup d’autres personnes dans la technologie, je gère deux téléphones. Le problème est que mon deuxième téléphone est souvent laissé par endroits et cela me fait manquer des notifications cruciales. La solution est quelque chose qui réside dans ma tête pendant très longtemps. Une application qui lit les notifications puis les transmet, un petit scénario pour lequel nous allons mettre en œuvre. Comme pour tout ce qui concerne Android, le diable est dans les détails:
- De quelle manière Android peut-il donner accès aux notifications aux applications? Est-ce que c’est motivé par l’événement ou un sondage?
- Est-il possible pour moi d’omettre certaines notifications?
- Qu’est-ce qui se passe si l’utilisateur met fin à l’application ou si le téléphone est redémarré?
AI à l’invention (presque)
Avec le battage médiatique autour de la programmation assistée par l’IA, je me suis dit, pourquoi ne pas laisser les bots faire tout le travail intellectuel? Le premier arrêt de mon voyage a été Gemini, l’assistant AI de Google.
Round 1: Gémeaux
Pour commencer, j’ai fourni une demande de développement Android assez standard:
« Créez une application Android qui écoute les notifications et les récupère activement au moment où ils entrent. »
Gemini a renvoyé du code qu’il a brassé en utilisant «NOTIFICATIONSLISTENERSERVICE». Lorsque j’ai demandé Kotlin pour le langage cible mobile Android, Gemini a de nouveau aidé. Alors que mes demandes ont commencé à s’accumuler, Gemini a intégré des modifications en permanence dans le code qui la transformant en un service d’arrière-plan qui, une fois tué ou redémarré, recommencerait automatiquement.
C’était pour le moins dramatique, car je me sentais comme un assistant de productivité, copier le code de collage et regarder tout se réunir. Jusqu’à ce que, bien sûr, le rideau soit tombé en panne:
- `R.Layout.Activity_Main` non résolu.
- activité_main.xml manquant
- Importations non fonctionnelles, manifestes et tous les autres scénarios terribles se produisant simultanément.
Tiler pendant quelques heures sur les fichiers de ressources et traitant des messages d’erreur étranges que je n’ai jamais vus auparavant m’a fait réaliser une chose: bien que l’IA soit impressionnante, cela ne peut pas vous sauver des subtilités du développement Android sans compréhension fondamentale.
Round 2: Les tactiques changent avec Claude
Après avoir fait de mon mieux, j’ai abandonné mais au moins je suis passé à Claude. Pour cette tâche, j’ai rationalisé mes instructions d’un style rapide à une seule demande complète:
> « Construisez une application Android qui emballe entièrement un transfert de notification basé sur le jeton de bot vers Telegram. L’application devrait avoir une fonctionnalité de notification indiquant qu’il envoie une notification et ne transmettra pas ses propres notifications. Dans le cas où l’application est tuée ou le redémarrage de l’appareil, il doit redémarrer. »
Cette fois, Claude a fourni une solution emballée que Claude a fourni une solution complète en Java avec une structure de répertoire attribuée. Cette fois, le code compilé et exécuté correctement sur l’appareil virtuel; Des notifications ont été transmises et l’application a survécu aux redémarrages. Succès!
Remplacement du télégramme par Slack
Alors que je m’intéressais davantage à développer l’application, mon objectif est devenu la cible de transfert de notification à Slack au lieu de télégramme. Il était clair que cela nécessitait une nouvelle approche d’intégration avec des webhooks entrants de Slack. J’ai créé une classe d’assistance dédiée à l’envoi de messages à Slack et à l’utilisation des demandes HTTP avec le threading et les rappels. Ce faisant, j’ai pu transmettre instantanément toute notification à un canal Slack. Le processus était efficace, fiable et intégré de manière transparente dans mes processus de travail. Une invite assez simple pour le faire:
> « Remplacez le service Telegram par l’implémentation de Slack Webhook. »
Ce que l’IA a fait correctement (ou incorrectement)
L’IA était un merveilleux accélérateur. Cela a rationalisé mon travail de la manière suivante:
- Enregistré des tonnes de temps en générant tout le code du passe-partout
- A expliqué les concepts quand je suis resté coincé
Mais cela a également fait des erreurs classiques telles que:
- Gestion des ressources: Le code généré par l’IA a négligé le système de ressources d’Android pour une raison quelconque. L’absence de fichiers XML, les inexactitudes manifestes et d’autres problèmes ont conduit à des traces de débogage sans fin et à des appels récursifs vers le débordement de pile redouté.
- Conscience du contexte: L’IA manque de connaissance de l’organisation de vos projets. Les extraits de code fournis ne s’intègrent pas toujours de manière transparente.
- Connaissance du comportement Android: Des éléments tels que le cycle de vie du service, le filtrage et l’exécution d’arrière-plan nécessitent la main d’un humain. Nous ne pouvons pas dépendre uniquement de l’IA.
L’utilisateur: pourquoi les développeurs sont toujours essentiels
L’IA n’est qu’un outil à notre disposition. Pas le substitut des travaux d’ingénierie. Vos connaissances sont importantes car:
- Connaissance du domaine: Il est essentiel de comprendre comment Android s’occupe de ses ressources, services et autorisations. Ceci s’applique à tout domaine que vous essayez.
- Débogage: Si les choses tournent mal (et elles le feront), vous devrez parcourir les journaux, empiler les traces et la documentation.
- Choix de conception: Ce sont des décisions basées sur l’expérience éprouvée – quand implémenter un service d’arrière-plan, la gestion des redémarrages ou la sélection d’une API pour notre cas. (Dans le cas de cette application).
Mélanger AI avec HI: Mes remarques de clôture sur ce sujet
La première application Android que j’ai construite ne m’a pris que quelques heures pour terminer en raison de mon intégration de code généré par l’IA, que j’ai ensuite débogué en temps réel. J’ai pu bouger rapidement grâce à l’IA, mais au final, c’était un dépannage manuel minutieux qui m’a aidé à terminer l’application.
Si vous êtes un développeur essayant quelque chose de nouveau, il est tout à fait normal d’utiliser l’IA, mais de ne pas contourner tout travail. Les résultats sont étonnants lorsqu’ils sont associés à l’IA, si vous êtes celui qui fournit les connaissances et l’expertise.
Lien github: Transfert de notification
Vous avez trouvé cela utile? PARTAGEZ-LE
Source link