13 puntos por GN⁺ 2024-09-23 | 1 comentarios | Compartir por WhatsApp
  • ¿Quieres ejecutar código C en Android?
  • Este framework puede generar un APK en unos 2 segundos, instalarlo y ejecutarlo automáticamente, y el APK pesa aproximadamente 25 kB.
    • En API 30 (Android R+), pesa 45 kB para soportar ARM64 + ARM32.
  • La demo de este framework incluye lo siguiente:
    • Crear una ventana con soporte para OpenGL ES
    • Entrada de acelerómetro/giroscopio, multitáctil
    • Teclado de Android para ingreso de texto
    • Guardar archivos de assets en el APK y leerlos con AAssetManager
    • Soporte de permisos, como para usar sonido
    • Acceso directo a dispositivos USB
  • Descargo de responsabilidad: este código debe usarse bajo la responsabilidad del usuario. Puede haber problemas para crear apps comerciales.

Why?

  • A veces quieres hacer cosas que no encajan en la forma normal
    • Toda la discusión en línea se enfoca en usar el proceso normal
    • Esos procesos cambian y dificultan hacer ciertas tareas y mantenerse actualizado
    • Con un Makefile puedes ver exactamente qué comandos se ejecutan, agregar reglas personalizadas y ajustar la compilación
  • C es un lenguaje universal
    • Rawdraw funciona en todo, desde ESP8266 hasta RaspberryPi, Windows, Linux e incluso Android
    • Escribes el código una vez y puedes usarlo en cualquier parte
  • Si no rellenas el proceso de compilación con capas innecesarias, solo queda lo importante
    • Eso facilita el desarrollo, el despliegue, etc.
    • Todo toma mucho menos tiempo
  • También tiene que ver con darles una respuesta a los luditas de internet
    • La gente que responde en Stack Overflow "eso es imposible" o "lo estás haciendo mal"
    • Tonterías como que pedir permisos desde JNI "debe hacerse en Java"
    • No me interesan en absoluto las opiniones sobre lo que es posible o imposible
    • Esto es ciencia de la computación. No hay límites. Puedes hacer lo que quieras. Solo son bits. No eres dueño de mí

1 comentarios

 
GN⁺ 2024-09-23
Opiniones en Hacker News
  • "Puedo hacer lo que quiera. Solo son bits. No me posees." Totalmente de acuerdo

  • El ecosistema de Java y Kotlin en el desarrollo de Android es incómodo. Java es un lenguaje difícil de usar, y Kotlin es menos malo, pero las herramientas de compilación, la gestión de paquetes y el uso del IDE son engorrosos. Gracias al autor

  • Parece que se necesita instalar Android Studio. Me pregunto si hay alguna forma de descargar solo el Android SDK

    • Al ver el Makefile por encima, parece que evita Gradle, pero llama a otras herramientas escritas en Java
    • Me gustaría ver cómo compilar una app de Flutter sin Gradle
  • Tengo un buen recuerdo de cuando desarrollé un motor multiplataforma en C++/OpenGL ES

  • Este método es útil para aplicaciones que ofrecen la UI mediante OpenGL y no interactúan mucho con el sistema Android

    • El NDK se usa para escribir pequeñas porciones de código en C para acelerar aplicaciones Android tradicionales en Java
    • Este hack permite escribir apps OpenGL de pantalla completa en C puro
    • Ofrece acceso limitado a cosas como teclado, entrada ADC y USB
    • No reimplementa el framework de Android en C, y el NDK ofrece un acceso limitado para que el código NDK interactúe con el framework
    • El caso de uso principal es un programa que soporta visualización reactiva de audio en tiempo real basada en extracción de chroma
  • Cada vez que uso XCode o Android Studio, recuerdo lo afortunados que son los desarrolladores web gracias a Vite

    • Todo funciona bien. Con un sistema de plugins simple se puede integrar cualquier cosa
    • Cuando no había un plugin que necesitaba, podía crear uno personalizado con facilidad
    • Si Vite se rompe, todo queda completamente arruinado. Hay que buscar otra forma o esperar a que salga un parche. Arreglar por cuenta propia el interior de Vite es casi imposible
  • Alguien con mucho dinero, como Elon, debería hacer que Linux funcione en móviles. Hay esfuerzos en curso, pero avanzan lento. Eso rompería el duopolio y haría este tipo de trabajo mucho más fácil

  • Si se integrara Lua en este sistema para escribir la lógica de alto nivel, sería útil para cosas como juegos o reproductores multimedia que no necesitan mucho soporte de accesibilidad

    • En las partes donde el rendimiento importa, se pueden enlazar fácilmente bibliotecas en C o escribir código en C directamente
    • (Y luego reescribir gradualmente el núcleo en Zig)
  • Las herramientas de Java/Kotlin son de lo peor para el desarrollo móvil. No entiendo por qué se sigue manteniéndolas cuando hay tantos otros lenguajes y herramientas excelentes. No puedo entender por qué Google no ofreció Go como alternativa nativa para el desarrollo en Android

  • Me sorprende que todavía haya gente que use Make. Parece que no saben que en los últimos 20 años se han creado otros lenguajes