Post on 03-Feb-2016
description
UNIVERSIDAD TECNOLÓGICA CENTROAMERICANA
FACULTAD DE INGENIERÍA
PROYECTO DE GRADUACIÓN
Aplicación Móvil de Plataforma Educativa Moodle
PREVIO A LA OBTENCIÓN DEL TÍTULO
INGENIERO EN SISTEMAS COMPUTACIONALES
PRESENTADO POR:
20841008 Joshua Odayr Welchez
20911219 Leonel Sánchez Duarte
ASESOR: Ing. Iván Deras
CAMPUS SAN PEDRO SULA
Julio, 2014
AUTORIZACIÓN
AUTORIZACIÓN DEL AUTOR(ES) PARA LA CONSULTA, LA REPRODUCCIÓN
PARCIAL O TOTAL, Y PUBLICACIÓN ELECTRÓNICA DEL TEXTO COMPLETO DE
TESIS DE GRADO.
Señores
CENTRO DE RECURSOS PARA EL APRENDIZAJE Y LA INVESTIGACION (CRAI)
San Pedro Sula
Estimados Señores:
La presentación del documento de tesis forma parte de los requerimientos y
procesos establecidos de graduación para alumnos de pregrado de UNITEC.
Nosotros, Joshua Odayr Welchez y Leonel Sánchez Duarte, de San Pedro Sula
autores del trabajo de grado titulado: Aplicación Móvil de Plataforma
Educativa Moodle® presentado y aprobado en el año 2014, como requisito
para optar al título de Profesional de Ingeniero En Sistemas Computacionales,
autorizo a:
Las Bibliotecas de los Centros de Recursos para el Aprendizaje y la
Investigación (CRAI) de la Universidad Tecnológica Centroamericana
(UNITEC), para que con fines académicos, pueda libremente registrar, copiar
y usar la información contenida en él, con fines educativos, investigativos o
sociales de la siguiente manera:
Los usuarios puedan consultar el contenido de este trabajo de grado en
la salas de estudio de la biblioteca y la página Web de la universidad.
Permita la consulta y la reproducción, a los usuarios interesados en el
contenido de este trabajo, para todos los usos que tengan finalidad
académica, ya sea en formato CD o digital desde Internet, Intranet,
etc., y en general para cualquier formato conocido o por conocer.
De conformidad con lo establecido en el artículo 19 de la Ley de Derechos de
Autor y de los Derechos Conexos; los cuales son irrenunciables,
imprescriptibles, inembargables e inalienables.
Es entendido que cualquier copia o reproducción del presente documento con
fines de lucro no está permitida sin previa autorización por escrito de parte
de los principales autores.
En fe de lo cual, se suscribe la presente acta en la ciudad de San Pedro Sula a
los 21 días del mes de Agosto de dos mil catorce
04 de Agosto del 2014
__________________________________
__________________________________
Joshua Odayr Welchez Leonel Sánchez
Duarte
20841008 20911176
I. HOJA DE FIRMAS
Los abajo firmantes damos fe, en nuestra posición de miembro de Terna,
Asesor y/o Jefe Académico y en el marco de nuestras responsabilidades
adquiridas, que el presente documento cumple con los lineamientos exigidos
por la Facultad de Ingeniería y los requerimientos académicos que la
Universidad dispone dentro de los procesos de graduación.
__________________________________________________________
Ing. Ivan Deras Asesor UNITEC
_________________________ ____________________________
_____________________________
Ing. Carlos Castro Ing. Carlos Gochez Ing.
Carlos Mejia
Miembro de Terna Miembro de Terna Miembro
de Terna
_______________________________ _______________________________
Ing. X o Arq. X Ing. X o Arq. X
Jefe Académico de X | UNITEC Decano de Facultad de Ingeniería
UNITEC
II. DEDICATORIA Y AGRADECIMIENTO
A Dios.
Por habernos permitido llegar hasta este punto y dado salud para lograr
nuestros objetivos, además de su infinita bondad y amor.
A nuestras familias.
Por habernos apoyado en todo momento, por sus consejos, sus valores, por la
motivación constante que nos han permitido ser unas personas de bien, pero
más que nada, por su amor.
A nuestros maestros.
Por permitirnos aprender, por su esmero en la enseñanza para con nosotros y
su guía en todo momento, al Ing. Iván Deras por brindarnos apoyo y palabras
de aliento cada vez que la necesitamos y a La Lic. Mirtha Coto por colaborar
con nosotros para terminar este trabajo.
III. RESUMEN
El presente documento se basa en la investigación realizada para llevar a
cabo una aplicación móvil nativa en la plataforma Android con el objetivo de
facilitar y hacer más eficiente la interacción entre maestro y alumno en la
vida universitaria diaria dentro de Unitec, utilizando el API que provee
nuestra plataforma Moodle personalizada.
Con la aplicación podemos realizar las tareas más frecuentes que alumno y
maestro utilizan en la plataforma Moodle, además de brindar nuevos
atributos y mejoras para maximizar el funcionamiento de las funciones de
dichas tareas, estos atributos corresponden a notificaciones de eventos
respecto a la clase y la mejora de comunicación dentro de la plataforma
entre maestros y alumnos o entre los alumnos mismos.
Para lograr que la aplicación pudiera contar con notificaciones elaboramos un
servicio para que funcione en el teléfono, dicho servicio monitorea cada vez
que el maestro asigne una tarea o suba un recurso, ya sea en la plataforma
web o en la aplicación móvil, la aplicación consume ese servicio y así logra
avisar al usuario que hay un evento que está ocurriendo en ese instante.
Para obtener la información necesaria para que la aplicación funcionase,
personalizamos nosotros mismos una plataforma Moodle y activamos el
atributo de servicio que tiene las funciones necesarias para ser consumidas
por la aplicación, dichas funciones únicamente retornan cadenas XML, así
que desarrollamos un algoritmo para parsear dichas cadenas, para obtener
el contenido de la clase contamos con un archivo de configuración del cual
un administrador se deberá encargar.
Dicho archivo contiene las secciones que la aplicación deberá buscar en el
objeto que se obtuvo del parseo del XML que devuelven las funciones, una
vez listo el archivo la aplicación lo consume y obtiene las categorías para el
contenido de la clase.
TABLA DE CONTENIDO
I. PLANTEAMIENTO DEL PROBLEMA..............................................................................................1
1.1 INTRODUCCIÓN......................................................................................................................1
1.2 ANTECEDENTES DEL PROBLEMA........................................................................................3
1.3 DEFINICIÓN DEL PROBLEMA.....................................................................................................3
1.3.1 ENUNCIADO DEL PROBLEMA...........................................................................................3
1.3.2 PLANTEAMIENTO DEL PROBLEMA..............................................................................3
1.3.3 PREGUNTAS DE INVESTIGACIÓN................................................................................4
1.4 OBJETIVOS DEL PROYECTO.......................................................................................................4
1.4.1. OBJETIVO GENERAL..........................................................................................................4
1.4.2. OBJETIVOS ESPECÍFICOS...................................................................................................4
1.4.3. HIPÓTESIS.........................................................................................................................5
1.4.4. JUSTIFICACIÓN..................................................................................................................5
II. MARCO TEÓRICO........................................................................................................................6
2.1 Plataforma Moodle..................................................................................................................6
2..2.1 Instalar Moodle.........................................................................................................6
2..3 ACERCA DEL MOODLE....................................................................................................7
2..4 NAVEGACION EN MOODLE.............................................................................................8
2..5 FILOSOFIA DE MOODLE.................................................................................................9
2..6 MOODLE COMO EJEMPLO DE SOFTWARE LIBRE..........................................................10
.................................................................................................................................................11
2..7 CARACTERÍSTICAS DEL MOODLE..................................................................................11
2..8 ACCESO PARA USUARIOS REGISTRADOS......................................................................14
2..9 BLOQUES......................................................................................................................15
2..10 PARTICIPANTES.........................................................................................................15
2..11 ACTIVIDADES............................................................................................................17
2..12 BUSCAR EN LOS FOROS.............................................................................................18
2..13 ADMINISTRACION.....................................................................................................19
2..14 USUARIOS EN LÍNEA.................................................................................................19
2..15 MIS RECURSOS O CATEGORÍAS.................................................................................20
2..16 NOVEDADES.............................................................................................................20
2..17 CALENDARIO.............................................................................................................22
2..18 GESTIONAR UN EVENTO...........................................................................................24
2..19 EVENTOS PRÓXIMOS................................................................................................24
2..20 MENSAJES.................................................................................................................25
2.3 SISTEMA OPERATIVO ANDROID.............................................................................................26
2.3.1 HISTORIA........................................................................................................................27
2.3.2. CARACTERÍSTICAS...........................................................................................................27
2.3.3 ARQUITECTURA DE ANDROID...................................................................................29
2.4 ECLIPSE FOUNDATION..............................................................................................32
2.5 JAVA................................................................................................................................36
2.6 JSON................................................................................................................................39
2.7 ¿QUÉ ES Y PARA QUE SIRVE JSON?......................................................................40
2.9 RESTFUL SERVICE......................................................................................................42
2.10 UBUNTU SERVER........................................................................................................44
2.11 AMAZON WEBSERVICE EC2....................................................................................45
2.11.1 CARACTERÍSTICAS DE AMAZON EC2...........................................................45
III. METODOLOGIA.....................................................................................................................47
3.1 CRONOLOGÍA DE TRABAJO.....................................................................................................47
3.2 MATERIALES..............................................................................................................58
3.2.1 DISPOSITIVO MÓVIL.................................................................................................58
3.2.2 INTERNET..................................................................................................................58
IV. Análisis de Proceso del Proyecto..........................................................................................58
V. CONCLUSIONES........................................................................................................................59
VI. RECOMENDACIONES............................................................................................................60
6.1 Seguridad...............................................................................................................................60
VII. BIBLIOGRAFÍA.......................................................................................................................61
Bibliografía.......................................................................................................................................61
VIII. ANEXOS................................................................................................................................62
8.1 Manual de Usuario.................................................................................................................62
1-Acceso.......................................................................................................................................63
.-Maestro:.....................................................................................................................................67
4- Ver tareas y recursos......................................................................................................69
Otras opciones de la barra de usuario...............................................................................74
8.2 DIAGRAMA DE CLASES............................................................................................................80
8.3 Glosario..................................................................................................................................81
Tabla De Imágenes
Ilustración 1 Estructura de Moodle......................................................................7
Ilustración 2 Descripción de los bloques de navegación y ajustes......................9
Ilustración 3 Conceptos Principales de Moodle.................................................10
Ilustración 4 Logo Open Source........................................................................11
Ilustración 5 Acceso General Moodle................................................................14
Ilustración 6 Imagen de Participantes Parte de inicio.......................................16
Ilustración 7 Imagen de Participantes parte Final.............................................16
Ilustración 8 Imagen Actividades......................................................................18
Ilustración 9 Búsqueda en Moodle....................................................................18
Ilustración 10 Usuario en Línea en Moodle........................................................19
Ilustración 11 Categorías de Moodle.................................................................20
Ilustración 12 Novedades y Actividades Recientes Moodle...............................21
Ilustración 13 Calendario de Moodle.................................................................23
Ilustración 14 Imagen de Sistema Operativo Android......................................26
Ilustración 15 Diagrama de Componentes del Sistema Operativo Android......31
Ilustración 16 Imagen de Eclipse......................................................................32
Ilustración 17 Imagen Restful Service...............................................................42
Ilustración 18 Imagen Semana 3.......................................................................47
Ilustración 19 Imagen Semana 7.......................................................................48
Ilustración 20 Imagen Semana 8.......................................................................49
Ilustración 21 Imagen Semana 9.......................................................................50
Ilustración 22 Imagen Semana 10....................................................................50
Ilustración 23 Imagen Semana 12....................................................................51
Ilustración 24 Imagen Semana 13.....................................................................52
Ilustración 25 Imagen Semana 20....................................................................53
Ilustración 26 CUADRO CRONOLOGICO.............................................................58
I. PLANTEAMIENTO DEL PROBLEMA
1.1 INTRODUCCIÓN
Siendo el objetivo general de nuestro proyecto, desarrollar una aplicación móvil
que pueda facilitar y hacer más eficiente la interacción entre maestro y alumno
en la vida universitaria diaria dentro de Unitec a través de la configuración de un
Moodle personalizado y la creación de un archivo de configuración por medio de
un administrador.
Se decidió investigar acerca de la plataforma Android y las librerías que esta
provee y el consumo del API del Moodle a través de servicios web, dentro del
contenido de este marco teórico se trataran estos temas, así como el
funcionamiento de los mismos y las diferentes opciones que se encontraron para
lograr el funcionamiento deseado de librerías y API’s.
Primero se investigó el uso del Moodle dentro de la plataforma web y su
configuración, una vez entendido este tópico se decidió tratar de entender como
consumir el API de la plataforma, y que tipo de atributos proveía para que esto
sucediera, una vez logrado esto se procedió a entender los valores que proveía
la plataforma y como interpretarlos ya que los valores que se obtienen del API
son cadenas XML, así que se tuvo que lograr entender la estructura de dichos
valores.
Una vez entendido lo anterior, se prosiguió a interactuar con la plataforma
Android, las librerías que se podrían utilizar, además de adquirir el conocimiento
necesario para utilizar el IDE con el que se decidió trabajar, se investigó como
poder crear una aplicación y así mismo como crear widgets.
Página|1
Una vez ya entendido el funcionamiento de la plataforma Android y la
plataforma Moodle se investigó la manera adecuada en la que entre ellas
podrían interactuar.
Así como hacer o enviar peticiones dentro de una plataforma móvil a una web y
viceversa, listo esto se procedió a la investigación para la creación de un servicio
móvil para lograr que el atributo de notificaciones de nuestra aplicación
funcionase, se tomaron en cuenta varias posibles soluciones al problema y a
través de la recopilación de datos llevo a la conclusión de utilizar a la que más
se adaptaba a las necesidades y requerimientos del software.
Luego se procedió a investigar la utilización de algún modelo o servicio que
pudiera proveer facilidad para la implementación del chat en la plataforma dado
que Moodle no provee ese atributo, nosotros tuvimos que desarrollarlo, la
plataforma educativa solo provee el uso de mensajes generales, así que con la
respuesta a nuestro problema adaptamos ese atributo para que esta función
pudiera funcionar.
Página|2
1.2 ANTECEDENTES DEL PROBLEMA
La comunicación entre el maestro y alumno en la vida universitaria diaria no es
efectiva dando a lugar a que se presenten situaciones no deseadas que afectan
el rendimiento del alumno.
1.3 DEFINICIÓN DEL PROBLEMA
1.3.1 ENUNCIADO DEL PROBLEMA
Inexistencia de medios o recursos para plataformas móviles
dentro de las comunidades universitarias que faciliten el acceso a
los alumnos y maestros a la plataforma estudiantil Moodle.
1.3.2 PLANTEAMIENTO DEL PROBLEMA
- Investigar la configuración de la plataforma web Moodle.
- Investigar la manera de consumir del API que provee la
plataforma Moodle.
- Investigar el funcionamiento y librerías de la plataforma Android.
- Investigar la manera de elaborar servicios móviles.
- Lograr adaptar la plataforma Moodle con una aplicación móvil en
Android.
1.3.3 PREGUNTAS DE INVESTIGACIÓN
- ¿Es posible desarrollar una aplicación móvil sencilla y eficaz
para la plataforma educativa Moodle?
Página|3
- ¿Es posible que la aplicación logre una comunicación efectiva
entre maestros y alumnos para mejorar el funcionamiento
individual de cada uno?
- ¿Es posible que la aplicación pueda conectarse y servir para
cualquier plataforma Moodle?
1.4 OBJETIVOS DEL PROYECTO
1.4.1. OBJETIVO GENERAL
Permitir la gestión e intercambio de datos mediante el desarrollo
de una aplicación móvil nativa en Android bajo la plataforma
educativa Moodle personalizada para facilitar la interacción entre
los roles más comunes entre los catedráticos y alumnado.
1.4.2. OBJETIVOS ESPECÍFICOS
Posibilitar y crear una configuración dentro del marco tecnológico
en el cual se identifiquen varias funciones y facilite el intercambio
académico.
Aprovechar el auge de la creación y optimización de sistemas
operativos para celulares inteligentes para crear una aplicación
académica eficiente.
Crear algoritmos que emulen funciones eficientes que sirvan de
complemento para el servicio que Moodle presta a desarrolladores
para el diseño de nuevas aplicaciones.
1.4.3. HIPÓTESIS
Página|4
Con el posicionamiento e incremento del uso de una aplicación
para la plataforma Moodle for Android dentro del campus
universitario, la plataforma Moodle tendra mayor rentabilidad por
ser una aplicación gratuita y de fácil acceso siendo la forma más
eficaz para ingresar a la plataforma Moodle de Unitec, tomando en
cuenta los servicios básicos de información, transmisión e
intercambio de datos.
1.4.4. JUSTIFICACIÓN
La implementación de una aplicación móvil como extensión de una
plataforma educativa es gratis y al alcance de cualquier persona
que tenga un celular móvil que cumpla los requisitos de sistema
operativo, teniendo al alcance la posibilidad de interactuar sin
necesidad de una computadora con la clase virtual hace más fácil
el uso de las plataformas educativas ya sea por maestros o
alumnos.
II. MARCO TEÓRICO
2.1 PLATAFORMA MOODLE
Es una aplicación web de tipo Ambiente Educativo Virtual, un sistema de gestión
de cursos, de distribución libre, que ayuda a los educadores a crear
comunidades de aprendizaje en línea. La palabra Moodle significa Modular
Object-Oriented Dynamic Learning Environment (Entorno de Aprendizaje
Dinámico Orientado a Objetos y Modular). La difusión de este plataforma entre
Página|5
institutos y universidades de todo el mundo va en aumento, estimándose en
más de dos millones los usuarios a escala mundial.
2.2.1 Instalar Moodle
Instalar la plataforma virtual es preciso contar con un servidor de
alojamiento "web" (puede ser local o en "Internet") que cuente con
el servidor Apache y un sistema de bases de datos como MySQL.
Sobre el servidor se instala (puede hacerse a distancia) la
plataforma Moodle (se descarga del sitio moodle.org y su última
versión estable es la 1.5.4).
Finalmente, la gestión de la plataforma se hace desde un entorno
"web", con un sistema visual y de ayuda bastante completa y en
castellano. Los contenidos, los accesos de los alumnos, las tareas
de éstos, las calificaciones que editan los profesores y todo tipo de
recursos se almacenan en la base de datos.
Los profesores pueden editar los contenidos y estructura del curso
en todo momento, así como gestionar un sistema de avisos y
agenda con acontecimientos y convocatorias. Los ejercicios y
actividades pueden ser calificados, puesto que cada alumno, con
su nombre de usuario y su contraseña, puede subir su ejercicio en
el formato que se la haya indicado y en el plazo que haya
establecido el profesor.
Página|6
2.3 ACERCA DEL MOODLE
Moodle fue diseñado por Martin Dougiamas de Perth, Australia
Occidental, quien basó su diseño en las ideas del constructivismo
en pedagogía, que afirman que el conocimiento se construye en la
mente del estudiante en lugar de ser transmitido sin cambios a
partir de libros o enseñanzas y en el aprendizaje colaborativo. Un
profesor que opera desde este punto de vista crea un ambiente
centrado en el estudiante que le ayuda a construir ese
conocimiento con base en sus habilidades y conocimientos propios
en lugar de simplemente publicar y transmitir la información que
se considera que los estudiantes deben conocer.
Palabra Moodle era al principio un acrónimo de Modular Object-
Oriented Dynamic Learning Environment (Entorno de Aprendizaje
Dinámico Orientado a Objetos y Modular), lo que resulta
fundamentalmente útil para programadores y teóricos de la
educación. También es un verbo que describe el proceso de
deambular perezosamente a través de algo, y hacer las cosas
Página|7
Ilustración 1 Estructura de Moodle.
cuando se te ocurre hacerlas, una placentera chapuza que a
menudo te lleva a la visión y la creatividad.
Las dos acepciones se aplican a la manera en que se desarrolló
Moodle y a la manera en que un estudiante o profesor podría
aproximarse al estudio o enseñanza de un curso en línea. Todo el
que usa Moodle es un Moodle.
2.4 NAVEGACION EN MOODLE
La navegación entre los cursos y las secciones principales de
Moodle se realiza a Través del bloque “Navegación”, situado
normalmente en la primera o segunda Posición de la columna
izquierda. Por ejemplo, desde este bloque se puede pasar
Fácilmente de un curso a otro. Además, para el profesor el bloque
“Ajustes”, situado También en la columna izquierda, tiene una
función fundamental a la hora de Gestionar los Recursos y
Actividades de un curso, ya que al acceder a alguno de ellos
Recoge todas las opciones para configurarlo y administrarlo.
Además otro elemento Que facilita el movimiento dentro de
Moodle es la Barra de navegación.
Página|8
Ilustración 2 Descripción de los bloques de navegación y ajustes
2.5 FILOSOFIA DE MOODLE
El diseño y el desarrollo de Moodle se basan en una filosofía del
aprendizaje, una forma de pensar que a menudo se denomina
"pedagogía constructivista social". “Vamos a intentar explicar con
palabras sencillas qué significa esa frase desarrollando los cuatro
conceptos principales subyacentes, que son: Constructivismo,
Construccionismo, Constructivismo social, Conectados y
Separados”. (Gallego, 2014)
Página|9
Ilustración 3 Conceptos Principales de Moodle
2.6 MOODLE COMO EJEMPLO DE SOFTWARE LIBRE
Moodle se distribuye gratuitamente como Software Libre (Open
Source), bajo Licencia pública GNU.
Esto significa que Moodle tiene derechos de autor (copyright), pero
que tenemos algunas libertades: podemos copiar, usar y modificar
Moodle siempre que aceptemos proporcionar el código fuente a
otros, no modificar la licencia original y los derechos de autor, y
aplicar esta misma licencia a cualquier trabajo derivado de él.
Es fácil de instalar en casi cualquier plataforma con un servidor
Web que soporte PHP. Sólo requiere que exista una base de datos
(y se puede compartir). Con su completa abstracción de bases de
datos, soporta las principales marcas de bases de datos (en
especial MySQL).
Finalmente, es importante destacar que, al ser Moodle una
aplicación Web, el usuario sólo necesita para acceder al sistema un
ordenador con un navegador Web instalado (Mozilla Firefox,
Internet Explorer, Safari o cualquier otro) y una conexión a
Página|10
Internet. Por supuesto, también se necesita conocer la dirección
Web (URL) del servidor donde Moodle se encuentre alojado y
disponer de una cuenta de usuario registrado en el sistema
Ilustración 4 Logo Open Source
2.7 CARACTERÍSTICAS DEL MOODLE
A continuación se detallaran de forma resumida las principales características
que presenta Moodle en los tres niveles de relevancia:
- A NIVEL GENERAL:
- Interoperabilidad: Debido a que el sistema Moodle se distribuye
bajo la licencia GNU, propicia el intercambio de información
gracias a la utilización de los “estándares abiertos de la
industria para implementaciones web” (SOAP, XML…) Al usar un
lenguaje web popular como PHP y MySQL como base de datos,
es posible ejecutarlo en los diversos entornos para los cuales
están disponibles estás herramientas tales como Windows,
Linux, Mac, etc.
- Escalable: Se adapta a las necesidades que aparecen en el
transcurso del tiempo. Tanto en organizaciones pequeñas como
grandes se pueden utilizar la arquitectura web que presenta
Moodle.
Página|11
- Personalizable. Moodle se puede modificar de acuerdo a los
requerimientos específicos de una institución o empresa. Por
defecto incluye un panel de configuración desde el cual se
pueden activar o cambiar muchas de sus funcionalidades.
- Económico. En comparación a otros sistemas propietarios
Moodle es gratuito, su uso no implica el pago de licencias u otro
mecanismo de pago.
- Seguro. Implementa mecanismos de seguridad a lo largo de
toda su interfaz, tanto en los elementos de aprendizaje como
evaluación.
- A NIVEL PEDAGÓGICO:
- Pedagógicamente flexible: Aunque Moodle promueve una
pedagogía constructivista social (colaboración, actividades,
reflexión crítica, etc.), es factible usarlo con otros modelos
pedagógicos.
- Permite realizar un seguimiento y monitorización sobre el
usuario.
- A NIVEL FUNCIONAL:
- Facilidad de uso.
- Permite gestionar los perfiles de usuario. Se puede almacenar
una gran cantidad de información útil sobre el alumno o
profesor, no solo los que aparecen por defecto. Esta
característica es muy útil para realizar estadísticas a varios
niveles.
- Facilidad de administración. Cuenta con un panel de control
central desde el cual se puede monitorizar el correcto
funcionamiento y configuración del sistema.
Página|12
- Permite examinar en línea, a través de sus múltiples
herramientas de evaluación: cuestionarios, actividades, etc...
- Permite la presentación de cualquier contenido digital. Se puede
publicar todo tipo de contenido multimedia como texto, imagen,
audio y video para su uso dentro de Moodle como material
didáctico.
- Permite la gestión de tareas. Los profesores pueden asignar
tareas o trabajos prácticos de todo tipo, gestionar el horario y
fecha su recepción, evaluarlo y transmitir al alumno la
retroalimentación respectiva. Los alumnos pueden verificar en
línea su calificación y las notas o comentarios sobre su trabajo.
- Permite la implementación de aulas virtuales. Mediante el uso
de herramientas de comunicación se pueden realizar sesiones o
clases virtuales, en las cuales el profesor podría plantear y
resolver interrogantes, mientras que los alumnos aprovechan la
dinámica para interactuar tanto con el profesor así como con
otros alumnos.
- Permite la implementación de foros de debate o consulta. Esta
característica se puede usar para promover la participación del
alumnado en colectivo hacia el debate y reflexión. Así como
colaboración alumno a alumno hacia la resolución de
interrogantes. El profesor podría evaluar la dinámica grupal y
calificar el desarrollo de cada alumno.
- Permite la importación de contenidos de diversos formatos. Se
puede insertar dentro de Moodle, contenido educativo
proveniente de otras plataformas bajo el uso del estándar
SCORM, IMS, etc.
- Permite la inclusión de nuevas funcionalidades. La arquitectura
del sistema permite incluir de forma posterior funcionalidades o
características nuevas, permitiendo su actualización a nuevas
necesidades o requerimientos.
Página|13
2.8 ACCESO PARA USUARIOS REGISTRADOS
ACCESO GENERAL
Para comenzar a crear o editar un curso, o simplemente visualizar algún
recurso o actividad, los usuarios registrados necesitan acceder al sitio Moodle
con un nombre de usuario y contraseña con condición de administrador o
profesor con derecho de edición en su curso, o bien ya está inscrito; para ello
debemos seguir las siguientes operaciones:
1. Accedemos a Internet de la manera habitual, utilizando uno de los
navegadores habituales, Moodle admite la mayoría de los navegadores de
Internet.
2. Tecleamos la dirección de Internet del sitio Moodle. En este caso
portal.Unitec.edu
3. En la parte superior derecha de la ventana de Moodle tienes el botón
Entrar para acceder. Haz clic sobre él. Teclea la caja de texto del Nombre
de usuario, después rellena la caja de la Contraseña facilitada por el
administrador o servicio técnico de la plataforma. Para acceder necesitas
introducir el nombre de usuario y la contraseña. Estos datos se han
asignado al darte de alta y habitualmente se entregan a través de un
correo electrónico.
Ilustración 5 Acceso General Moodle
Página|14
2.9 BLOQUES
El aspecto del entorno que envuelve un curso en Moodle, puede
variar en función de las necesidades. Esta personalización se
consigue mediante el uso de los bloques. Los bloques se ubican en
las columnas laterales y tienen funcionalidades muy diversas:
informar, controlar, gestionar, etc. Algunos trabajan de forma
independiente y otros colaboran entre sí. A continuación se
describen los bloques establecidos por defecto en Moodle.
2.10 PARTICIPANTES
El bloque Personas contiene el enlace a Participantes que es un
listado de la totalidad de participantes del curso. Por defecto
aparecen ordenados por el último acceso al curso pero se pueden
cambiar los criterios de ordenación haciendo clic en
Nombre/Apellidos, Ciudad, País o Última entrada. La clase de
ordenación, ascendente o descendente, la indica una pequeña
flecha; si repetimos la acción sobre el mismo elemento, cambia la
clase de ordenación También, podemos ordenarlos
alfabéticamente por la letra inicial del nombre o apellido.
Si el número de estudiantes es muy grande, Moodle nos los
presenta en varias páginas (típicamente de 20 estudiantes).
Podemos ver los siguientes pulsando sobre la página deseada o
sobre la siguiente. Existe la posibilidad de visionar todos los
estudiantes en la misma página haciendo clic en el enlace que
aparece al pie de la página con el nombre Mostrar La lista de
participantes se puede mostrar con mayor detalle seleccionado la
opción Más detalle de la lista desplegable Lista de usuarios.
Página|15
Ilustración 6 Imagen de Participantes Parte de inicio
Ilustración 7 Imagen de Participantes parte Final.
2.11 ACTIVIDADES
El bloque de Actividades lista todas las categorías de actividades
disponibles en el curso (foros, consultas, tareas, etc.). La primera
vez que se entra en un curso nuevo sólo se muestra los Foros,
puesto que la plataforma automáticamente genera el foro de
Página|16
novedades. Los otros tipos de actividades se irán mostrando tal y
como vaya añadiendo al curso.
También podemos navegar por los tipos actividades de desde este
bloque. Al hacer clic sobre alguna de ellas aparecerán todas las
actividades visibles del curso de ese tipo, independientemente del
tema en las que estén ubicadas.
En todas las actividades nos muestra en la primera columna el
tema o semana en la que se encuentra cada actividad; las otras
columnas del listado dependen de cada actividad. ACTIVIDADES El
bloque de Actividades lista todas las categorías de actividades
disponibles en el curso (foros, consultas, tareas, etc.).
La primera vez que se entra en un curso nuevo sólo se muestra los
Foros, puesto que la plataforma automáticamente genera el foro
de novedades. Los otros tipos de actividades se irán mostrando tal
y como vaya añadiendo al curso. También podemos navegar por
los tipos actividades de desde este bloque. Al hacer clic sobre
alguna de ellas aparecerán todas las actividades visibles del curso
de ese tipo, independientemente del tema en las que estén
ubicadas. En todas las actividades nos muestra en la primera
columna el tema o semana en la que se encuentra cada actividad;
las otras columnas del listado dependen de cada actividad.
Ilustración 8 Imagen Actividades
Página|17
2.12 BUSCAR EN LOS FOROS
El bloque Buscar en los foros permite buscar entre los mensajes
publicados en todos los foros de un curso la información tecleada
en el cuadro de texto del bloque. Las búsquedas emplean la
sintaxis típica en buscadores:
- Búsqueda simple de una o más palabras: Se escriben separadas por
espacios.
- Búsqueda exacta: Se encierra la palabra o frase entre comillas
dobles.
- Forzar coincidencia exacta: Colocar el signo “+” delante de la
palabra.
- Excluir palabras de la búsqueda: Colocar el signo “-“delante de las
palabras
Ilustración 9 Búsqueda en Moodle
2.13 ADMINISTRACION
Mediante este bloque podemos acceder a diferentes herramientas
administrativas en función del perfil que tengamos asignado.
Desde estas opciones el alumno puede, por ejemplo, examinar sus
calificaciones o cambiar su contraseña. Por otra parte, el profesor
puede configurar el curso, consultar informes, etc… Cuanto mayor
sea el nivel de privilegios, más opciones estarán habilitadas. En
Página|18
unidades posteriores trataremos con más detalle los diferentes
apartados de este bloque.
2.14 USUARIOS EN LÍNEA
El bloque de Usuarios en línea muestra los usuarios matriculados
(no muestra los invitados) del curso actual y presentes en un
período de tiempo fijado por el administrador del sitio (por defecto
son los últimos 5 minutos).
Si mantenemos el cursor sobre el nombre de alguien, nos indicara
cuánto tiempo hace esa persona ha realizado un clic en el curso. Si
hacemos clic sobre el icono del sobre al lado del nombre de
alguien, podremos enviar un mensaje privado a esa persona,
utilizando el sistema de mensajería interna.
Ilustración 10 Usuario en Línea en Moodle
2.15 MIS RECURSOS O CATEGORÍAS
El bloque Categorías muestra un listado de todos los cursos en los
que estamos matriculados o somos profesores, y puede utilizarse
para moverse rápidamente entre esos cursos. Debajo de esta lista,
aparece el vínculo Todos los cursos…, que lleva a una página
donde se muestran todos los cursos del sitio agrupados por
Página|19
categorías (esto no quiere decir que se pueda entrar en ellos). Los
administradores ven en este bloque todas las categorías de cursos
disponibles y un enlace para buscar un curso concreto.
Ilustración 11 Categorías de Moodle
2.16 NOVEDADES
El bloque Novedades presenta las cabeceras de las últimas noticias
o mensajes publicados por el profesor en el Foro Novedades.
Siguiendo el hipervínculo más… se accede al foro donde está
publicada la noticia y se puede ver el mensaje completo.
En principio, todos los estudiantes de un curso están suscritos a
este foro, de forma que también recibirán estos mensajes en su
correo particular. La función de este bloque es mantener informado
al usuario de las noticias publicadas en el Foro de Novedades, ya
que es el sitio que suele utilizar el profesorado para dejar todas
aquellas noticias o instrucciones importantes para el desarrollo del
curso.
Por ejemplo, recordatorios sobre entrega de determinados
trabajos, la convocatoria de tutorías ,el comienzo de un foro o
Página|20
debate especial, la convocatoria de exámenes o la publicación de
calificaciones, etc…
Ilustración 12 Novedades y Actividades Recientes Moodle
2.17 CALENDARIO
Sirve para mantener una visión organizada de las fechas y plazos
importantes para el seguimiento de los cursos en los que se
participa: exámenes, entrega de trabajos, tutorías, etc...
Existen cuatro categorías de eventos temporales que podemos
controlar con el calendario y cada uno de ellas está identificado
con un color de fondo en el bloque:
- Eventos globales. Para los usuarios de toda la plataforma tales
como fechas de inicio de curso, suspensión del servicio por
Página|21
mantenimiento, etc. Sólo los administradores del sistema
pueden publicar este tipo de eventos.
- Eventos de curso. Para los estudiantes de un curso tales como
fechas de exámenes, entrega de tareas, tutoría,… Estos eventos
serán visibles por todos los participantes del curso y sólo
pueden ser publicados por el profesorado.
- Eventos de grupo. Similares a los eventos de curso, pero en este
caso afectan sólo a un determinado grupo creado dentro de un
curso. Sólo los profesores pueden publicar este tipo de eventos.
- Eventos de usuario. Son fechas importantes para cada usuario
particular. Estos eventos son visibles en el calendario del
usuario que los genera, pero no en el de los demás usuarios. Los
crea el propio usuario a modo de agenda.
- Todas las actividades con fecha límite serán eventos del
calendario automáticamente. Cuando se desplaza el cursor
sobre el calendario en un día marcado por un evento, se
despliegan pequeñas ventanas informativas. Haciendo clic sobre
los nombres de los eventos en el pie del bloque de calendario se
puede activar o desactivar la información de cada evento.
- En la parte superior de este módulo encontramos una pequeña
barra de navegación que permite mostrar el mes anterior o el
siguiente. Se pueden ocultar o mostrar varias categorías de
eventos haciendo clic sobre el enlace del evento
correspondiente situado debajo del calendario. De esta forma,
se puede facilitar la lectura del calendario, especialmente si éste
contiene muchos eventos.
- El nombre del mes actual es un hipervínculo que nos conduce a
la agenda de dicho mes. Esta agenda muestra una vista del mes
seleccionado con información detallada sobre los diferentes
eventos. A la derecha, muestra una vista trimestral, con los
meses anterior y posterior al seleccionado, lo que permite
controlar mejor las fechas de inicio y fin de mes.
Página|22
Ilustración 13 Calendario de Moodle
2.18 GESTIONAR UN EVENTO
Se puede agregar un nuevo evento desde cualquiera de las
opciones anteriormente mencionadas. Tras elegir el tipo de
evento, se abrirá el Editor de eventos, que es un formulario con
los siguientes campos:
- Nombre: el contenido de este campo será el que aparezca
sobre el calendario cuando pasemos el puntero del ratón
por encima de una fecha marcada y en la vista mensual.
- Descripción: es el texto que aparecerá en la vista diaria
del calendario y puede incluir además de texto, imágenes,
tablas, etc.
- Fecha y hora: necesarias para fijar el evento en el
calendario.
Página|23
- Duración: es posible indicar la duración del evento.
Incluso se puede especificar otra fecha posterior, y el
calendario marcará todo el intervalo (incluso varios días).
- Repetición: se puede especificar si un evento se debe
repetir semanalmente. Para ello, sólo hay que indicar
durante cuantas semanas ha de marcarse el evento.
2.19 EVENTOS PRÓXIMOS
El bloque Eventos próximos muestra una lista de los
acontecimientos próximos, ya sea un evento global, de curso o
de usuario, en el calendario, con enlaces al contenido del
acontecimiento señalado. El rango de días a incluir en la lista lo
determina el administrador del sitio.
Ya hemos visto que los eventos se pueden programar en el
calendario y que todas las actividades con fecha límite generan
un evento automáticamente en el calendario. Así pues, este
bloque está directamente relacionado con el calendario y
subordinado a él.
Este bloque puede contener varios enlaces que llevan a la
propia actividad que genera el evento, a la Vista de Día del
calendario, a la Vista de Eventos próximos y para introducir un
nuevo evento. La configuración de lo que Moodle debe
considerar un evento próximo se realiza en la página de
Preferencias del módulo de Calendario. Al hacer clic en una
fecha, se va a la vista para ese día del calendario. Si el título del
evento es un enlace, al hacer clic sobre él, nos llevará a ese
evento.
2.20 MENSAJES
El bloque Mensajes constituye un sistema de mensajería interna
de sistema que permite la comunicación directa entre todos los
usuarios del sitio sin necesidad de usar el correo electrónico.
Página|24
Profundizaremos cuando tratemos los elementos de
comunicación.
2.3 SISTEMA OPERATIVO ANDROID
Ilustración 14 Imagen de Sistema Operativo Android
Esta plataforma permite el desarrollo de aplicaciones por terceros
(personas ajenas a Google), para lo cual, los desarrolladores deben de
escribir código gestionado en el lenguaje de programación Java y
controlar los dispositivos por medio de bibliotecas desarrolladas o
adaptadas por Google, es decir, escribir programas en C u otros
lenguajes, “utilizando o no las bibliotecas de Google (compilándolas a
código nativo de ARM). La mayoría del código fuente de Android ha
Página|25
sido publicado bajo la licencia de software Apache, una licencia de
software libre y código fuente abierto”. (Hernandez, 2011)
2.3.1 HISTORIA.
Fue desarrollado por Android inc., empresa comprada por
Google en 2005. Inicialmente el sistema se desarrolló
exclusivamente por Google pero más tarde pasó a formar parte
de la Open Handset Alliance, la cual está liderada por Google.
Una de las ventajas que contiene el SO es que permite que
personas ajenas a Google desarrollen aplicaciones, como es mi
propio caso, así consiguen que las aplicaciones basadas en el
sistema sean mucho mayores que las de los sistemas cerrados,
y esto repercute en la venta de terminales con Android SO.
El primer teléfono que salió al mercado con este dispositivo fue
el HTC G1 o Dream lanzado originalmente en EEUU a finales de
2008, venía con la versión Android 1.0 instalada y rápidamente
se convirtió en un éxito de ventas, actualmente la versión 2.3
poco tiene que ver ya con el anticuado sistema 1.0
2.3.2. CARACTERÍSTICAS.
Las características más relevantes son:
- Diseño de dispositivo, Android permite la utilización de
casi cualquier resolución móvil disponible hasta día de
hoy lo que hace el sistema adaptable desde pantallas
de 2,5” hasta tabletas de 10” Además permite el uso
de librerías de gráficos en 2D y 3D.
- Almacenamiento, se realiza mediante SQLite como ya
he mencionado anteriormente.
- Conectividad Soporte para estas redes de conectividad
inalámbrica: GSM/EDGE, IDEN, CDMA, EV-DO, UMTS,
Bluetooth, Wi-Fi, LTE, y WiMAX.
Página|26
- Mensajería, tanto las formas tradicionales de
mensajería en España como son SMS y MMS como los
correos electrónicos con sistema push son bien
recibidos en Android.
- Navegador web, basado en el motor WebKit, usado por
ejemplo en Chrome o Safari y mediante el motor de
JavaScript V8 el navegador nativo de Android es uno
de los mejores a nivel de SO móviles.
- Soporte de Java, realmente Android no dispone de una
máquina virtual de java como tal, debido a que los
dispositivos móviles son de escasos recursos así que
se apoya en la máquina virtual de Dalvik para ejecutar
el código java.
- Soporte multimedia, Android soporta la mayoría de los
formatos multimedia más relevantes de hoy en día, en
concreto: WebM, H.263, H.264 (en 3GP o MP4), MPEG-
4 SP, AMR, AMR-WB (en un contenedor 3GP), AAC, HE-
AAC (en contenedores MP4 o 3GP), MP3, MIDI, Ogg
Vorbis, WAV, JPEG, PNG, GIF, BMP.61
- Soporte para streaming, El soporte para streaming de
descarga en HTML se hace de forma nativa, pero el
soporte para adobe flash se hace mediante una
aplicación que proporciona Adobe, aunque lo cierto es
que son los dispositivos actuales los que está
empezando a ejecutar aplicaciones o visualizaciones
en Adobe Flash, los terminales con una año de
antigüedad no lo soportan.
- Market, Dispone de un mercado de aplicaciones
(Android Market) permitiendo de este modo descargar
e instalar aplicaciones sin necesidad de un PC.
Actualmente este mercado sobrepasa las 100.000
aplicaciones y sigue aumentando rápidamente.
Página|27
- Multi-táctil, se incluyen las funciones multitáctiles de
forma nativa para todos los dispositivos Android que
dispongan de una pantalla con esta capacidad.
Multitarea, para todas las aplicaciones y desde su
primera versión.
2.3.3 ARQUITECTURA DE ANDROID
Los componentes del sistema operativo de Android, cada
sección se describe en detalle a continuación:
Aplicaciones: Las aplicaciones base incluyen un cliente de email,
programa de SMS, calendario, mapas, navegador, contactos, y otros.
Todas las aplicaciones son escritas en el lenguaje de programación
Java.
Framework de aplicaciones: Los desarrolladores tienen acceso
completo a los mismos APIs del framework usados por las aplicaciones
base. La arquitectura está diseñada para simplificar la reutilización de
componentes; cualquier aplicación puede publicar sus capacidades y
cualquier otra aplicación puede hacer luego uso de esas capacidades
(sujeto a reglas de seguridad del framework). Éste mismo mecanismo
permite que los componentes sean reemplazados por el usuario. Una
capa de servicios disponibles para las aplicaciones incluye:
- Un completo y extensible conjunto de vistas que pueden ser
utilizadas para desarrollar una aplicación: listas, grillas, cajas
de texto, botones e incluso un web browser.
- Proveedores de contenidos que permiten el acceso a datos
provenientes de otras aplicaciones (cómo Contactos), o a
compartir sus propios datos.
Página|28
- Un administrador de recursos, que provee acceso a recursos
como cadenas, gráficos, y archivos.
- Un administrador de notificaciones que permite a todas las
aplicaciones mostrar alertas personalizables en la barra de
estatus.
- Un administrador de actividades que maneja el ciclo de vida
de las aplicaciones y provee un comportamiento común en la
navegación.
Librerías: Android incluye un conjunto de librerías C/C++ usadas
por varios componentes del sistema Android. Estas capacidades se
exponen a los desarrolladores a través del framework de
aplicaciones de Android. Algunas son: System C library
(implementación librería C standard), librerías de medios, librerías
de gráficos, 3d, SQLite, entre otras.
Runtime de Android: Android incluye un conjunto de librerías base
que proveen la mayor parte de las funcionalidades disponibles en
las librerías base del lenguaje de programación Java. Cada
aplicación Android corre su propio proceso, con su propia instancia
de la máquina virtual Dalvik. Dalkiv ha sido escrito de forma que un
dispositivo puede correr en múltiples máquinas virtuales de forma
eficiente. Dalkiv ejecuta archivos en el formato Dalvik Executable
(.dex), el cual está optimizado para memoria mínima. La Máquina
Virtual está basada en registros, y corre clases compiladas por el
compilador de Java que han sido transformadas al formato.dex por
la herramienta incluida "dx".
Núcleo - Linux: Android depende de un Linux versión 2.6 para los
servicios base del sistema como seguridad, gestión de memoria,
gestión de procesos, stack de red, y modelo de drivers. El núcleo
también actúa como una capa de abstracción entre el hardware y el
Página|29
resto del stack de software.
Ilustración 15 Diagrama de Componentes del Sistema Operativo
Android}
Página|30
2.4 ECLIPSE FOUNDATION
Ilustración 16 Imagen de Eclipse
Eclipse es una plataforma de desarrollo open source basada en
Java. Se comporta como una aplicación nativa. Está programada
en SWT y Jface (juego de herramientas construida sobre SWT),
que emula los gráficos nativos de cada sistema operativo. En los
proyectos de Java puede usarse AWT y Swing salvo cuando se
desarrolle un plugin para Eclipse.
Esto lo transforma en una plataforma ligera para componentes
de software. La interfaz de usuario de Eclipse también tiene una
capa GUI intermedia llamada JFace, la cual simplifica la
construcción de aplicaciones basada en SWT. En cuanto a las
aplicaciones clientes, eclipse provee frameworks muy extensos
para el desarrollo de aplicaciones gráficas, definición y
manipulación de modelos de software, aplicaciones web, etc.
Página|31
Por ejemplo: GEF es un plugin de eclipse para el desarrollo de
editores visuales que pueden ir desde procesadores de texto,
hasta editores de diagramas UML, etc. Núcleo: se encarga de
determinar cuáles son los plugins disponibles en el directorio de
plugins . Cada plugin tiene un fichero XML que lista los
elementos y la extensión que necesita de otros plugins . Como
puede haber muchos plugins, solo se cargan los necesarios en el
momento de ser utilizados con el objeto de minimizar los
recursos y el tiempo de arranque de Eclipse.
Entorno de trabajo: se encarga de los recursos del usuario,
organizados en uno o más proyectos. Cada proyecto
corresponde a un directorio en el directorio de trabajo de
Eclipse, y contienen archivos y carpetas.
Utilizamos como IDE Eclipse por legibilidad y previo
conocimiento además de compatibilidad con el SDK de Android,
aunque también se pudieron haber usado NetBeans ó InteliJidea.
2.4.1 CREACIÓN DE UN PROYECTO
Eclipse permite organizar los ficheros en forma de proyecto.
Para crear un proyecto Java procederemos del siguiente modo:
Seleccionando en el menú File − New −Project o pulsando con el
botón derecho del ratón sobre la vista Navigator en la
perspectiva Resource y seleccionando New − Project.
1. Aparece una ventana en la que se puede seleccionar el tipo de
proyecto. En este caso se pulsa sobre Java en la parte izquierda y
Java Project en la derecha. Pulsar sobre el botón Next.
2. A continuación se piden los datos sobre el proyecto (nombre y ruta
donde se almacenarán los ficheros asociados al proyecto). Una vez
introducidos se pulsa sobre Finish.
Página|32
3. Eclipse abre automáticamente la perspectiva Java cuando se crea
un proyecto Java. Se crea el directorio especificado con dos ficheros
.Project y .classpath que contienen información sobre el proyecto.
La vista Navigator de la perspectiva Resource y la vista Package
Explorer de la perspectiva “Java contienen un directorio con el
nombre del proyecto. Como se comentó anteriormente se puede
pasar de una perspectiva a otra pulsando sobre los botones de la
barra vertical izquierda”. (Gutierrez, 2004)
4. Hay una perspectiva más asociada con Java, se puede abrir del
siguiente modo: Window −Open perspective − Java browsing . En
esta perspectiva aparecen views correspondientes al proyecto, a
paquetes, a clases e interfaces y a los miembros de estas.
2.4.2 PROGRAMAR CON ECLIPSE
Cuando se crea una nueva clase se puede ver, en la ventana Editor,
que algunas palabras están coloreadas de forma diferente. Este
marcado de palabras es debido a que los Editores Java que
implementa el plugin JDT, incluyen capacidad para realizar syntax
highlighting (o reconocimiento sintáctico de palabras reservadas del
lenguaje). De esta forma, las palabras reservadas del lenguaje
aparecerán escritas en negrita y en color Burdeos, los comentarios en
verde y los comentarios de documentación en azul.
Aparte de identificar las palabras reservadas del lenguaje, JDT puede
detectar, y marcar sobre el código de un programa, los lugares donde
se pueden producir errores de compilación. Esta característica
funciona de forma muy parecida a los correctores ortográficos que
tienen los procesadores de textos Cuando Eclipse detecta un error de
compilación, se marcará la sentencia errónea, subrayándola con una
línea ondulada roja (o amarilla, si en lugar de un error se trata de un
warning). Si el programador posiciona el puntero del ratón sobre la
Página|33
instrucción que produjo el fallo, se mostrará una breve explicación de
por qué dicha instrucción se ha marcado como errónea.
Cada línea de código que contenga un error (o un warning), será también marcada
con un icono de error (o warning) que aparecerá en la barra de desplazamiento
izquierda del editor. Si el programador pulsa una vez sobre dicha marca (se
desplegará un menú pop-up mediante el cual, Eclipse mostrará posibles soluciones
para los errores detectados. Si se acepta alguna de las sugerencias del menú pop-
up, Eclipse se encargará de llevar a cabo dicha solución, de forma completamente
automática.
Un entorno de desarrollo no puede considerarse como útil, en la práctica, si no
dispone de la capacidad de completar automáticamente las sentencias que está
escribiendo el programador. El mecanismo de “code completion” en Eclipse es muy
similar al que implementan otros IDEs: cuando se deja de escribir durante un
determinado intervalo de tiempo se muestran, si los hay, todos los términos
(palabras reservadas, nombres de funciones, de variables, de campos, etc.) que
empiecen por los caracteres escritos. Si se escriben determinados caracteres (como
el punto, por ejemplo) se puede provocar la ejecución del mecanismo de “code
completion” sin necesidad de esperar a que pase el tiempo establecido.
Otra característica relacionada con el code completion es la asistencia a la escritura
en llamadas a funciones. Automáticamente, cuando se van a escribir los
parámetros que se pasan a un método, se muestra una caja de texto indicando los
tipos que éstos pueden tener.
De forma similar a muchos otros entornos de desarrollo, Eclipse permite definir y
utilizar templates. Los templates son plantillas de código (generalmente porciones
de código de uso habitual y muy repetitivo) que se escriben automáticamente.
Página|34
Los templates están compuestos de dos partes: un bloque de código (o de
comentario), de uso frecuente, que se escribe automáticamente y una cadena que
provoca la escritura del template. Las cadenas que disparan templates serán
reconocidas por el sistema de code completion, con la diferencia de que, en lugar
de terminar la escritura de la cadena, ésta será sustituida por el template que tiene
asociado.
En el punto anterior, se comentaban algunas de las facilidades que ofrece Eclipse
para crear y manipular bloques de código de una forma fácil y cómoda, evitando el
tedio de tener que realizar todo el trabajo a mano. Todas las operaciones de
manejo de código explicadas trabajan, únicamente, con código escrito sobre un
mismo fichero (o perteneciente a una misma clase). Si las modificaciones que se
quieren realizar deben involucrar a varias clases, escritas en varios ficheros
diferentes, todos ellos pertenecientes al mismo proyecto, entonces se pueden
utilizar las herramientas de Refactorización.
2.5 JAVA
Lenguaje de programación orientado a objetos, independiente del sistema
operativo, que se utiliza, especialmente, en las aplicaciones interactivas
relacionadas con Internet.
“Es el lenguaje que por defecto utiliza Google en sus aplicaciones Android
por eso se eligió como lenguaje para para hacer la app nativa sin embargo
también se puede programar en C o en otros lenguajes ya conocidos”.
(Jorge Garcia , Jose Ignacion Rodriguez, 2000)
Características de Java:
Lenguaje totalmente orientado a Objetos. Todos los conceptos en
los que se apoya esta técnica, encapsulación, herencia,
polimorfismo, etc., están presentes en Java.
Disponibilidad de un amplio conjunto de bibliotecas. Como ya se
mencionó anteriormente, Java es algo más que un lenguaje. La
Página|35
programación de aplicaciones con Java se basa no solo en el
empleo del juego de instrucciones que componen el lenguaje, sino,
fundamentalmente, en la posibilidad de utilizar el amplísimo
conjunto de clases que Sun pone a disposición del programador y
con las cuales es posible realizar prácticamente cualquier tipo de
aplicación.
Lenguaje simple. Java posee una curva de aprendizaje muy rápida.
Resulta relativamente sencillo escribir applets interesantes desde el
principio. Todos aquellos familiarizados con C++ encontrarán que
Java es más sencillo, ya que se han eliminado ciertas
características, como los punteros. Debido a su semejanza con C y
C++, y dado que la mayoría de la gente los conoce aunque sea de
forma elemental, resulta muy fácil aprender Java. Los
programadores experimentados en C++ pueden migrar muy
rápidamente a Java y ser productivos en poco tiempo.
Distribuido. Java proporciona una colección de clases para su uso en
aplicaciones de red, que permiten abrir sockets y establecer y
aceptar conexiones con servidores o clientes remotos, facilitando
así la creación de aplicaciones distribuidas.
Interpretado y compilado a la vez. Java es compilado, en la medida
en que su código fuente se transforma en una especie de código
máquina, los bytecodes, semejantes a las instrucciones de
ensamblador. Por otra parte, es interpretado, ya que los bytecodes
se pueden ejecutar directamente sobre cualquier máquina a la cual
se hayan portado el intérprete y el sistema de ejecución en tiempo
real (run-time).
Robusto. Java fue diseñado para crear software altamente fiable.
Para ello proporciona numerosas comprobaciones en compilación y
en tiempo de ejecución. Sus características de memoria liberan a
los programadores de una familia entera de errores (la aritmética
de punteros), ya que se ha prescindido por completo de los
punteros, y la recolección de basura elimina la necesidad de
liberación explícita de memoria.
Página|36
Dada la naturaleza distribuida de Java, donde las applets se bajan
desde cualquier punto de la Red, la seguridad se impuso como una
necesidad de vital importancia. A nadie le gustaría ejecutar en su
ordenador programas con acceso total a su sistema, procedentes
de fuentes desconocidas. Así que se implementaron barreras de
seguridad en el lenguaje y en el sistema de ejecución en tiempo
real.
Indiferente a la arquitectura. Java está diseñado para soportar
aplicaciones que serán ejecutadas en los más variados entornos de
red, desde Unix a Windows Nt, pasando por Mac y estaciones de
trabajo, sobre arquitecturas distintas y con sistemas operativos
diversos. Para acomodar requisitos de ejecución tan diversos
o variopintos, el compilador de Java genera bytecodes: un formato
intermedio indiferente a la arquitectura diseñado para transportar
el código eficientemente a múltiples plataformas hardware y
software. El resto de problemas los soluciona el intérprete de Java.
Portable. La indiferencia a la arquitectura representa sólo una parte
de su portabilidad. Además, Java especifica los tamaños de sus
tipos de datos básicos y el comportamiento de sus operadores
aritméticos, de manera que los programas son iguales en todas las
plataformas. Estas dos últimas características se conocen como la
Máquina Virtual Java (JVM).
Alto rendimiento.
Multi hilos. Hoy en día ya se ven como terriblemente limitadas las
aplicaciones que sólo pueden ejecutar una acción a la vez. Java
soporta sincronización de múltiples hilos de ejecución
(multithreading) a nivel de lenguaje, especialmente útiles en la
creación de aplicaciones de red distribuidas. Así, mientras un hilo se
encarga de la comunicación, otro puede interactuar con el usuario
mientras otro presenta una animación en pantalla y otro realiza
cálculos.
Dinámico. El lenguaje Java y su sistema de ejecución en tiempo real
son dinámicos en la fase de enlazado. Las clases sólo se enlazan a
medida que son necesitadas. Se pueden enlazar nuevos módulos de
Página|37
código bajo demanda, procedente de fuentes muy variadas, incluso
desde la Red.
Produce applets. Java puede ser usado para crear dos tipos de
programas: aplicaciones independientes y applets. Las aplicaciones
independientes se comportan como cualquier otro programa escrito
en cualquier lenguaje, como por ejemplo el navegador de Web
HotJava, escrito íntegramente en Java. Por su parte, las applets son
pequeños programas que aparecen embebidos en las páginas Web,
como aparecen los gráficos o el texto, pero con la capacidad de
ejecutar acciones muy complejas, como animar imágenes,
establecer conexiones de red, presentar menús y cuadros de
diálogo para luego emprender acciones, etc.
2.6 JSON
Es un formato de datos muy ligero basado en un subconjunto de la
sintaxis de JavaScript: literales de matrices y objetos. Como usa la sintaxis
JavaScript, las definiciones JSON pueden incluirse dentro de archivos
JavaScript y acceder a ellas sin ningún análisis adicional como los
necesarios con lenguajes basados en XML.
Debido a que no todas las funciones son proveídas por el web service del
Moodle debimos programar nuestra propia interfaz y para devolver datos
de ella para mayor facilidad se utilizó Json, que es muy fácil de parsear
debido a las librerías de Java que ya tienen estas funciones
implementadas.
2.7 ¿QUÉ ES Y PARA QUE SIRVE JSON?
JSON (JavaScript Object Notation) es un formato para el intercambios
de datos, básicamente JSON describe los datos con una sintaxis dedicada
que se usa para identificar y gestionar los datos. JSON nació como
una alternativa a XML, el fácil uso en javascript ha generado un gran
número de seguidores de esta alternativa. Una de las mayores ventajas
que tiene el uso de JSON es que puede ser leído por cualquier lenguaje
Página|38
de programación. Por lo tanto, puede ser usado para el intercambio de
información entre distintas tecnologías.
Los tipos de valores que podemos encontrar en Json son los siguientes:
Un número (entero o float)
Un string (entre comillas simples)
Un booleano (true o false)
Un array (entre corchetes [] )
Un objeto (entre llaves {})
Null
2.8 PHP
es un lenguaje de programación de uso general de código del lado del
servidor originalmente diseñado para el desarrollo web de contenido
dinámico. Fue uno de los primeros lenguajes de programación del lado del
servidor que se podían incorporar directamente en el documento HTML en
lugar de llamar a un archivo externo que procese los datos.
Se utilizó Para trabajar directamente con la base de datos y es
fuertemente recomendado por la documentación de Moodle para que
interactúe con la plataforma.
EllisLab es una empresa localizada en Bend (Oregón, EE. UU.) Que
desarrolla aplicaciones software en lenguaje PHP.1 La empresa es de
propiedad privada y no tiene socios financieros de ningún tipo. EllisLab ha
desarrollado las siguientes aplicaciones:
ExpressionEngine (anteriormente pMachine Pro).
CodeIgniter.
Con el nombre de EngineHosting.
Página|39
ExpressionEngine es un manejador de contenidos web CMS, escrito
en PHP usando orientación a objetos y MySQL. Se ofrecen tres versiones:
una gratuita para uso personal llamada "ExpressionEngine Core", una
versión "Personal" y otra "Commercial". El núcleo usado en todas ellas es
el mismo, aunque existen módulos distintos.
CodeIgniter es un entorno de desarrollo rápido, con un grupo específico de
herramientas para programadores que generan aplicaciones en lenguaje
PHP. Es distribuido bajo licencia de código abierto.
CodeIgniter es un framework para aplicaciones web de código abierto para
crear sitios web dinámicoscon PHP. «Su objetivo es permitir que los
desarrolladores puedan realizar proyectos mucho más rápido que creando
toda la estructura desde cero, brindando un conjunto de bibliotecas para
tareas comunes, así como una interfaz simple y una estructura lógica para
acceder esas bibliotecas.2
También hay que destacar que CodeIgniter es más rápido que muchos
otros entornos.3 4 5 Incluso en una discusión sobre entornos de desarrollo
con PHP, Rasmus Lerdorf, el creador de PHP, expresó que le gustaba
CodeIgniter «porque es rápido, ligero y parece poco un entorno».6
Kohana ha creado una rama a partir de CodeIgniter 1.5.4 en 2007, como
resultado del disgusto de la comunidad por la falta de corrección de
errores y el deseo de incorporar otras características demandadas por los
usuarios.
2.9 RESTFUL SERVICE
Es un estilo arquitectónico que especifica las restricciones, como la
interfaz uniforme, que si se aplica a un servicio web inducen propiedades
deseables, como el rendimiento, la escala y la modificación , que hacen
posibles servicios que funcionan mejor en la Web.
Página|40
Ilustración 17 Imagen Restful Service
La Transferencia de Estado Representacional (REST - Representational
State Transfer) fue ganando amplia adopción en toda la web como una
alternativa más simple a SOAP y a los servicios web basados en el
Lenguage de Descripción de Servicios Web (Web Services Descripcion
Language - WSDL). Ya varios grandes proveedores de Web 2.0 están
migrando a esta técnología, incluyendo a Yahoo, Google y Facebook,
quienes marcaron como obsoletos a sus servicios SOAP y WSDL y pasaron
a usar un modelo más facil de usar, orientado a los recursos.
REST define un set de principios arquitectónicos por los cuales se diseñan
servicios web haciendo foco en los recursos del sistema, incluyendo cómo
se accede al estado de dichos recursos y cómo se transfieren por HTTP
hacia clientes escritos en diversos lenguajes. REST emergió en los últimos
años como el modelo predominante para el diseño de servicios. De hecho,
REST logró un impacto tan grande en la web que prácticamente logró
desplazar a SOAP y las interfaces basadas en WSDL por tener un estilo
bastante más simple de usar. Rest transfiere JSON, Xml ó ambos, la
Página|41
representación de un recurso en general refleja el estado actual del
mismo y sus atributos al momento en que el cliente de la aplicación
realiza la petición. La representación del recurso son simples "fotos" en el
tiempo. Esto podría ser una representación de un registro de la base de
datos que consiste en la asociación entre columnas y tags XML, donde los
valores de los elementos en el XML contienen los valores de las filas. O, si
el sistema tiene un modelo de datos, la representación de un recurso es
una fotografía de los atributos de una de las cosas en el modelo de datos
del sistema. Estas son las cosas que serviciamos con servicios web REST.
La última restricción al momento de diseñar un servicio web REST tiene
que ver con el formato de los datos que la aplicación y el servicio
intercambian en las peticiones/respuestas. Acá es donde realmente vale
la pena mantener las cosas simples, legibles por humanos, y conectadas.
Los objetos del modelo de datos generalmente se relacionan de alguna
manera, y las relaciones entre los objetos del modelo de datos (los
recursos) deben reflejarse en la forma en la que se representan al
momento de transferir los datos al cliente. En el servicio de hilos de
discusión anterior, un ejemplo de una representación de un recurso
conectado podría ser un tema de discusión raíz con todos sus atributos, y
links embebidos a las respuestas al tema. Resulta muy flexible el poder
exponer los recursos del sistema con un API REST, de manera de brindar
datos a distintas aplicaciones, formateados en distintas maneras. REST
ayuda a cumplir con los requerimientos de integración que son críticos
para construir sistemas en donde los datos tienen que poder combinarse
fácilmente (mashups) y extenderse. Desde este punto de vista, los
servicios REST se convierten en algo mucho más grande.
2.10 UBUNTU SERVER
Ubuntu es un sistema operativo desarrollado por la comunidad que es
perfecto para servidores. Ubuntu contiene todas las aplicaciones que
puedas necesitar.
Página|42
Desarrollada y patrocinada por Canonical LTD, una empresa privada y
financiada por el empresario Marl Shuttleworth, tiene como estandarte la
facilidad de uso, facilidad en la instalación y la libertad de uso. De forma
periódica y cada 6 meses sale una nueva versión de Ubuntu. Estas nuevas
versiones pueden ser descargadas desde la web oficial del proyecto o
pedirlas directamente a través del servicio ShipIt, desde el que se nos
enviaran los CD’s, ambas formas no tienen ningún tipo de coste para el
usuario.
Características:
Basada en la distribución Debian
Disponible para plataformas Intel x86 y AMD64
La interfaz gráfica por defecto es Gnome
El navegador web predeterminado es Firefox
El sistema gráfico de administración de paquetes se llama Synaptic y
nos permite de una forma fácil las tareas de instalar o desinstalar
software, así como la descarga de actualizaciones
Otras variantes de Ubuntu son: Kubuntu (Con la interfaz KDE),
Edubuntu (Diseñado para entornos escolares), y Xubuntu (Interfaz
gráfica Xfce).
Actualmente es una de las comunidades más activas.
2.11 AMAZON WEBSERVICE EC2
El uso de Amazon EC2 elimina su necesidad de invertir en hardware por
adelantado, por lo que usted puede desarrollar y desplegar aplicaciones
rápidas. También puede utilizar Amazon EC2 para lanzar tantos o tan
pocos servidores virtuales como sea necesario, configurar la seguridad y
la creación de redes, y gestión de almacenamiento. Amazon EC2 permite
escalar hacia arriba o hacia abajo para manejar los cambios en los
Página|43
requisitos o picos de popularidad, lo que reduce su necesidad para
pronosticar el tráfico.
2.11.1 CARACTERÍSTICAS DE AMAZON EC2
Amazon EC2 proporciona las siguientes características:
- Entornos informáticos virtuales, conocidos como casos
- Plantillas preconfiguradas para las instancias, conocidos
como Amazon Machine Images ( AMI ) , ese paquete las
partes que usted necesita para su servidor ( incluyendo
el sistema operativo y el software adicional)
- Varias configuraciones de CPU , memoria,
almacenamiento y capacidad de redes para las instancias
, conocida como tipos de instancia
- Información de inicio de sesión seguro para sus
instancias utilizando pares de claves (AWS almacena la
clave pública , y se almacenan la clave privada en un
lugar seguro )
- Los volúmenes de almacenamiento de datos temporal
que se elimina cuando se suspende o cancela su
instancia , conocida como volúmenes ejemplo tiendas
- los volúmenes de almacenamiento persistente para los
datos usando Amazon Elastic Block Store ( Amazon EBS ),
conocido como Los volúmenes de Amazon EBS
Página|44
- Varias ubicaciones físicas de sus recursos, como las
instancias y los volúmenes de Amazon EBS , conocidos
como las regiones y las zonas de disponibilidad
- Un servidor de seguridad que le permite especificar los
protocolos , puertos y rangos de IP de origen que pueden
alcanzar su instancias mediante grupos de seguridad
- Direcciones IP estáticas para la dinámica de computación
en nube, conocida como las direcciones de Elastic
IPMetadatos, conocidas como etiquetas, que puede crear
y asignar a los recursos de Amazon EC2.
- Las redes virtuales que se pueden crear de manera lógica
aislada del resto de la nube de AWS, y que le se puede
conectar opcionalmente a su propia red, conocida como
nubes privadas virtuales ( VPC ).
III. METODOLOGIA
3.1 CRONOLOGÍA DE TRABAJO
Semana 1
Comenzamos a laborar con la definición del proyecto, en la definición de la descripción del
proyecto. Definimos una descripción general del problema de investigación, el objetivo
general del proyecto de graduación, el alcance del proyecto y por último se estableció las
actividades a desarrollar para lograr llevar a cabo el objetivo establecido.
Semana 2
Página|45
Tuvimos la aprobación por parte de la universidad a través del
consentimiento de tres docentes del campus universitario del área de la
carrera.
Semana 3
Preparamos un servidor en la nube para poder instalar y desarrollar el
Moodle y nuestro Restful service, Se configuro una lamp en el servidor.
Ilustración 18 Imagen Semana
Semana 4
Comenzamos a investigar el proyecto web Moodle sus diferentes
versiones su historia y funcionamiento general. Luego instalamos la
versión 2.5.1 en el Ubuntu server dentro del apache previamente
instalado.
Semana 5
Sacamos un listado de todos los funcionamientos de Moodle y luego
decidimos que funcionamientos eran los que íbamos a replicar en la
aplicación móvil.
Semana 6
Página|46
Se investigó el cómo crear una aplicación en Android, El Api y las librerías
adecuadas a utilizar, se realizaron aplicaciones de prueba para probar
librerías externas que ayudarían al proyecto.
Semana 7
Se comenzó el desarrollo del Restful service el cual decidimos llamarlo
Proxy que usaríamos para comunicarnos con la base de datos del Moodle.
Ilustración 19 Imagen Semana 7
Semana 8
Se inicio la Investigamos del Api de moodle cuales eran las funciones que
íbamos a utilizar como se configuraba en el sitio y que tipo de parámetros
necesitábamos enviarle. Hicimos pruebas desde una aplicación de consola hecha
en java para simular el consumo desde Android.
Página|47
Ilustración 20 Imagen Semana 8
Semana 9
Se comenzaron a diseñar algunas pantallas del proyecto como ser la del Login,
Mostrar clases y la de configuración.
Página|48
Ilustración 21 Imagen Semana 9
Semana 10
Realizamos pruebas consumiendo el Api de moodle para revisar la información
que nos enviaba de respuesta y cómo podríamos parsearlo .
Ilustración 22 Imagen Semana 10
Semana 11
Página|49
Investigamos que herramienta de java podríamos utilizar para parsear XML.
Semana 12
Definimos y desarrollamos la Jerarquia de clases y herencias que aplicaríamos
para el manejo de los objetos del Moodle.
Ilustración 23 Imagen Semana 12
Semana 13
Se siguió trabajando en la navegación de la aplicación en Android, la pantalla de
contenido de clase y pantalla de semanas, participantes y mensajes.
Página|50
Ilustración 24 Imagen Semana 13
Semana 14
Obtener el contenido de una clase a través del api de moodle cosas de Android
Semana 15
Se realizaron la navegación de las pantallas de mostrar tareas y demás
contenido de la semana así como lo último que faltaba de navegación.
Semana 16
Pruebas de obtener el contenido de una clase
Semana 17
Surgieron problemas con la visualización de la tabla que representa la
ponderación de la clase
Página|51
Semana 18
Más pruebas para la visualización de la ponderación
Semana 19
Desarrollo del chat
Semana 20
Pruebas con el chat y Subir archivos
Ilustración 25 Imagen Semana 20
Semana 21
Revisión y pruebas generales a la aplicación
Semana 22
Documento y revisión de prototipo, comienzo de elaboración de widgets
Página|52
Semana 23
Documento, finalización de widgets
Semana 24
Se hace el análisis de las fallas de la aplicación, se identifican los errores que
ocurren en el servicio elaborado para conseguir la información de Moodle y la
aplicación móvil, se elabora un plan y división de trabajo a seguir para solventar
esos problemas, se analiza la petición de la terna de graduación para saber que
nuevas características son realizables y cuáles no. Se
Semana 25
Se trabaja en las fallas encontradas en la semana 24, se trata de hacer más
estable las pantallas de contenido de la clase, se agregar a la aplicación nuevos
diálogos de espera para hacerle saber al usuario que la información está
cargando, se hacen pruebas de estrés para ver si la solución implementada es
la ideal la cual consiste en hacer las llamadas de las funciones del servicio del
Moodle de manera asíncrona para que la aplicación funcione de manera
correcta. Se elaboran unit test para probar las funciones de manera asíncrona,
se prueba rendimiento de las funciones con llamadas de maneras asíncronas y
llamadas de manera síncrona.
Semana 26
Se modifican las pantallas de crear tarea para que sea más amigable al usuario,
modificando la acción del botón de modificar tarea, en vez de permanecer en la
misma pantalla cuando el usuario cree la tarea, ahora regresa a la pantalla de
mostrar tareas, se modifican las llamadas a mostrar tareas y mostrar recursos
de tareas a llamadas asíncronas para mejorar el rendimiento de la aplicación y
hacerla más estable, se comienza a trabajar en nuevas funciones del servicio
Página|53
para que se pueda editar el contenido del curso, se empieza a cambiar código
interno de la aplicación para permitir que se pueda obtener información de
cualquier Moodle, se agrega la opción de poder ingresar la url en la pantalla de
autenticación y se cambia la pantalla de información de la aplicación en las
opciones de la pantalla de autenticación.
Semana 27
Se empiezan a implementar las funciones para editar las pantallas de las
secciones del curso, se dividen en tres tipos, editar labels, editar urls y editar
tareas, se termina la función de editar labels y se empiezan a probar, se
empieza a trabajar en la parte de editar las secciones en la parte de la aplicación
móvil.
Semana 28
Se termina la parte de edición de labels de la parte de sección de cursos, se
elaborar unit tests para las funciones, se hacen prueba de estrés a la aplicación
para determinar que tan bien está funcionando la aplicación, en esta parte se
termina las pantallas de edición de la sección de curso, aunque no se elabora
ningún tipo de característica para evitar que el usuario evite tocar html.
Semana 29
Se termina las funciones de editar urls y editar tareas, se elaboran unit tests y se
hacen pruebas de estrés a las funciones, se implementan en la aplicación móvil,
se hacen pruebas para ver si funcionan de manera adecuada las tres funciones
de editar en la sección de los maestros.
Página|54
Semana 30
Se comienza a trabajar en la estabilidad del chat y en la investigación de realizar
nuevos atributos a la aplicación para poder sincronizar el calendario del móvil y
las tareas y poder descargar los participantes de una clase a la agenda del
celular del usuario.
Semana 31
Se empieza a trabajar en un IDE que permita la edición de texto html para editar
las secciones del curso, se continua con la investigación comenzada en la
semana 30, se empieza a trabajar en la configuración de un nuevo server con un
nuevo Moodle para poder probar que la aplicación puede trabajar con cualquier
plataforma Moodle.
Semana 32
Se finaliza el IDE para la edición de secciones del curso, el nuevo IDE permite
cambiar tipo de letra, tamaño de letra, estilo de letra y color de letra sin que el
usuario tenga la necesidad de tener conocimientos de html, el nuevo IDE toma el
texto y a partir de las opciones predefinidas por el usuario traduce los comandos
para parsear un html que es enviado a las funciones creadas en semanas
anteriores para que se pueda renderear en la secciones del curso, tanto en la
aplicación móvil como en la plataforma web.
Página|55
Semana 33
Se elaboran nuevos atributos para la aplicación móvil, se prueban los nuevos
atributos, se permite que el usuario pueda bajar la información de los
participantes a la agenda del usuario y se puede sincronizar las tareas con el
calendario del celular.
Semana 34
Se elaboran nuevos mockups para modificar algunas pantallas para hacerlas
más amigable a vista del usuario, se finaliza la configuración del nuevo
plataforma Moodle para poder probar que el usuario puede conectarse con la
aplicación en cualquier plataforma cumpliendo los requisitos previamente
explicados.
3.2 MATERIALES
3.2.1 DISPOSITIVO MÓVIL
Se requiere un sistema operativo Android, en el cual sea compatible con
el aparato telefónico, necesariamente versión 4.0 en adelante.
3.2.2 INTERNET
Vamos a necesitar una velocidad de internet aproximada de 128k en
adelante.
3.2.3 SERVIDOR
Página|56
Se necesita un servidor para poder tener alojado la plataforma Moodle
y el servicio complementario para que la aplicación móvil se puede
conectar a el.
IV. ANÁLISIS DE PROCESO DEL PROYECTO
Tabla de Tiempo en Meses
Procesos 1 2 3 4 5 6
Investigación
Configuración e Instalación
Desarrollo
Pruebas
Prototipo
Documentación
Ilustración 26 CUADRO CRONOLOGICO
V. CONCLUSIONES
Identificar las funciones oportunas y necesarias para facilitar el
intercambio tecnológico no es una tarea fácil ni sencilla, puesto que se
puede mal interpretar la necesidad de atributos llevando a su inclusión
menguando así la eficiencia de la creación de una aplicación sencilla.
Página|57
La demanda de aplicaciones para celulares inteligentes exige tener
alternativas ya sea comerciales o académicas que complementen de
manera efectiva plataformas y sistemas orientados al uso diario.
La elaboración de una aplicación en Android rompe con las malas
costumbres que pueda tener un desarrollador, el poder crear una
aplicación eficiente y sencilla es un reto que se debe asumir si se quiere
presentar una aplicación altamente funcional en este tipo de plataformas
móviles
La creación de un servicio web aparte que pueda solucionar los problemas
que no se pudieron solucionar con las funciones que ya proveía la
plataforma Moodle requiere el conocimiento previo de ciertos paradigmas
de programación que puedan ayudar a solventar problemas que no fueron
tomados en cuenta cuando se propuso el problema.
VI. RECOMENDACIONES
6.1 SEGURIDAD
Llave de seguridad
Una llave de seguridad o token es una herramienta que ayuda a que otros sistemas accesen el moodle de modo seguro. Esta puede ser usada por un webservice.
El usuario puede obtener el key desde el sitio de moodle via Settings > My profile settings > Security keys
Ese mismo modo de autenticación utilizamos en el proxy para que comparta el mismo esquema de seguridad del service de moodle.
El esqueme utilizado se le llama handshake
Página|58
1. Usuario obtiene userid y el API key para comunicarse con el servicio.2. Usuario quiere realizar una petición al servicio para obtener el contenido
de una clase asi que manda una petición algo como /user/getclase?idClase=3
3. Para que esta petición pueda ser lograda exitosamente el sistema cliente necesita agregar el id del usuario y el API key de modo que la petición quedaría de la forma /user/getclase?idClase=3&apiKey=llave_generada.
4. El servidor recibe la llamada y mira que es del usuario userid=123 y revisa si el API key mandada en la petición corresponde a ese usuario, luego replica los pasos necesario para crear la firma y si la comparación es correcta la petición es valida.
Con esta metodología nos aseguramos que la firma nunca es usada como parte de la comunicación.
VII. BIBLIOGRAFÍA
developer.android.com. (09 de Diciembre de 2013). Obtenido de http://developer.android.com/training/basics/firstapp/starting-activity.html
developer.android.com. (2014). Obtenido de http://developer.android.com/training/basics/activity-lifecycle/starting.html
Gallego, J. C. (2014). Guia de Moodle 1.9.14t , Plataforma Adistancia .
github.com. (2014). Obtenido de https://github.com/ParanoidAndroid/android_frameworks_base/commit/518c329e8c67fa96b8a8fc22e1962ddb8497c333
Gutierrez, J. (S.F de S. F de 2004). Eclipse (2.1) y JAVA. Obtenido de Universidad de Valencia .
Página|59
Hernandez, E. R. (21 de Enero de 2011). Desarrollo de aplicaciones para diapositivas con Sistemas Operativos Adroid .
Jorge Garcia , Jose Ignacion Rodriguez. (2000). Aprenda Java. San Sebastian.
Gargenta, M. (2011). Learning Android. O'Reilly Media.
Nguyen, Vincent. Android Community. obtenido de http://androidcommunity.com/.
Hobbs, Zach. Hello Android. obtenido de http://helloandroid.com/.
Srinivas, Davanum. Show me the code! obtenido de http://davanum.wordpress.com/.
VIII. ANEXOS
8.1 MANUAL DE USUARIO
Introducción:
Este manual será una guía sobre el uso de la aplicación desarrollada en el proyecto de graduación Moodle para Android.
El propósito principal de la aplicación es brindar al usuario, una manera más sencilla para poder cumplir con sus actividades académicas de una manera más
Página|60
sencilla. Para ello se explicara las opciones disponibles en la aplicación, que no necesariamente son diferentes presentadas a las de la plataforma web de Moodle sin embargo hay que manifestar que es imperativo que se tome en cuenta que el usuario no tiene conocimientos del Moodle y por eso es necesario brindar explicación sencilla de las funcionalidad de las opciones. A lo largo de este manual de usuario se brindaran los pasos necesarios para poder interactuar con las funcionalidades que ofrece la aplicación desarrollada durante nuestro proyecto.
1-Acceso
-. Buscar el icono de Moodle como se muestra en la imagen
-. Presionar el icono y esperar que la aplicación cargue
Página|61
Anexo1. Como entrar
Actualmente para la instalación se deberá contar con el instalador .apk ya que no se cuenta con una versión en el app store.
1- Iniciar Sesión-. Para iniciar sesión deberá ingresar una cuenta y una contraseña que exista en el sitio Moodle en el cual usted quiera iniciar sesión, deberá revisar que tenga conexión a internet de lo contrario la aplicación le enseñara un mensaje de error-. Cuando Ingrese su cuenta y contraseña presione el botón de Iniciar Sesión
Página|62
Anexo 2. Pantalla de autenticacion
2- Clases
La sección de clases muestras las clases en las que el alumno ha sido matriculado.Para ver el contenido de las clases únicamente presione encima de la clase que está interesado ver su contenido,
Página|63
Anexo 3. Ver clases
3- Contenido de una Clase
.-Alumno:
El Alumno podrá ver el contenido de la clase, como se muestra en la imagen dependiendo de qué secciones el maestro haya publicado en el sitio web del Moodle, en todo caso hay tres tipos de objetos:
Página|64
- Urls
- Tareas
- Archivos
El Alumno podrá ver cada uno de ellos, ver una tarea, seguir el url o bajar el archivo, aunque para descargar el archivo debido a que moodle no cuenta con un sistema de token para manejar que archivos se pueden ver afuera de la plataforma web, la aplicación lo re-direccionara al link de descarga del archivo, si el usuario no está autenticado en la plataforma web este no podrá descargarlo.
Anexo 4. Descripción del contenido
.-Maestro:El maestro podrá ver el contenido de la clase pero también podrá editar las secciones, agregar recursos, y urls a las secciones, presionando el botón de “+” como se muestra en la imagen.
Página|65
- Editar Secciones:
- ) Agregar Objetos:
Al presionar la sección el botón con el “+” se mostrara la siguiente pantalla:
Al seleccionar cada opción, se abrirá una ventana para que el usuario ingrese el contenido de cada objeto.
- ) Editar Secciones:
Para editar secciones únicamente el maestro tiene que mantener presionado sus dedos encima de la sección que quiere editar, al hacerlo saldrá la siguiente pantalla:
Página|66
Luego el usuario podrá seleccionar el texto que quiere editar y al hacerlo aparecerán las opciones de edición:
El usuario puede elegir la opción de copiar, editar y editar el texto, al editar el texto las opciones de la barra de edición cambiaran:
El usuario asi mismo podrá elegir la fuente del texto de su sección, al termina la edición de cada sección el usuario podrá salvar su edición y esta se reflejara tanto en la plataforma web como en la aplicación móvil.
4- Ver tareas y recursos
El usuario puede buscar en las secciones del curso donde hay tareas y recursos disponibles y seleccionarlas:
Página|67
Anexo 5. Ver tareas y recursos por clases
Cabe destacar que al seleccionar las tareas o recursos de las secciones de curso únicamente se verán las tareas o recursos de esa sección.
5- Barra de MenúPara ver perfil, participantes, mensajes, todas las tareas y recursos hay que hacerlo a través de la barra de menú que provee la aplicación, la cual para poder usarla únicamente se tiene que hacer es deslizar la mano de derecha hacia la izquierda y esta aparecerá.
Página|68
Anexo 6. Tareas y recursos con contenido
Al aparecer la barra de usuario el usuario tiene varias opciones aparecerán, en este punto las opciones tanto maestro y alumno son las mismas, sin embargo en las secciones de tareas y mensajes difieren de entre los dos tipos de usuarios.
.-Pantalla de Recursos:Una vez ya accediste de cualquiera de las dos maneras que ya se explicaron aparecerá la siguiente pantalla de recursos;
Página|69
Anexo 7. Lo que el usuario podrá observar
En el caso de los recursos aparecerá el nombre, el número del recurso y la opción para ir a la página del moodle y descargar el recurso, como se explicó antes Moodle no tiene un sistema de tokens para permitir que un archivo se descargue desde afuera de la plataforma web, por lo que al momento de descargarla se tiene que re-direccionar al link web de descarga, sin embargo si el usuario no está autenticado en la plataforma web, la plataforma enviara al usuario a la pantalla de autenticación, una vez que el usuario demuestre su identidad, el archivo comenzara a descargarse.
.-Pantalla de Tareas
El usuario podrá observar todas las tareas o las tareas de una sección dependiendo de dónde ingrese, si es mediante la barra menú o mediante el botón tareas de las secciones.
Página|70
1- Alumno:El alumno deberá vera las tareas cuales tiene asignadas como se puede ver en la siguiente imagen:
Anexo 8. Descripción de la información}
El alumno para poder ver el contenido de cada tarea deberá presionar encima de cada tarea y se mostrara el contenido de la tarea, como se muestra en la siguiente imagen:
Página|71
Anexo 9. Plantilla de envió
El usuario podrá subir un archivo si así lo requiere la tarea, primero lo elegirá utilizando la opción seleccionar archivo y posteriormente lo subirá a la aplicación usando la opción subir archivo.
2 - Maestro:
El Maestro vera la misma pantalla del conjunto de tareas sumado a una nueva barra de opciones para edición.
Otras opciones de la barra de usuario
1- Perfil:El usuario podrá ver su perfil, sin embargo no podrá editarlo
2- Participantes:
Página|72
El usuario podrá ver los participantes de una clase y chatear con ellos
3- Mensajes:El usuario podrá ver los últimos mensajes recibidos
Cambio de plataforma:
El usuario podrá configurar la plataforma en la cual la aplicación se debe conectar, es decir si el usuario se quiere conectar a la plataforma 1 debera seguir los siguientes pasos:
1- En la pantalla de inicio de sesión en el sub menú presionar configuración:
2- Al momento de escoger la opción de configuración aparecerá otra pantalla la cual tendra el botón de cambiar url de acceso a lo cual aparecerá la siguiente pantalla:
Página|73
3- como se puede observar se mostrara una ventana de dialogo que indicara que url es la que se está utilizando por defecto nuestra aplicación se conecta a una plataforma base, ahí el usuario podrá escoger que tipo de plataforma quiere para poder utilizar la aplicación.
Nota:
El cambio de url es limitado ya que depende o no que tipo de configuración tenga la plataforma para poder acceder a todas las funciones de Moodle.
Configuracion de Plataforma Moodle
Página|74
Instalación de un complemento
Para instalar un complemento (add-on), su código fuente debe ponerse
(desplegarse) dentro de la localización apropiada adentro del directorio con la
instalación de Moodle y debe visitrase la página de administración
principal Administración > Administración del sitio > Notificaciones. Existen tres
maneras en las que se puede desplegar en Moodle el código de un
complemento:
En Moodle 2.5 en adelante, el código de un complemento puede desplegarse
desde adentro de Moodle, sea directamente desde el directorio de plugins de
Moodle, o al subir un archivo ZIP. El proceso del servidor web debe de tener
acceso de escritura a la carpeta del tipo de plugin en donde se instalará el nuevo
complemento, para poder usar cualquiera de éstos métodos.
De forma alterna, el código de un complemento puede desplegarse
manualmente en el servidor.
Página|75
Instalación directamente desde el directorio de plugins de Moodle
1. Ingrese a su sitio como administrador y vaya a Administración >
Administración del sitio > Plugins > Instalar complementos
2. Elija el botón 'Instalar complementos desde el directorio de plugins de
Moodle'.
3. Busque un plugin que tenga un botón para instalar (Install') que asegura
que es compatible con su versión de Moodle), elija el botón para Instalar
(Install) y luego elija Continuar (Continue).
4. Revise que aparezca el mensaje de que pasó la validación (Validation
passed!) y después elija el botón para Instalar el complemento (Install
add-on).
Nota: En nuestro caso es necesario activar el plugin de servicios para que la plataforma Moodle a la que se va conectar pueda permitir el acceso de nuestra aplicación.
Página|76
Desinstalación de un complemento
Para desinstalar un complemento Ir a Opciones > Administración del sitio >
Plugins > Plugins overview y clic al botón de Uninstall en frente del plugin que se
quiera quitar.
Utilice el administrador de archivos para quitar/eliminar el directorio de plugins
según las instrucciones, de lo contrario, Moodle, voverá a instalarlo la próxima
vez que acceda administración del sitio
Nota: Algunos tipos de plugin ofrecen la remoción del disco también, aunque
todavía no lo hacen todos
Vista general de plugins
La página de vista general de plugins en Administración > Administración del sitio > Plugins > Vista general de plugins enlista todos los plugins instalados, junto con sus números de versiones, disponibilidad (habilitado o deshabilitado) y enlace a configuraciones (si hubiera).
Un botón para 'Revisar actualizaciones disponibles' le permite a los
administradores revisar rápidamente si hay actualizaciones disponibles para
plugins estándar de Moodle o complementos instalados en el sitio (desde
el directorio de plugins). Las actualizaciones disponibles están resaltadas, con
mayor información y un enlace para descargar en la columna de notas opuesta
al plugin.
Página|77
Página|78
8.2 REQUERIMIENTOS
1- LA APLICACIÓN ES COMPATIBLE CON:
Mínima versión sdk: 8
Máxima versión sdk: 19
Compatible con sistema operativo Android 4.1 hasta la última versión.
2-REQUISITOS:
La aplicación pide permiso a:
-Agenda
-Conexión a internet
-Acceso a cuentas
-Almacenamiento
-Control de archivos
3-REQUISITOS INSTALACIÓN DE SERVIDOR:
-Apache server
-PHP
-Mysql
-Configuración plataforma moodle
Página|79
8.2 DIAGRAMA DE CLASES
Página|80
8.3 Glosario
Activity:
Es la base de cualquier aplicación Android con interfaz de usuario, es decir, si
tiene interfaz de usuario tendrá al menos una clase Activity, o más bien una
clase que hereda de "Activity".
Por lo tanto, podemos resumirlo en que cada Activity está relacionada con un
pantalla visible. Una aplicación puede tener más de una pantalla visible, cada
una muesta una IU y responde a eventos iniciados por el sistema o por el
usuario. Además, las Activity-s utilizan una o varias Views para presentar al
usuario los elementos de la IU.
Dalvik:
Máquina virtual basada en la máquina virtual de Java que se encarga de la
ejecución de las aplicaciones en Android.
Dalvik Cache:
Resultado de Dalvik hacer una optimización del programa en ejecución. Es
similar a los archivos de prefetch de Windows.
Intent:
Es un mecanismo para invocar componentes, los intents son bastante fáciles de
comprender. Básicamente nos permiten llamar a aplicaciones externas a la
nuestra, lanzar eventos a los que otras aplicaciones puedan responder.
Launcher:
Página|81
La parte de la interfaz de usuario de Android en pantallas de inicio que le
permite lanzar aplicaciones, hacer llamadas telefónicas, etc. Está integrado
en Android, o se pueden descargar del Play Store (Android Market).
Layout:
Un Layout es un contenedor de una o más vistas y controla su comportamiento y
posición. Hay que destacar que un Layoutpuede contener a otro Layout y que es
un descendiente de la clase View.
Parsear:
Proceso de analizar una secuencia de símbolos a fin de determinar su estructura
gramatical con respecto a una gramática formal dada. Formalmente es llamado
análisis de sintaxis. Un parseador (parser) es un programa de computación que
lleva a cabo esta tarea.
SDK:
Abreviación de Software Development Kit o Kit de Desarrollo de Software. Es un
conjunto de herramientas de desarrollo que permite al programador crear
aplicaciones para un sistema, en este caso Android. En él se hallan la mayoría de
herramientas como ADB, Fastboot y entre otras
SystemUI.apk:
Es la barra de estado de la ROM o firmware de tu Android, ubicada en la raíz del
sistema.
Página|82
Script:
Es un programa capaz de realizar diversas tareas como combinar componentes,
modificarlos o interactuar con el sistema operativo o con el usuario.
Stable:
En español estable, sirve para denominar a las ROMs en la versión como dice
más estable, la que ya es apta para uso diario, en esta versión se corrigen la
mayoría de errores que provocaban que no sea para uso diario.
Stock:
Es un término utilizado para referirnos a la versión predeterminada u original de
algún firmware, ROM, app, launcher, etc.
Swap:
Partición especial que se realiza en una unidad de almacenamiento para servir
de soporte a la memoria principal del sistema, de tal forma que se amplía
virtualmente la capacidad de la RAM.
Widget:
Es una pequeña aplicación o programa, usualmente presentado en archivos o
ficheros pequeños que son ejecutados por un motor de widgets o Widget Engine.
Entre sus objetivos está dar fácil acceso a funciones frecuentemente usadas y
proveer de información visual.
Wipe:
Página|83
Proceso por el cual se elimina toda la configuración de usuario y datos de las
aplicaciones del dispositivo, dejando la ROM actual “limpia”. Existen
varios Wipes como Wipe All Data, que borra absolutamente todos los datos y
apps que se encuentran almacenados en el dispositivo, Wipe Data que borra
todos los datos del terminal, Wipe Cache que borra el cache del terminal, etc. Es
lo que se recomienda realizar antes de flashear otra ROM.
Página|84