Exposición 20 aniversario linux

31
Primera Parte 1. ¿Qué es el Software Libre? 2. ¿Qué es Software Open Source? 3. Diferencias entre Software Libre y Open Source Expositor Bayron Guevara Digital Sense S.A. de C.V. Fundador y Presidente www.digitalsensehn.com

description

Exposición sobre Software Libre, Open Source y Plataformas Móviles realizada en la UNAH-VS, con motivo de la celebración del 20 Aniversario de Linux.

Transcript of Exposición 20 aniversario linux

Page 1: Exposición 20 aniversario linux

Primera Parte1. ¿Qué es el Software Libre?

2. ¿Qué es Software Open Source?

3. Diferencias entre Software Libre y Open Source

ExpositorBayron GuevaraDigital Sense S.A. de C.V.Fundador y Presidente

www.digitalsensehn.com

Page 2: Exposición 20 aniversario linux

¿Qué es el Software Libre?

0. Usar el programa con cualquier propósito1. Estudiar el funcionamiento del software y

modificarlo2. Distribuir copias del software3. Mejorarlo y hacer públicas esas mejoras

No debe confundirse con el software gratuito, ya que el software libre puede ser distribuido comercialmente

Es aquel que garantiza las siguientes libertades o principios:

Page 3: Exposición 20 aniversario linux

Richard Stallman creó el concepto y fundó en 1985 la Free Software Foundation, una organización dedicada a difundir este movimiento.

Richard Stallman

La idea detrás del Software Libre es que el software debería considerarse un patrimonio de la humanidad, construido mediante un esfuerzo comunitario.Existen varias licencias compatibles con esta ideología.

¿Qué es el Software Libre?

Page 4: Exposición 20 aniversario linux

¿Qué es Software Open Source?Es aquel que se distribuye junto con su código fuente y otro material de apoyo.Surge a partir de la necesidad de las empresas de promover mejoramiento continuo de sus productos de software a través de la colaboración y aportaciones de sus usuarios.La OSI es una organización dedicada a promocionarlo y la responsable de licenciar un producto como Open Source. Debe considerarse más como un método de desarrollo, que como una filosofía o ética.

Page 5: Exposición 20 aniversario linux

Diferencias entre Software Libre y Open Source

Software Libre Open SourceGarantiza las libertades de uso, copia, modificación y distribución del software.

Únicamente garantiza acceso libre al código fuente

Se basa en una ideología y filosofía

Utilizado como una metodología de desarrollo de software

Licencias deben ser compatibles con la GPL

Sus licencias pueden restringir su distribución y forma de ejecución

El copyleft impide que los redistribuidores de software libre lo modifiquen con el objetivo de hacerlo privativo.

No es obligatorio el uso del copyleft.

Las libertades del software libre implican que también se trata de producto Open Source.

No todo Open Source necesariamente es Software Libre.

Page 6: Exposición 20 aniversario linux

Diferencias entre Software Libre y Open Source

Ejemplos de software considerados exclusivamente Open Source:

● Sencha Framework. Desarrollo de aplicaciones web en dispositivos móviles.

● eZ Publish. Sistema Web de Administración de Contenido (CMS).

Page 7: Exposición 20 aniversario linux

Muchas gracias por su atención.

Page 8: Exposición 20 aniversario linux

Segunda Parte1. Principales Plataformas Móviles

2. Ventajas y Libertades de Android

3. Fundamentos de Desarrollo de Apps para Android

ExpositorBayron GuevaraDigital Sense S.A. de C.V.Fundador y Presidente

www.digitalsensehn.com

Page 9: Exposición 20 aniversario linux

Principales Plataformas MóvilesHasta la fecha se han desarrollado multitud de plataformas para dispositivos móviles como son los smartphones y los tablets. Sin embargo, son contadas las que han alcanzado una verdadera aceptación:

Page 10: Exposición 20 aniversario linux

Principales Plataformas Móviles

Page 11: Exposición 20 aniversario linux

Principales Plataformas Móviles

Desarrollado por Apple y es utilizado en el iPad, iPhone y iPod. Fue lanzado en junio de 2007 y actualmente su última versión estable es la 4.3.

