13 points par GN⁺ 2024-09-23 | 1 commentaires | Partager sur WhatsApp
  • Vous voulez exécuter du code C sur Android ?
  • Ce framework peut générer un APK en environ 2 secondes, l’installer et le lancer automatiquement, avec une taille d’APK d’environ 25 kB
    • Sur API 30 (Android R+), la taille est de 45 kB afin de prendre en charge ARM64 + ARM32.
  • Les démos de ce framework incluent notamment :
    • la création d’une fenêtre avec prise en charge d’OpenGL ES
    • les entrées accéléromètre/gyroscope, le multitouch
    • le clavier Android pour la saisie au clavier
    • le stockage de fichiers de ressources dans l’APK et leur lecture avec AAssetManager
    • la prise en charge des permissions, par exemple pour utiliser le son
    • l’accès direct aux périphériques USB
  • Avertissement : ce code doit être utilisé sous votre propre responsabilité. Il peut y avoir des problèmes pour créer des applications commerciales.

Why?

  • Parfois, on a envie de faire des choses qui ne rentrent pas dans la manière standard de faire
    • Toutes les discussions en ligne se concentrent sur l’utilisation du processus standard
    • Ces processus changent, ce qui rend difficile l’exécution de certaines tâches et le fait de rester à jour
    • Avec un Makefile, vous pouvez voir exactement quelles commandes sont exécutées, ajouter des règles personnalisées et ajuster le build
  • Le C est un langage universel
    • Rawdraw fonctionne sur tout, de l’ESP8266 au RaspberryPi, en passant par Windows, Linux et même Android
    • Écrivez le code une seule fois et utilisez-le partout
  • Quand on ne remplit pas le processus de build de couches inutiles, il ne reste plus que l’essentiel
    • Cela facilite le développement, le déploiement, etc.
    • Tout prend beaucoup moins de temps
  • C’est aussi une façon de répondre aux luddites d’Internet
    • Ceux qui répondent sur Stack Overflow : « c’est impossible » ou « vous vous y prenez mal »
    • Ou les absurdités du genre : demander des permissions depuis JNI « doit se faire en Java »
    • Je ne m’intéresse absolument pas aux opinions sur ce qui est possible ou impossible
    • C’est de l’informatique. Il n’y a pas de limites. Vous pouvez faire ce que vous voulez. Ce ne sont que des bits. Vous ne me possédez pas

1 commentaires

 
GN⁺ 2024-09-23
Avis sur Hacker News
  • « Je peux faire tout ce que je veux. Ce ne sont que des bits. Tu ne me possèdes pas. » Assez d’accord

  • L’écosystème Java et Kotlin est pénible pour le développement Android. Java est un langage difficile à utiliser, et Kotlin est moins mauvais, mais les outils de build, la gestion des paquets et l’usage de l’IDE restent contraignants. Merci à l’auteur

  • Il semble qu’il faille installer Android Studio. Je me demande s’il existe un moyen de télécharger uniquement le SDK Android

    • En jetant un rapide coup d’œil au Makefile, il semble éviter Gradle, mais appelle d’autres outils écrits en Java
    • J’aimerais voir comment builder une app Flutter sans Gradle
  • J’ai gardé un bon souvenir du développement cross-platform d’un moteur C++/OpenGL ES

  • Cette approche est utile pour les applications qui fournissent leur UI via OpenGL et interagissent peu avec le système Android

    • Le NDK sert habituellement à écrire de petits morceaux de code C pour accélérer des applications Android Java traditionnelles
    • Ce hack permet d’écrire en pur C des applications OpenGL qui tournent en plein écran
    • Il offre un accès limité à des éléments comme le clavier, les entrées ADC et l’USB
    • Il ne réimplémente pas le framework Android en C, et le NDK ne fournit qu’un accès limité pour que le code NDK puisse interagir avec le framework
    • Le principal cas d’usage est un programme prenant en charge des visualisations audio réactives en temps réel basées sur l’extraction chroma
  • Chaque fois que j’utilise XCode ou Android Studio, cela me rappelle à quel point les développeurs web ont de la chance grâce à Vite

    • Tout fonctionne bien. Son système de plugins simple permet d’intégrer à peu près n’importe quoi
    • Quand il n’existe pas de plugin adapté, il était facile de créer un plugin personnalisé
    • Quand Vite casse, c’est la catastrophe totale. Il faut trouver une autre solution ou attendre un correctif. Corriger soi-même les entrailles de Vite est quasiment impossible
  • Quelqu’un avec les moyens d’un Elon devrait faire en sorte que Linux fonctionne sur mobile. Des efforts sont en cours, mais les progrès sont lents. Cela briserait le duopole et rendrait ce genre de travail bien plus simple

  • Si on intégrait Lua dans ce système pour écrire la logique de haut niveau, ce serait utile pour des jeux ou des lecteurs multimédias qui n’ont pas besoin d’un gros support d’accessibilité

    • Pour les parties où les performances comptent, on pourrait facilement lier des bibliothèques C ou écrire directement du code C
    • (Puis réécrire progressivement le cœur en Zig)
  • Les outils Java/Kotlin sont ce qu’il y a de pire pour le développement mobile. Il existe tant d’autres excellents langages et outils, et je ne comprends toujours pas pourquoi on continue à les maintenir. Je ne comprends pas pourquoi Google n’a pas proposé Go comme alternative native pour le développement Android

  • Je suis surpris qu’il y ait encore des gens qui utilisent Make. On dirait qu’ils ne savent pas que d’autres langages ont été créés ces vingt dernières années