0805 Programacion Apple Ios

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 11

1.

DATOS DE LA ASIGNATURA

Nombre de la asignatura: Programación para Apple IOS

Carrera: Ingeniería en Sistemas Computacionales

Clave de la asignatura:

(Créditos) SATCA1 2- 3 – 5

2. PRESENTACIÓN
Caracterización de la asignatura.

En los últimos años los dispositivos móviles se han establecido como una parte importante
del acceso a la información y aplicaciones. Estos dispositivos han dejado de ser simples
agendas electrónicas o teléfonos celulares para convertirse en pequeñas computadoras con
capacidad de ejecutar aplicaciones, juegos con gráficos 3D e incluso con capacidades de
acceder a Internet através de diferentes tecnologías de red inalámbrica de alta velocidad
tales como 3G o WiFi. Sin embargo, a pesar de sus siempre crecientes capacidades, el
desarrollo de aplicaciones para dispositivos móviles presenta desafíos que no están
presentes en el desarrollo de otros tipos de sistemas. Esto se debe a que comparados con
las computadoras de escritorio y servidores, los dispositivos móviles poseen un poder de
cómputo y almacenamiento extremadamente limitado. Adicionalmente, la fuente de energía
de los dispositivos móviles son baterías, por lo que es esencial el uso eficiente de los
recursos.

Esta asignatura aporta al perfil del estudiante los conocimientos necesarios para programar
dispositivos móviles mediante el uso de herramientas de desarrollo y emuladores. Este
curso plantea la plataforma MAC para el desarrollo en el cómputo móvil, así como algunos
factores importantes en éste ámbito, como son los recursos limitados, conectividad o
consumo de batería.

1
Sistema de asignación y transferencia de créditos académicos
Intención didáctica.

El profesor deberá contar con experiencia en el área de desarrollo programación y haber


participado en proyectos relacionados con el área de cómputo móvil. Deberá desarrollar la
capacidad para coordinar el trabajo en equipo, así como proponer actividades para el
aprendizaje significativo que consideren los distintos estilos de aprendizaje de los
estudiantes, el entorno de la institución, la formación del profesor y el ámbito profesional en
el que se desenvolverán los futuros profesionistas; todo esto con el compromiso de lograr
las competencias requeridas al término de la materia.

El temario está organizado en 10 unidades. La primera unidad aborda el entorno de


desarrollo con Xcode y los fundamentos de programación con Objective-C.

La unidad dos introduce al alumno sobre la programación orientada a objetos con Objective-
C. La unidad tres del curso versa sobre la programación con OSX utilizando el lenguaje
Objective-C, utilizando el entorno de desarrollo Xcode.

La cuarta unidad introduce al alumno a la programación de dispositivos móviles con IOS. La


quinta unidad concierne al desarrollo de aplicaciones móviles con IOS utilizando
controladores y StoryBoards. La sexta unidad pretende que el estudiante programe
aplicaciones concurrentes con hilos para dispositivos móviles con IOS.

La séptima unidad introduce al alumno a la programación de archivos y gestión de la


información por medio de bases de datos. La unidad 8 concierne sobre el desarrollo de
aplicaciones móviles utilizando comunicación remota por medio de sockets y acceso a
servicios web. La unidad 9 introduce al alumno sobre el desarrollo de aplicaciones en
dispositivos móviles utilizando multimedia. La unidad 10 introduce al desarrollo de
aplicaciones para dispositivos móviles utilizando posicionamiento global con GPS.

3. COMPETENCIAS A DESARROLLAR
Competencias específicas Competencias genéricas

• Competencias instrumentales
• Habilidad en el uso de tecnologías de
• Identificar las implicaciones actuales información y comunicación.
de la programación móvil. • Capacidad de análisis, síntesis y
• Identificar las características de los abstracción.
diferentes emuladores para • Capacidad de organizar y planificar
dispositivos móviles. • Capacidad para identificar, plantear y
• Utilizar técnicas de modelado para la resolver problemas.
solución de problemas. • Capacidad para gestionar y formular
• Aplicar un lenguaje para la solución proyectos.
de problemas para dispositivos • Capacidad de comunicación oral y escrita.
móviles.

Competencias interpersonales
• Capacidad para trabajar en equipo
interdisciplinario.
• Capacidad crítica y autocrítica.
• Capacidad de comunicarse con
profesionales de otras áreas.
• Compromiso ético.
• Habilidades interpersonales