Su SDK llamado Xcode únicamente está disponible para el sistema operativo OS X.

Características principales:● Núcleo basado en Darwin BSD● Plataforma de Hardware: ARM● Multitarea a partir de versión 4● Más de 200,000 apps disponibles

Page 12: Exposición 20 aniversario linux

Principales Plataformas Móviles BlackBerry OS

Page 13: Exposición 20 aniversario linux

Principales Plataformas Móviles BlackBerry OS

Desarrollado por RIM (Research in Motion) para los dispositivos BlackBerry.

Fue introducido en 1999, llegando a ser exitoso por la cobertura de sus servicios de e-mail y mensajería instantánea, así como su teclado especialmente diseñado para escribir con los pulgares.

Entre los nuevos modelos figuran el BlackBerry Storm (touchscreen), el Torch y el Bold 9700

Todo el S.O. y las aplicaciones pre-instaladas son software completamente privativo.

Page 14: Exposición 20 aniversario linux

Características principales:● Arquitectura de Hardware: ARM, Xscale● Programado en C++● Kernel basado en Java● Desarrollo de apps en Java● Multitarea

Principales Plataformas Móviles BlackBerry OS

Page 15: Exposición 20 aniversario linux

Principales Plataformas Móviles

Page 16: Exposición 20 aniversario linux

Principales Plataformas Móviles

Usado en los smartphones de Nokia. Se ha convertido en la plataforma móvil más utilizada a nivel mundial con más de 400 millones de dispositivos vendidos. El lanzamiento más reciente se llama Symbian Anna y esta disponible en los smartphones N8, E7, X7 entre otros.

Aunque cierta parte del código fuente esta licenciado bajo la Eclipse Public License, compatible con la GNU GPL; la mayor parte del código se encuentra bajo una licencia propietaria llamada SFL.

Page 17: Exposición 20 aniversario linux

Características principales:● Arquitecturas de Hardware: ARM y x86● Qt como interfaz de usuario● Desarrollo nativo de apps en C++ estándar, alternativamente se puede usar Phyton, Java ME o Adobe Flash● Usa un micro-kernel llamado EKA2● Multitarea y protección de memoria

Principales Plataformas Móviles

Page 18: Exposición 20 aniversario linux

AndroidPrincipales Plataformas Móviles

Page 19: Exposición 20 aniversario linux

AndroidPrincipales Plataformas Móviles

Esta compuesto por el Sistema Operativo, las herramientas de desarrollo y los dispositivos que lo ejecutan. Es la plataforma con mayor crecimiento haciendo que los analistas esperen que se convierta en la #1 del mercado en los próximos años.

Fue desarrollado inicialmente por Android Inc. que posteriormente fue comprada por Google en 2005. Actualmente su desarrollo esta a cargo de la Open Handset Alliance (OHA), un grupo de empresas de software, fabricantes de dispositivos móviles y operadores, y que es liderado por Google.

Page 20: Exposición 20 aniversario linux

La primera versión fue lanzada en octubre de 2008 en el T-Mobile G1. Recientemente el S.O. ha sido fragmentado en versiones para smartphones y versiones para tablets (conocidas bajo el nombre de Honeycomb). No obstante Google ha prometido integrar estas versiones con el lanzamiento de Android 4 (Ice Cream Sandwish) al final de este año.

Aunque su código fuente completo ha sido liberado en las versiones para smartphones bajo la Licencia Apache -aprobada por la FSF-, el código fuente de las versiones para tablets únicamente está disponible para los miembros del OHA. Sin embargo, Google anunció liberarlo como parte del lanzamiento de Android 4.

AndroidPrincipales Plataformas Móviles

Page 21: Exposición 20 aniversario linux

Principales características● Núcleo Linux 2.6● Arquitectura de Hardware: ARM, MIPS y x86● Desarrollado de apps en C++ y Java● Soporte de CPUs multi-core y aceleramiento gráfico por hardware ● Android Market con más de 250,000 apps

AndroidPrincipales Plataformas Móviles

Page 22: Exposición 20 aniversario linux

