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 condicionesRegula e mecanică și o aplic mecanic. Pe macOS avem două implementări proprii, construite și rulabile: o aplicație de bară de meniu cu 25 de fișiere Swift, care refolosește 15 fișiere din nucleul unui proiect de iPhone, și o a doua aplicație, mai simplă, care e un înveliș WebKit peste o aplicație web. Ambele au binar compilat pe această mașină. Dar serviciul, așa cum e numit, acoperă trei familii de sisteme, iar pentru două dintre ele — Windows și Linux/Ubuntu — am căutat serios și am găsit zero: niciun proiect .NET sau Qt propriu, niciun `tauri.conf.json`, niciun Electron scris de noi, niciun `.desktop`, niciun ambalaj deb, rpm sau AppImage. În plus, niciuna dintre cele două aplicații de macOS nu a fost vreodată împachetată într-un instalator distribuibil. Cu doar una din trei platforme acoperită și zero distribuții, pagina se scrie ca ofertă cu condiții. Când vom livra prima aplicație de Windows sau de Linux, se schimbă valoarea, nu textul.
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.