Competencias sistémicas
• Capacidad de aplicar los conocimientos
en la práctica.
• Capacidad de generar nuevas ideas
(creatividad).
• Iniciativa y espíritu emprendedor.

4.- HISTORIA DEL PROGRAMA

Lugar y fecha de Observaciones


Participantes
elaboración o revisión (cambios y justificación)

Departamento de Sistemas y M.C. José Alberto Morales Definición y estructuración de


Computación, Instituto Mancilla los programas temáticos de las
Tecnológico de Tuxtla, 9 al 13 materias que conforman la
de Junio 2014 M.C. Francisco de Jesús especialidad Desarrollo de
Suárez Ruiz Aplicaciones Móviles y
Tecnologías Web

5.- OBJETIVO(S) GENERAL(ES) DEL CURSO (competencia específica a


desarrollar en el curso)

• Desarrollar aplicaciones para dispositivos móviles con IOS.


• Identificar las características de los diferentes dispositivos móviles con sistema
operativo IOS.
• Diseñar y desarrollar Interfaces Graficas de Usuario para los dispositivos
móviles con IOS.
• Diseñar y desarrollar aplicaciones para la comunicación entre dispositivos
móviles y servicios Web con IOS.
• Desarrollar aplicaciones para dispositivos con sistema operativo OSX.
6.- COMPETENCIAS PREVIAS

• Analizar y solucionar problemas informáticos y representar su solución mediante


herramientas de software orientado a objetos.
• Utilizar paquetes computacionales de texto, animaciones e imágenes entre otros.
• Desarrollar Interfaces Gráficas de Usuario mediante el empleo de componentes
y contenedores.
• Diseñar esquemas de bases de datos para generar soluciones al tratamiento de
información.
• Desarrollar programas orientados a objetos.
• Elaborar documentos académicos.
• Hacer presentaciones orales.
• Conocer como citar las fuentes de información de acuerdo a su disciplina.

7.- TEMARIO

Unidad Temas Subtemas

1.1 Entornos de programación


1.2 Descarga de Xcode
1 Introducción a 1.3 Compilación con Xcode
1.4 Entorno de desarrollo XCode
Objective-C 1.5 ¿Qué es Objective-C?
1.6 Memoria dinámica
1.7 Tipos dinámicos
1.8 Enlace dinámico
1.9 Componentes y frameworks
1.10 Creación de un framework
1.11 Creación de un programa

2 Clases y objetos con 2.1 Programación orientada a objetos y Objective-C


Objective-C 2.2 Clases y clases abstractas
2.3 Interfaces
2.4 Implementación
2.5 Instanciar objetos
2.6 Ciclo de vida de un objeto
2.7 Mensajes
2.8 Tipos estáticos y dinámicos
2.9 Variables de instancia
2.10 Declaración de un método
2.11 Implementación de un método
2.12 Ejecución de un método
2.13 Encapsulación
2.14 Manejo de excepciones
2.15 Recolector de basura
2.16 Modelo vista controlador
2.17 Directivas del preprocesador
2.18 Directivas del compilador
2.19 Zonas de memoria
2.20 Variables externas
2.21 Variables register
2.22 Variable volátil
2.23 Constantes
2.24 Inicializadores
2.25 Herencia
2.26 Polimorfismo
2.27 Patrones de diseño

3 Programación con OSX 3.1 API Cocoa, Cocoa touch, Carbón


3.2 Introducción al desarrollo de aplicaciones con OSX
3.3 Programando desde consola
3.4 Utilizando NSLog
3.5 Recolección de basura
3.6 Manejo de variables externas
3.7 Manejo de variables internas
3.8 Manejo de variables register
3.9 Manejo de variables volatiles
3.10 Manejo de variables selectoras
3.11 Conjunto de instrucciones Compound
3.12 Manejo de memoria dinámica
3.13 Liberación de memoria dinámica
3.14 Creación de clases
3.15 Creación de objetos
3.16 Categorias
3.17 Desarrollo de programas

4.1 Introducción al desarrollo de aplicaciones IOS


4.2 Arquitectura de las aplicaciones con IOS
4 Programación con IOS 4.3 Frameworks de IOS
4.4 Utilizando el framework Foundation
4.5 Proxies y delegados
4.6 Diseño de interfaces de usuario
4.7 ¿Qué es un storyboard?
4.8 Creación de storyboards
4.9 Agregando escenas al storyboard
4.10 Manejo de eventos
4.11 Definir la interacción
4.12 Controladores de vista
4.13 Referencias a objetos (Outlets)
4.14 Controles
4.15 Controles de navegación
4.16 Propiedades (Property)

