Experiencia · Aplicaciones de escritorio
Aplicaciones que se instalan en el ordenador. En macOS hemos construido dos; para Windows y Linux esta página es una oferta, no un historial.
Construimos aplicaciones nativas para macOS, con el núcleo de lógica separado de la pantalla, para que la misma lógica también funcione en el teléfono. Para Windows y Linux/Ubuntu no tenemos todavía nada entregado y lo escribimos así, con las condiciones en las que aceptaríamos el trabajo. La primera pregunta sigue siendo si realmente necesitas una aplicación instalada.
Oferta, con condicionesLa regla es mecánica y la aplico mecánicamente. En macOS tenemos dos implementaciones propias, construidas y ejecutables: una aplicación de barra de menú con 25 archivos Swift, que reutiliza 15 archivos del núcleo de un proyecto de iPhone, y una segunda aplicación, más simple, que es un envoltorio WebKit sobre una aplicación web. Ambas tienen binario compilado en esta máquina. Pero el servicio, como se le llama, cubre tres familias de sistemas, y para dos de ellas —Windows y Linux/Ubuntu— he buscado en serio y he encontrado cero: ningún proyecto .NET o Qt propio, ningún `tauri.conf.json`, ningún Electron escrito por nosotros, ningún `.desktop`, ningún paquete deb, rpm o AppImage. Además, ninguna de las dos aplicaciones de macOS se ha empaquetado nunca en un instalador distribuible. Con solo una de tres plataformas cubierta y cero distribuciones, la página se escribe como oferta con condiciones. Cuando entreguemos la primera aplicación de Windows o de Linux, cambia el valor, no el texto.
La primera pregunta que te hacemos no es para qué sistema, sino si realmente necesitas una aplicación instalada. Merece la pena instalarla cuando necesita algo que el navegador no le da: acceso directo a sensores o periféricos, presencia permanente en la barra del sistema, trabajo sin internet, acceso a los archivos del disco sin que la persona los cargue cada vez, o ejecución en segundo plano cuando la ventana está cerrada. Si ninguna de estas cosas se requiere, un sitio que se abre desde un enlace es más barato de construir, actualizar y mantener —y te lo decimos, aunque el trabajo salga más pequeño.
En macOS tenemos dos aplicaciones construidas. La primera es una aplicación de barra de menús: 25 archivos Swift propios, más 15 archivos de núcleo tomados directamente del proyecto de iPhone del mismo producto —los mismos archivos, no una copia. Se construye con un script que llama directamente al compilador Swift, objetivo `arm64-apple-macosx14`, enlazando once marcos del sistema, entre ellos SwiftUI, AppKit, CoreMotion, Vision y UserNotifications. El binario resultante tiene 6.516.128 bytes. La segunda es mucho más simple y es honesto decirlo con precisión: tres archivos Swift, un envoltorio WebKit sobre una aplicación web, con sandbox y runtime reforzado activados, compilado de forma universal para procesadores Intel y Apple. Son dos cosas distintas y las llamamos de forma distinta.
Lo que no tenemos, dicho claramente. Windows: cero. He buscado proyectos .NET, WPF, WinForms, WinUI, archivos `.xaml`, `.appxmanifest`, `.msi`, `.wxs` —todo lo que he encontrado en el disco pertenece a una biblioteca C de terceros, vendorizada en otro proyecto, que no hemos escrito nosotros. Linux de escritorio: cero —ningún archivo `.desktop`, ningún paquete deb o AppImage construido aquí. Electron o Tauri escritos por nosotros: cero. Y, igual de importante: ninguna de las dos aplicaciones de macOS ha sido nunca empaquetada en un instalador. Existen como paquetes `.app` construidos localmente, firmados ad hoc, sin identificador de equipo.
Lo que sí transfiere la experiencia previa, y es la parte que importa para un proyecto nuevo: la disciplina de mantener el núcleo de lógica separado de la interfaz. En el proyecto de macOS, los archivos de cálculo y de políticas no importan la interfaz, así que se compilan y se ejecutan en Mac como un programa normal, sin simulador; su suite de lógica se ejecuta en unos segundos. Esa misma separación hace que portar a otro sistema sea un problema de envoltorio, no de reescritura. En eso nos basamos cuando decimos que podríamos hacer Windows o Linux —no en una experiencia que no tenemos.