● Completamente Software Libre, no utiliza componentes privativos

● Aprovecha las últimas tecnologías de los dispositivos móviles.

● Es la plataforma con más crecimiento de mercado● Flexibilidad para reemplazar cualquier aplicación

nativa por aplicaciones de terceros.● Implementado en multitud de dispositivos de

diferentes fabricantes● Las aplicaciones no necesitan estar firmadas

digitalmente para acceder a todas las capacidades● Comunidad más grande de desarrolladores● El costo de subir apps gratuitas en Android Market es

casi cero, solamente se paga una cuota de inscripción de $25.

Ventajas y Libertades de Android

Page 23: Exposición 20 aniversario linux

Desarrollo de Apps para Android

Arquitectura de componentes del Sistema Operativo

Page 24: Exposición 20 aniversario linux

Desarrollo de Apps para AndroidPodemos escribir nuestras aplicaciones Android

en Java o C++. Para ejecutar apps en Java, Android posee su propia implementación de la JVM llamada Dalvik, la cual utiliza sus propias librerias y APIs y esta diseñada para correr múltiples instancias eficientemente.

Herramientas de DesarrolloPara comenzar a desarrollar en Android, necesitamos las siguientes herramientas:● Android SDK● IDE (Entorno Integrado de Desarrollo)● Plugin ADT para el IDE

Page 25: Exposición 20 aniversario linux

Características destacadas de las Apps ● Acceso al hardware, incluyendo cámara, GPS y

acelerómetro. ● Servicios de Fondo. Permiten ejecutar procesos

en segundo plano, mientras estas usando una aplicación interactiva.

● SQLite. Puedes usar esta librería para almacenar y acceder datos de tu app mediante consultas SQL.

● Datos compartidos y comunicación entre aplicaciones. Una aplicación puede requerir acceso a la base de datos privada de otra app y enviarse mensajes entre si durante su ejecución

Desarrollo de Apps para Android

Page 26: Exposición 20 aniversario linux

Componentes de AplicacionesSon los bloques esenciales de construcción de una aplicación Android. Los tipos de componentes son:

● Actividades. Corresponden a una única pantalla de la interfaz de usuario de nuestra app.

● Servicios. Se ejecutan en segundo plano. No poseen UI, en su lugar muestran notificaciones y abren Actividades

● Proveedores de Contenido. Sirven como almacenamiento compartido entre aplicaciones, por ejemplo, el directorio de contactos.

Desarrollo de Apps para Android

Page 27: Exposición 20 aniversario linux

Componentes de Aplicaciones● Intentos (en inglés Intents). Permiten el paso de

mensajes dentro y entre aplicaciones. Pueden estar dirigidas a una Actividad o Servicio especifico, o a todo el sistema en el caso de una solicitud de un servicio.

● Destinarios de broadcast (en inglés broadcast receivers). Responden a las solicitudes de servicio de los intentos. Son útiles cuando necesitas que tu aplicación ejecute determinadas acciones en respuesta a ciertos eventos.

Desarrollo de Apps para Android

Page 28: Exposición 20 aniversario linux

RecursosCasi siempre es una buena práctica mantener recursos que no son código de programación fuera del mismo, por ejemplo, imágenes, colores, traducciones, UI.Android trae por defecto un Administrador de Recursos que dinámica y automáticamente carga los recursos cuando los referenciamos desde nuestro código.Cuando desarrollamos para Android utilizaremos frecuentemente los recursos ya que nos permiten implementar más facilmente apps que se adaptan automáticamente a las especificaciones de los dispositivos.

Desarrollo de Apps para Android

Page 29: Exposición 20 aniversario linux

Implementando una Interfaz de UsuarioEl método más sencillo de implementar un UI es través del editor visual que trae incorporado el plugin ADT de Eclipse, el cual automáticamente genera el correspondiente recurso XML.

Desarrollo de Apps para Android

Page 30: Exposición 20 aniversario linux

Ciclo de Vida de las Actividades

Desarrollo de Apps para Android

Page 31: Exposición 20 aniversario linux

Muchas gracias por su atención.