5.1 Agregar un controlador de vista al storyboard


5 Storyboard y View 5.2 Creación de escenas
Controllers 5.3 Agregar etiquetas a la escena
5.4 Agregar TextField a la escena
5.5 La vista ListView
5.6 Visualización con ListView
5.7 Comunicación de objetos por medio de mensajes
5.8 Definición de protocolos en los mensajes
5.9 Incorporación de los datos
5.10 Jerarquía de las vistas
5.11 Construyendo interfaces con vistas
5.12 Utilización de inspectores para configurar las
vistas
5.13 Mostrar contenido estático en una TableView
5.14 Agregar transiciones de navegación hacia adelante
5.15 Creación de subclases de UIViewController
5.16 Creación de subclases de UITableViewController
5.17 Agregar transiciones de navegación hacia atras
5.18 Ejemplos de aplicaciones

6.1 Introducción a los hilos


6 Hilos 6.2 Creación de hilos Foundation
6.3 Creación de hilos POSIX
6.4 Configuración de los hilos
6.5 Programación concurrente

7.1 Introducción a los archivos


7 Almacenamiento de 7.2 Sistema de archivos
7.3 Acceso a archivos
datos con SQLite 7.4 Bases de datos con SQLite

8.1 Introducción a los sockets


8.2 Sockets BSD
8 Sockets y servicios Web 8.3 Implementar un cliente y un servidor
8.4 Sockets con objetos Foundation
8.5 La web y el protocolo http
8.6 Utilizando http
8.7 Servicios web
8.8 Acceso a servicios web
8.9 Diseño e implementación de un servicio web

9.1 Introducción a las animaciones


9 Animaciones y 9.2 Multimedia
9.3 Reproducción de audio
reproducción de video
9.4 Reproducción de video
9.5 Ejemplos de aplicaciones multimedia
10
Geolocalización 10.1 Geolocalización
10.2 Posicionamiento global con GPS
10.3 Ejemplos de aplicaciones con geolocalización

8.- SUGERENCIAS DIDÁCTICAS (desarrollo de competencias genéricas)

• Explicar por parte del profesor la parte teórica.


• Utilizar ejemplos prácticos por unidad para reafirmar el conocimiento.
• Discutir de manera grupal las conclusiones de los temas vistos.
• Presentación de proyectos prácticos.

9.- SUGERENCIAS DE EVALUACIÓN

La evaluación por competencias debe ser continua y permanente, es un


proceso integral, permanente, sistemático y objetivo por tal motivo permite
generar, recabar, analizar e integrar información y evidencias para el logro de
los objetivos educacionales, por tanto los tipos de evaluación deben
diagnosticar, formar y sumar el aprendizaje de los alumnos, haciendo especial
énfasis en:

• Para conocer los conocimientos básicos que tienen los estudiantes se debe
aplicar un examen de diagnóstico al inicio del curso.
• Información obtenida durante las investigaciones solicitadas, plasmadas en
documentos escritos o digitales.
• Solución algorítmica a problemas reales o de ingeniería utilizando el diseño
escrito o en herramientas digitales.
• Emulación de las aplicaciones de los dispositivos móviles con IOS.
• Informes de trabajos de investigación de las búsquedas encomendadas sobre
los temas.
• Promover la participación en clase, lecturas y análisis de textos.
• Dar seguimiento al desempeño en el desarrollo del temario (dominio de los
conceptos, capacidad de la aplicación de los conocimientos en problemas
reales y de ingeniería).
• Revisión de tareas y ejercicios vistos en clase.
• Describir y redactar las diferentes clases que integran las aplicaciones móviles
con IOS.
• Describir mediante un mapa conceptual las características de los dispositivos
móviles con IOS.
• Se recomienda utilizar varias técnicas de evaluación con un criterio específico
para cada una de ellas (teórico-práctico).
• Desarrollo de prácticas de laboratorio por tema que integre los tópicos vistos.
• Desarrollo de un proyecto final que integre todas las unidades de aprendizaje.
• Aplicar exámenes escritos por tema para conocer el progreso de los
estudiantes en el desarrollo de aplicaciones móviles con IOS.
• Identificar las configuraciones y perfiles de los dispositivos móviles con IOS.
• Uso de una plataforma educativa en internet la cual puede utilizarse como
apoyo para crear el portafolio de evidencias del alumno (integrando: tareas,
prácticas, evaluaciones, etc.).
4. UNIDADES DE APRENDIZAJE

