Logo ETSIT
Escuela Técnica Superior de Ingenieros de Telecomunicación

UNIVERSIDAD POLITÉCNICA DE MADRID

Logo UPM
Objetivos:

El objetivo básico de la asignatura es que el alumno sea capaz de programar aplicaciones para los entornos GNOME y KDE.  Con el auge de GNUILinux en el excritorio ha crecido considerablemente la demanda de aplicaciones y desarrolladores para los entornos de escritorio más pòpulares: Gnome y KDE. En este curso se enseñarán tanto los fundamentos de programación de aplicaciones gráficas, incluyendo las librerías GTK y QT, utilizadas en otros sistemas, como la organización de las comunidades de desarrolladores y cómo colaborar con ambos proyectos. En definitiva, tras la realización de este curso los alumnos contarás con las herramientas teóricas y prácticas necesarias para desarrollar sus propias aplicaciones tanto en GNOME como en KDE.

Programa:

1 Introducción a los escritorios libres

1.1 Introducción a GNOME

1.2 Introducción a KDE

1.3 Anatomía del escritorio GNOME (paneles, menús, ventanas, apliques, ...)

1.4 Anatomía del escritorio KDE (paneles, menús, ventanas, apliques, ...)

1.5 Anatomía de una aplicación del escritorio GNOME (Lanzador, menús, barras de herramientas y de estado, notificaciones del sistema, integración)

1.6 Anatomía de una aplicación del escritorio KDE (Lanzador, menús, barras de herramientas y de estado, notificaciones del sistema, integración)

2 Introducción a la plataforma GNOME

2.1 Documentación de GNOME: cómo consultarla

2.2 Librerías básicas de bajo nivel: glib y gvfs

2.3 Toolkit gráfico: gtk+

2.4 Diseño de Interfaces de usuario con glade-3

2.5 Localización y accesibilidad: glib-i18n y atk

2.6 Otras APIs de GNOME

3 Introducción a la plataforma KDE

3.1 Documentación de KDE: cómo consultarla

3.2 QT: Utilidades de bajo nivel

3.3 QT: Elementos gráficos

3.4 Diseño de Interfaces de usuario con QTDesigner

3.5 Localización y accesibilidad

3.6 Otras APIs de KDE

4 Introducción a las APIs de Freedesktop

4.1 Menús y lanzadores de aplicaciones

4.2 Iconos, miniaturas y ficheros recientes

5 Entorno y metodología de desarrollo para KDE y GNOME

5.1 Instalación de de los requisitos para el desarrollo en las distribuciones más comunes.

5.2 Editores de texto: vim y emacs

5.3 Compilación con gcc, g++ e interpretación con python. Uso de pkg-config

5.4 Automatización de la compilación: autotools y scons

5.5 Editores Integrados: anjuta y Kdevelop

5.6 Metodología de desarrollo: prototipado, tests, etc.

6 Desarrollo de una aplicación básica de GNOME

7 Desarrollo de una aplicación básica de KDE

8 Estudio de una aplicación de GNOME: Visor de documentos Evince

8.1 Estudio de la ergonomía, diseño de interfaz y usabilidad

8.2 Estudio de la internacionalización y localización

8.3 Estudio del uso de las librerías de la plataforma GNOME

9 Estudio de una aplicación de KDE: okular

9.1 Estudio de la ergonomía, diseño de interfaz y usabilidad

9.2 Estudio de la internacionalización y localización

9.3 Estudio del uso de las librerías de la plataforma KDE

10 Desarrollo de una aplicación completa de GNOME

10.1 Diseño de la interfaz de usuario

10.2 Esqueleto de la aplicación (incluyendo internacionalización)

10.3 Codificación de la funcionalidad y las interacciones

10.4 Pruebas de accesibilidad y codificación necesaria

11 Desarrollo de una aplicación completa de KDE

11.1 Diseño de la interfaz de usuario

11.2 Esqueleto de la aplicación (incluyendo internacionalización)

11.3 Codificación de la funcionalidad y las interacciones

11.4 Pruebas de accesibilidad y codificación necesaria

12 Desarrollo en comunidad en GNOME

12.1 Introducción

12.2 Gestión de código en GNOME: git

12.3 Control de errores en GNOME: bugzilla.gnome.org

12.4 Trabajo colaborativo en GNOME: listas de correo, IRC, wiki, etc.

13 Desarrollo en comunidad en KDE

13.1 Gestión de código en KDE: svn

13.2 Control de errores en KDE: bugs.kde.org

13.3 Trabajo colaborativo en KDE: listas de correo, IRC, wiki, etc.

14 Colaboración en el desarrollo de una aplicación GNOME: resolución de un problema real

15 Colaboración en el desarrollo de una aplicación KDE: resolución de un problema real

16 Integración de aplicaciones KDE en GNOME y GNOME en KDE

16.1 Uso de las APIs y herramientas de Freedesktop

16.2 Temas de estilos

17 Próximos pasos en el desarrollo de aplicaciones GNOME y KDE

18 Futuro de los escritorios: móviles, sistemas empotrados, otros.

Actividades previstas:

 

Evaluación:

Ejercicios al final de ciertos temas y test final del curso.

Destinatarios:

Alumnos de todos los cursos.

Criterios de selección:

Conocimientos previos (recomendados): Conocimientos básicos de manejo de ordenadores y programación.

Número de plazas: 100
Metodología:

Clases presenciales y online.

Coordinador: Carlos Ángel Iglesias Fernández
Profesorado:

Profesor responsable: Carlos Ángel Iglesias Fernández

Profesores participantes: Fernando Herrera de las Heras, Director de Onírica S.L.

Aula: A-122
Horario:

Lunes, miércoles y jueves 16:00 a 20:00

Fechas: Inicio: 22-2-2010     Final: 29-3-2010      Fecha de examen: --
Observaciones:

La fecha del examen se definirá durante el curso.