Publicado el 27 de Noviembre del 2019
816 visualizaciones desde el 27 de Noviembre del 2019
2,2 MB
51 paginas
Creado hace 14a (01/04/2011)
Jon Ander Hernandez
Iñigo Illán Aramburu
Gnome
Historia y evolución de Gnome
Contexto y justificación de Gnome 3
Filosofía detrás de Gnome 3
Ingeniería en Gnome
Historia de Gnome
Historia de Gnome
¿Qué es Gnome?
Gnome es un escritorio y una plataforma de desarrollo para
sistemas *nix
Surgió como una iniciativa de Miguel de Icaza y Federico
Mena
Trataban de que Linux tuviera un equivalente a OLE y
COM
Gnome significa GNU Network Object Model Environment
Historia de Gnome
Historia de Gnome
¿Quién hace Gnome? (I)
Historia de Gnome
¿Quién hace Gnome? (y II)
"Sólo" un 40% de los que contribuyen son pagados por ello
El resto lo hace de manera altruista
Historia de Gnome
Características de la plataforma Gnome
Gnome es una plataforma de desarrollo basada en
GLib/GObject/Gtk+
Entorno muy heterogéneo
Comprometido con unos API y ABI estables
Licencia LGPL
Historia de Gnome
Evolución de las versiones mayores
Versión 1.0 liberada en Marzo de 1999 (12 años)
Versión 2.0 liberada en Junio de 2002 (9 años)
Versión 3.0 liberada en Abril de 2011 (1 día)
A partir de Gnome 2.4, sale una revisión cada 6
meses
Historia de Gnome
Gnome 1.0
Historia de Gnome
Historia de Gnome
Sistema de componentes
Usaron Corba para implementar el sistema de componentes
En un principio Gnorba para la activación de componentes
Más tarde, OAF (Object Activation Framework)
Bonobo es el equivalente a OLE en Gnome
Historia de Gnome
¿Por qué un sistema de componentes?
Permite reusar código
Independiente del lenguaje
Permite un diseño muy modular
Historia de Gnome
Problemas con Gnome 1.x
Problemas con un API demasiado inmaduro
La usabilidad de Gnome 1.x era un desastre
Se quería un entorno más profesional
Por lo tanto, había que repensar todas las interfaces
Conclusión: Hicieron Gnome 2.0
Historia de Gnome
Gnome 2.0
Historia de Gnome
Historia de Gnome
Mayores cambios para Gnome 2.0
Accesibilidad
Unicode
Pango: Renderizado de texto avanzado
GConf: Registro para Gnome
Historia de Gnome
Human Interface Guidelines
Documento donde se especifica cómo debe ser una interfaz
Gnome
Da consistencia a las aplicaciones
Principalmente realizado por Sun
Historia de Gnome
Arquitectura de Gnome 1.x
Historia de Gnome
Arquitectura de Gnome 2 en detalle
Historia de Gnome
GLib
Implementa todas las funcionalidades básicas de cualquier
plataforma de desarrollo
Sirve de abstracción de la plataforma puesto que declara
sus propios tipos de datos
Historia de Gnome
GObject
Sistema de objetos para C
No es una extensión del lenguaje, con lo que no requiere
tratar previamente el código fuente
También ofrece soporte para eventos y propiedades
dinámicas
Clave para la generación de bindings: GType
Historia de Gnome
GType
Historia de Gnome
Pango
Se encarga del renderizado de texto
Soporta antialiasing, unicode, kerning, ellipsizing, RTL y
LTR, etc...
Pango Markups: <b>, <i>, <span>, etc...
Historia de Gnome
Cairo
Librería de gráficos vectoriales
Abstracción del sistema gráfico
Gtk en un navegador: Broadway
Historia de Gnome
Gio y Gvfs
API no POSIX para manejo de entrada/salida basada en
Interfaces
Gnome-vfs stateless vs Gvfs statefull
Gio para archivos locales y Gvfs para archivos remotos
Integrado en GLib
Historia de Gnome
Gtk+
Librería gráfica derivada de GIMP
Layouting automático
MVC para TreeView, IconView y ComboBox
Historia de Gnome
Problemas con el sistema de componentes basado en Corba
Muy difícil de depurar
No favorece la interoperabilidad entre escritorios ni con el
Sistema Operativo
Muy pesado para que funcione en hardware limitado como
un móvil.
Añade una complejidad excesiva para lo que ofrece
Historia de Gnome
DBus
Interoperabilidad en todo el sistema
Protocolo simple y eficiente
Fácil de integrar en diferentes lenguajes
Historia de Gnome
GObject Introspection
Automatización en la generación de bindings para la
plataforma
Scanner de código fuente basado en GObject
Se especifica a través de "Anotaciones"
Simplifica la generación de documentación de la API
Historia de Gnome
Gnome 3.0
Historia de Gnome
Clutter
Canvas OpenGL
Creado principalmente por Intel para Moblin
Muy optimizado
Historia de Gnome
Dconf
Muy optimizado para lecturas: Importante en el arranque
Uso de GVariant
Comunicación con el servidor a través de DBus
Historia de Gnome
Cambios en Gtk+ 3.0
Mayor abstracción del sistema gráfico
Nuevo sistema de temas basado en CSS
Soporte para dispositivos multitáctiles: XInput 2
Cambios en el negociado del tamaño de los widgets:
Natural sizing
Historia de Gnome
Natural sizing
Antes
Después
Contexto y justificación
Gnome 3.0
Contexto y justificación de Gnome 3
Necesidades para Gnome 3.0 (I)
La aparición de los netbooks y tablets hace necesario
rediseñar y repensar el escritorio
Simplificar el escritorio y hacerlo más orientado a la
tarea.
Necesidad de innovación
Contexto y justificación de Gnome 3
Necesidades para Gnome 3.0 (y II)
Cierta necesidad de cambiar el API y el ABI
Limpiar y simplificar la plataforma
Deshechar todos los módulos marcados como
'deprectated'
Contexto y justificación de Gnome 3
Plataforma de desarrollo Gnome 2.0
GLib
Gtk+
ATK
Pango
libglade
gnome-vfs
libidl
ORBit 2
libbonobo
libbonoboui
libgnome
libgnomeui
libgnome-print
libgnome-print-ui
libgnomecanvas
Contexto y justificación de Gnome 3
Plataforma de desarrollo Gnome 3.0
GLib
Gtk+
ATK
Pango
Cairo
Clutter
Demo
DEMO
Ingeniería en Gnome
Una enriquecedora visión para un futuro ingeniero
Introduction :
“ Students are not born to do a job, being a student means to learn how to think,
how to gather data, create information, lead and work with different people
around the world. ”
Gnome is all about it where you can learn all of them at the same place . :)
Ingeniería en Gnome
Ciclo de desarrollo de Gnome
Proceso iterativo e incremental
Basado en metodologías ágiles
Cada revisión dura 6 meses
Gnome impone unos plazos a los diferentes módulos que
estos deben cumplir
Ingeniería en Gnome
¿Preguntas?
Comentarios de: Gnome 3 (0)
No hay comentarios