Unidad1: Introducción a Objective-C

Competencia específica a
Actividades de Aprendizaje
desarrollar

Comprender e Investigar sobre los • Investigar sobre los entornos de


conceptos fundamentales de programación con Objective-C.
Objective-C y su entorno de • Investigar sobre los componentes y
programación. frameworks que se utilizan.
• Investigar sobre los tipos de variables del
lenguaje Objective-C
• Investigar e instalar las herramientas de
desarrollo de software para Objective-C
• Desarrollar aplicaciones sencillas con
Objective-C y compilarlas.

Unidad 2: Clases y objetos con Objective-C

Competencia específica a Actividades de Aprendizaje


desarrollar

• Investigar sobre la interfaz y la implementación


de una clase en Objective-C.
Comprender como se crean las clases • Investigar sobre las características de
y objetos en Objective-C, la Objective-C.
implementación de sus métodos y • Investigar sobre la clase NSObject.
variables de instancia. • Investigar sobre las directivas del compilador y
del preprocesador.
• Investigar la comunicación entre objetos por
medio de mensajes.
• Investigar sobre las variables y métodos de
instancia y de clase.

Unidad 3: Programación con OSX

Competencia específica a Actividades de Aprendizaje


desarrollar

Comprender e Implementar • Investigar sobre la plataforma OSX.


aplicaciones móviles utilizando el • Investigar los frameworks que soportan la
sistema operativo OSX. plataforma OSX.
• Investigar e instalar las herramientas de
desarrollo de software para OSX.
• Investigar el manejo de las zonas de
memoria en OSX.
• Investigar el manejo de variables internas,
externas y volátiles.
• Implementar un programa en un dispositivo
móvil utilizando OSX.

Unidad 4: Programación con IOS

Competencia específica a Actividades de Aprendizaje


desarrollar

• Investigar sobre la plataforma IOS.


• Investigar los frameworks que soportan la
Comprender e Implementar plataforma IOS.
aplicaciones móviles utilizando IOS de • Investigar e instalarlas herramientas de
Apple. desarrollo de software para IOS.
• Implementar un programa en un dispositivo
móvil utilizando IOS.

Unidad 5: Storyboard y View Controllers

Competencia específica a Actividades de Aprendizaje


desarrollar

• Investigar sobre los objetos View


Controllers para la presentación de los
Investigar y comprender el uso de los contenidos de las aplicaciones en la
Storyboard y los View Controllers para pantalla del dispositivo móvil.
el manejo de las interfaces de las • Investigar la funcionalidad de la clase
aplicaciones en los dispositivos UIViewController para los objetos
controladores de las vistas.
móviles • Investigue e implemente una aplicación en
un dispositivo móvil con un lenguaje
diferente a los que se vieron durante el
curso.

Unidad 6: Hilos

Competencia específica a Actividades de Aprendizaje


desarrollar

• Investigar sobre la programación


concurrente mediante hilos.
Investigar y comprender el proceso de • Investigar las técnicas de sincronización de
ejecución de las aplicaciones los hilos.
concurrentes • Investigar sobre los hilos Foundation y
POSIX.
• Implemente una aplicación concurrente en
un dispositivo móvil con IOS.

Unidad 7: Almacenamiento de datos con SQLite

Competencia específica a Actividades de Aprendizaje


desarrollar

• Investigar sobre las tecnologías de


comunicación inalámbricas actuales.
Investigar y comprender las nuevas • Investigar las plataformas actuales que se
plataformas para el desarrollo de encuentran en el mercado mundial.
aplicaciones móviles actuales. • Investigar los nuevos lenguajes y
herramientas de programación para
dispositivos móviles.
• Investigue e implemente una aplicación en
un dispositivo móvil con un lenguaje
diferente a los que se vieron durante el
curso.

Unidad 8: Sockets y servicios Web

Competencia específica a Actividades de Aprendizaje


desarrollar

• Investigar sobre las tecnologías de


comunicación inalámbricas actuales.
Investigar y comprender las nuevas • Investigar las plataformas actuales que se
plataformas para el desarrollo de encuentran en el mercado mundial.
aplicaciones móviles actuales. • Investigar los nuevos lenguajes y
herramientas de programación para
dispositivos móviles.
• Investigue e implemente una aplicación en
un dispositivo móvil con un lenguaje
diferente a los que se vieron durante el
curso.
Unidad 9: Animaciones y reproducción de video

