Skip to content

Juanoto2012/EmberOS

Repository files navigation

Ember SDK

EmberOS Version

Bienvenido al repositorio oficial de Ember SDK. Este kit de desarrollo proporciona todas las herramientas y APIs necesarias para construir, empaquetar y distribuir aplicaciones nativas para EmberOS utilizando tecnologías web estándar (HTML, CSS, JavaScript).

🌟 Características Principales

  • Integración Nativa: Acceso directo al sistema de archivos, notificaciones, audio global y gestión de ventanas de EmberOS.
  • Renderizado DOM-First: Optimizado para interfaces construidas con HTML y CSS puro, minimizando el uso de recursos y garantizando la compatibilidad por hardware (sin depender de <canvas>).
  • Compatibilidad Universal: Soporte integrado tanto para las Nuevas APIs (window.Ember) como para la arquitectura Legacy (window.EmberAPI).
  • Empaquetado Simple: Todo el código fuente y los metadatos se distribuyen de forma segura en un único archivo JSON con extensión .emb.

🚀 Guía de Inicio Rápido

1. El Archivo .emb (Manifiesto)

Toda aplicación se define mediante un manifiesto. Crea un archivo llamado mi_app.emb con la siguiente estructura básica:

{
  "id": "com.usuario.hola_mundo",
  "title": "Hola Mundo",
  "icon": "data:image/svg+xml;base64,...",
  "width": 400,
  "height": 300,
  "developer": "Tu Nombre",
  "version": "1.0",
  "permissions": ["notifications"],
  "code": "/* El código de tu app en formato string va aquí */"
}

2. Tu Primer Código (App Template)

Dentro de la propiedad "code", inserta tu lógica en JavaScript. Recuerda siempre renderizar dentro del contenedor provisto por el sistema:

// Obtener el contenedor del sistema de forma segura
const container = (window.Ember && window.Ember.UI) 
    ? Ember.UI.getContainer() 
    : (window.EmberAPI ? EmberAPI.ui.container : document.body);

// Construir la interfaz usando DOM puro
container.innerHTML = `
  <div style="font-family: sans-serif; padding: 20px; color: white;">
    <h1>¡Hola desde EmberOS!</h1>
    <button id="btn-saludo" style="padding: 8px 16px; cursor: pointer;">Saludar</button>
  </div>
`;

// Interactuar con las APIs del sistema
document.getElementById('btn-saludo').addEventListener('click', () => {
  if (window.Ember && window.Ember.Notifications) {
    Ember.Notifications.show({ title: 'Hola', body: '¡Bienvenido a Ember SDK!' });
  } else {
    console.log('¡Bienvenido a Ember SDK!');
  }
});

📚 Referencia Rápida de la API

La SDK moderna se expone a través del objeto global window.Ember. Aquí tienes un resumen de los módulos clave:

  • Ember.UI.getContainer(): Devuelve el nodo <div> raíz asignado a tu aplicación.
  • Ember.Window.setTitle(title): Actualiza el título dinámico de la ventana.
  • Ember.FS.openFileDialog(options): Llama al explorador de archivos nativo y devuelve una Promesa con los archivos.
  • Ember.Notifications.show(options): Envía alertas al centro de notificaciones de EmberOS.
  • Ember.Audio.getVolume() / .on(): Permite leer y reaccionar a los cambios de volumen global.
  • Ember.Process.getArguments(): Recupera los parámetros de inicio (como un archivo que el usuario intentó abrir).

Para la documentación completa, profunda y con todos los ejemplos de IPC, por favor consulta la Documentación Oficial de la API.

🛠️ Buenas Prácticas

  • Evita usar <canvas> innecesariamente: Para visualizadores de audio, animaciones o UI compleja, utiliza manipulación directa del DOM y transiciones CSS (transform, opacity, will-change). Es más eficiente en EmberOS.
  • Aislamiento: Tu app corre en un entorno gestionado. No manipules document.body ni reemplaces eventos globales de window que puedan interferir con el sistema operativo.
  • Garbage Collection: Libera listeners de eventos, bucles requestAnimationFrame y nodos de WebAudio cuando tu app entre en suspensión o se cierre.

🤝 Contribuir

Si deseas mejorar la SDK, reportar bugs o sugerir nuevas características para el ecosistema de EmberOS, por favor abre un Issue o envía un Pull Request en este repositorio.

About

EmberOS is a web based os like chrome os or linux lite running on a electron container , it offers a intiuitive experience like modern os but in a web based secure envoirment

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors