Este documento resume las diferencias entre software libre y open source, y proporciona una introducción al desarrollo de aplicaciones para Android. Explica que el software libre garantiza libertades como el uso, modificación y distribución del código, mientras que open source solo garantiza acceso al código. Luego describe las principales plataformas móviles como iOS, BlackBerry OS, Symbian y Android, enfocándose en las ventajas y libertades de Android como su naturaleza de código abierto y comunidad de desarrolladores. Finalmente, cubre conceptos
TEMA 6.- MAXIMIZACION DE LA CONDUCTA DEL PRODUCTOR.pptx
Exposición 20 aniversario linux
1. 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
2. ¿Qué es el Software Libre?
Es aquel que garantiza las
siguientes libertades o
principios:
0. Usar el programa con cualquier propósito
1. Estudiar el funcionamiento del software y
modificarlo
2. Distribuir copias del software
3. Mejorarlo y hacer públicas esas mejoras
No debe confundirse con el software
gratuito, ya que el software libre puede ser
distribuido comercialmente
3. ¿Qué es el Software Libre?
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.
4. ¿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.
5. Diferencias entre Software Libre y
Open Source
Software Libre Open Source
Garantiza las libertades de uso, Únicamente garantiza acceso
copia, modificación y libre al código fuente
distribución del software.
Se basa en una ideología y Utilizado como una
filosofía metodología de desarrollo de
software
Licencias deben ser Sus licencias pueden
compatibles con la GPL restringir su distribución y
forma de ejecución
El copyleft impide que los No es obligatorio el uso del
redistribuidores de software copyleft.
libre lo modifiquen con el
objetivo de hacerlo privativo.
Las libertades del software libre No todo Open Source
implican que también se trata necesariamente es Software
de producto Open Source. Libre.
6. 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).
8. Segunda Parte
1. Principales Plataformas Móviles
2. Ventajas y Libertades de Android
3. Fundamentos de Desarrollo de
Apps para Android
Expositor
Bayron Guevara
Digital Sense S.A. de C.V.
Fundador y Presidente
www.digitalsensehn.com
9. Principales Plataformas Móviles
Hasta 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:
11. 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
13. 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.
14. Principales Plataformas Móviles
BlackBerry OS
Características principales:
● Arquitectura de Hardware: ARM, Xscale
● Programado en C++
● Kernel basado en Java
● Desarrollo de apps en Java
● Multitarea
16. 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.
17. Principales Plataformas Móviles
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
19. Principales Plataformas Móviles
Android
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.
20. Principales Plataformas Móviles
Android
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.
21. Principales Plataformas Móviles
Android
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
22. Ventajas y Libertades de Android
● 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.
23. Desarrollo de Apps para Android
Arquitectura de componentes del Sistema Operativo
24. Desarrollo de Apps para Android
Podemos 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 Desarrollo
Para comenzar a desarrollar en Android,
necesitamos las siguientes herramientas:
● Android SDK
● IDE (Entorno Integrado de Desarrollo)
● Plugin ADT para el IDE
25. Desarrollo de Apps para Android
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
26. Desarrollo de Apps para Android
Componentes de Aplicaciones
Son 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.
27. Desarrollo de Apps para Android
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.
28. Desarrollo de Apps para Android
Recursos
Casi 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.
29. Desarrollo de Apps para Android
Implementando una Interfaz de Usuario
El 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.