Competencia específica a Actividades de Aprendizaje


desarrollar

• Investigar sobre las tecnologías de


comunicación inalámbricas actuales.
Investigar y comprender las nuevas • Investigar las plataformas actuales que se
plataformas para el desarrollo de encuentran en el mercado mundial.
aplicaciones móviles actuales. • Investigar los nuevos lenguajes y
herramientas de programación para
dispositivos móviles.
• Investigue e implemente una aplicación en
un dispositivo móvil con un lenguaje
diferente a los que se vieron durante el
curso.

Unidad 10: Geolocalización

Competencia específica a Actividades de Aprendizaje


desarrollar

• Investigar sobre las tecnologías de


comunicación inalámbricas actuales.
Investigar y comprender las nuevas • Investigar las plataformas actuales que se
plataformas para el desarrollo de encuentran en el mercado mundial.
aplicaciones móviles actuales. • Investigar los nuevos lenguajes y
herramientas de programación para
dispositivos móviles.
• Investigue e implemente una aplicación en
un dispositivo móvil con un lenguaje
diferente a los que se vieron durante el
curso.

11.-FUENTES DE INFORMACIÓN

• Fernando, L. H. (2012) Objective-C Curso Práctico para Programadores


Mac OSX, iPhone y iPad. México: Alfaomega Grupo Editor.
• Roldán, D. (2005) Comunicaciones Inalámbricas. México: Alfaomega.
• Bucanek, J. (2013) Learn IOS 7 App Development. USA: Springer Grupo
Editor.
• Nappier R. Kumar M. (2014) IOS 7 Programming Pushing the limits. USA:
Editorial Wiley.
• Nutting J., Olsson F., Mark D. (2013) Beginning IOS 7 Development:
Exploring the IOS SDK. USA: Editorial Apress.
• Stephen G. K. (2012) Programación con Objective-C. México: Editorial
ANAYA.
• Hillegass A. (2012) Desarrollo de Aplicaciones para iPhone & iPad.
México: Alfaomega.
• Lewis, R. (2010) Aplicaciones iPhone e iPad para Principiantes. USA:
Apress.
• Altenberg, B., y Mouguin, F. (2008) Become an Xcoder. USA: Creative
Commons License.

12.-PRÁCTICAS PROPUESTAS

• Investigar y presentar un reporte electrónico con los diferentes tipos


de red inalámbricas disponibles en su comunidad, así como el costo
y planes de acceso.
• Investigar las características de los dispositivos móviles con IOS.
• Investigar y presentar un reporte electrónico sobre las diferentes
plataformas que existen para programar dispositivos móviles.
• Crear una interfaz de usuario para IOS utilizando código en
Objective-C, basado en la jerarquía de objetos de la clase View
(vista).
• Crear una interfaces de usuario con IOS basado en los archivos de
diseño.
• Desarrollar una aplicación móvil usando diferentes manejos de
eventos en Android, por ejemplo el teclado, para ello deberá de
implementarse un escuchador y un manejador de eventos.
• Desarrollar una aplicación móvil, usando los eventos de pantalla
táctil, para ello deberá implementarse un escuchador y un manejador
de eventos.
• Implementar la clase Calculadora que realice al menos las cuatro
operaciones básicas de la aritmética sobrecargando métodos para el
manejo de los datos.
• Implementar aplicaciones móviles que almacenen y recuperen
información de una base de datos, usando el ejemplo de la cuenta
bancaria.
• Programar una aplicación donde se puedan manipular imágenes,
usando la API gráfica de IOS.
• Desarrollar una aplicación móvil donde se puedan dibujar gráficos
vectoriales, utilizando la API de gráficos de IOS.
• Desarrollar una aplicación móvil donde se utilicen las características
especiales para la reproducción de animaciones de la API de IOS.
• Desarrollo de una aplicación móvil usando eventos y manejadores de
eventos que los usuarios puedan obtener información del exterior por
medio de la manipulación de sensores.
• Desarrollo de aplicaciones móviles donde exista comunicación entre
aplicaciones en Internet mediante la arquitectura cliente/servidor.
• Desarrollar programas donde se implementen diferentes medios de
comunicación que ofrecen los dispositivos móviles (SMS, Bluetooth,
WIFI).

También podría gustarte