Dr. Alfredo de Jesús Gutiérrez Gómez
Dr. Alfredo de Jesús Gutiérrez Gómez
Presentación
Instrucciones para la presentación
1. Piense en el nombre de un animal que inicie con la primera letra de su nombre.
2. Este no deberá repetirse.
3. Al presentarse deberá completar la siguiente frase: Mi nombre es: _______ y he venido sobre un/a: _______ a la escuela desde _____
4. Dar respuesta a las preguntas:
4.1 ¿Porqué estudio está carrera?
4.2 ¿Qué me ha gustado de la carrera hasta ahora?
Temas del curso
Unidad 1. Definición del proceso de desarrollo móvil
Temas del curso
Unidad 1. Definición del proceso de desarrollo móvil
Temas del curso
Unidad 2. Integración de servicios en la nube
Temas del curso
Unidad 2. Integración de servicios en la nube
Temas del curso
Unidad 3. Pruebas y liberación del desarrollo móvil
Temas del curso
Unidad 3. Pruebas y liberación del desarrollo móvil
Políticas de clase
Lineamientos de clase
El incumplimiento de las tareas en tiempo y forma llevarán a una no aprobación del curso.
Lineamientos de clase
El incumplimiento de las tareas en tiempo y forma llevarán a una no aprobación del curso.
Realizar el seguimiento personal desde el Aula Virtual.
Estar pendiente de los resultados de las evaluacion/es parcial/es y final/es.
Notificar al tutor por escrito, con copia a la coordinación académica, si, por alguna razón excepcional, se encontrara en una circunstancia especial que le impidiera continuar con el curso y recibir así indicaciones de cómo proceder a partir de ese momento.
Descripción de las actividades
Unidad 1. Definición del proceso de desarrollo móvil
Descripción de las actividades
Unidad 2. Integración de servicios en la nube
Descripción de las actividades
Unidad 3. Pruebas y liberación del desarrollo móvil
Actividades de encuadre
Actividades de encuadre
Instrucciones:
Tiempo de la actividad: 6 minutos.
Actividades de encuadre
Instrucciones:
Tiempo de la actividad: 6 minutos.
Actividades de encuadre
Instrucciones:
Tiempo de la actividad: 6 minutos.
Actividades de encuadre
Una vez contestadas las preguntas anteriores, sigue los siguientes pasos:
Recomendaciones para las actividades
Trabajos:
Párrafos:
Ortografía - Gramática
Recomendaciones para las actividades
Referencias bibliográfica
Lista referencia bibliográfica
Recomendaciones para las actividades
Introducción y conclusión
Formato del trabajo
Recomendaciones para las actividades
Diagramas:
Códigos fuentes:
Tablas:
Recomendaciones para las actividades
Imagenes / diagramas / gráficas:
¿Dudas / Preguntas / comentarios?
Kanban
Kanban
Scrum
Se basa en ciclos de trabajo o sprints –que pueden durar desde semanas hasta meses– en los que se entrega alguna parte del proyecto.
En cada nuevo sprint se genera una versión del producto que supera a la anterior.
El pilar fundamental es que todas las decisiones se toman en función de la información existente y de la propia experiencia de los integrantes del equipo.
Este método, incluye la realización de reuniones periódicas para motivar al equipo, así como para realizar los ajustes necesarios
Xtreme Programing
Concebida específicamente para desarrollar software. Para este fin, todo proyecto que funcione con base en XP cuenta con los roles:
de líder ágil,
cliente,
programador y
tester;
cada uno de ellos con papeles indispensables.
XP se asemeja a Scrum en que plantea cambios frecuentes y ciclos breves en los cuales se entregan nuevas versiones de un proyecto
Lean
Utiliza únicamente las herramientas que sean necesarias para la evolución del proyecto.
¿Para qué? Para maximizar el valor para el cliente y minimizar el desperdicio de tiempo y recursos de la organización.
Nexus
Cabe destacar que, una vez que se domine las metodologías ágiles y se entienda su correcta aplicación, no tienes por qué limitarte a solo una de ellas. Es normal que las empresas opten por híbridos donde se combinen elementos de diferentes metodologías.
Resuelve el siguiente ejercicio haciendo clic aqui
Recolección de requisitos
Define claramente los objetivos del sistema y los requisitos funcionales y no funcionales (rendimiento, seguridad, escalabilidad).
Identificación de componentes clave
Determina los módulos o servicios principales que conformarán el sistema (bases de datos, interfaces, APIs, etc.).
Definir interacciones y dependencias
Especifica cómo interactúan los componentes entre sí y con usuarios externos o sistemas.
Elección de patrones arquitectónicos
Elige un modelo adecuado (monolítico, cliente-servidor, microservicios, etc.).
Consideraciones tecnológicas
Selecciona las tecnologías y herramientas que mejor se adapten a los requisitos.
Documentación y diagrama
Representa visualmente la arquitectura y documenta las decisiones tomadas.
Validación y revisión
Revisa y valida la arquitectura con el equipo y partes interesadas.
Monolítica
Toda la funcionalidad se encuentra en una sola unidad de software.
Cliente-Servidor
La interacción ocurre entre un cliente y un servidor.
Microservicios
El sistema se divide en pequeños servicios independientes que se comunican entre sí.
Capas
Separación de responsabilidades en capas (presentación, lógica de negocio, acceso a datos).
Microservicios
El sistema se divide en pequeños servicios independientes que se comunican entre sí.
Capas
Separación de responsabilidades en capas (presentación, lógica de negocio, acceso a datos).
Instrucciones
StarUml
Soporta diagramas UML (Unified Modeling Language) y otras notaciones de modelado como SysML y ERD.
Descripción
Características
No es totalmente libre, pero tiene una versión accesible para uso personal.
Licencia
Modelio
Herramienta gratuita y de código abierto para modelado de software.
Descripción
Características
No es totalmente libre, pero tiene una versión accesible para uso personal.
Licencia
Modelio
Herramienta gratuita y de código abierto para modelado de software.
Descripción
Características
GPLv3
Licencia
ArgoUML
Herramientas UML más antiguas y populares en la comunidad de código abierto.
Descripción
Características
Open Source (BSD).
Licencia
Umbrello
Herramienta para diagramas UML integrada con el entorno de desarrollo KDE.
Descripción
Características
GPL
Licencia
Dia
Herramienta general para crear diagramas, incluidos los diagramas UML.
Descripción
Características
GPL
Licencia
PlantUML
Herramienta de modelado basada en texto que convierte especificaciones de texto en diagramas UML.
Descripción
Características
Open Source (GPL).
Licencia
Graphviz
Herramienta de visualización de gráficos que es utilizada para generar diagramas de flujo y otras representaciones visuales de datos.
Descripción
Características
EPL
Licencia
OpenModelica
Herramienta para modelado y simulación de sistemas dinámicos.
Descripción
Características
OSMC Public License.
Licencia
Papyrus
Herramienta para modelado UML basada en Eclipse
Descripción
Características
Eclipse Public License.
Licencia
BOUML
Herramienta de modelado UML y generación de código
Descripción
Características
GPL
Licencia
Actividad de aprendizaje
Pulsa aquí para resolver la siguiente actividad
Observer: Define una dependencia uno a muchos para que cuando un objeto cambie de estado, todos sus dependientes sean notificados.
Clasificación
Patrones Creacionales
Se centran en la creación de objetos de manera flexible y reutilizable.
Patrones Estructurales
Se enfocan en la composición de clases y objetos.
Patrones de Comportamiento
Se ocupan de la interacción y comunicación entre objetos.
Singleton: Garantiza que una clase tenga solo una instancia y proporciona un punto de acceso global a ella.
Adapter: Permite que clases con interfaces incompatibles trabajen juntas.
Características
Reusabilidad
Facilitan la reutilización de soluciones probadas.
Flexibilidad
Permiten adaptaciones a diferentes contextos de desarrollo.
Mantenibilidad
Simplifican las modificaciones futuras del código.
Mejoran la comprensión del código por parte de otros desarrolladores.
Legibilidad
Ejemplos
public class DatabaseHelper {
private static DatabaseHelper instance;
private DatabaseHelper() {
// Constructor privado
}
public static synchronized DatabaseHelper getInstance() {
if (instance == null) {
instance = new DatabaseHelper();
}
return instance;
}
}
Patrón Singleton en Android
Ejemplos
class Counter extends ChangeNotifier {
int _count = 0;
int get count => _count;
void increment() {
_count++;
notifyListeners();
}
}
Patrón Observer en Flutter
Buenas Prácticas
Actividad de aprendizaje
Flutter
Es un framework de código abierto desarrollado por Google que permite crear aplicaciones móviles, web y de escritorio a partir de un solo código base. Utiliza el lenguaje de programación Dart.
Flutter
Compatible con iOS, Android, Web y más.
Widgets personalizables
Todo en Flutter es un widget, lo que facilita diseñar interfaces visuales atractivas.
Hot Reload
Permite ver cambios en el código en tiempo real sin reiniciar la aplicación
Rendimiento nativo
Utiliza su propio motor de renderizado, ofreciendo un rendimiento casi nativo.
Flutter
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('Hola Flutter')),
body: Center(child: Text('¡Bienvenido!')),
),
);
}
}
Reac Native
React Native
Gran comunidad de soporte y numerosos paquetes disponibles
Código reutilizable
Más del 90% del código se comparte entre iOS y Android.
Componentes nativos
Usa vistas y controles nativos para garantizar una experiencia de usuario similar a una aplicación desarrollada de forma nativa.
React Native
import React from 'react';
import { View, Text, StyleSheet } from 'react-native';
const App = () => {
return (
<View style={styles.container}>
<Text>¡Hola React Native!</Text>
</View>
);
};
const styles = StyleSheet.create({
container: { flex: 1, justifyContent: 'center', alignItems: 'center' },
});
export default App;
Xamarin
Propiedad de Microsoft, permite el desarrollo de aplicaciones móviles utilizando C# y .NET. Ofrece acceso directo a las API nativas de las plataformas.
Xamarin
Los desarrolladores pueden escribir código específico para cada plataforma cuando sea necesario.
Xamarin.Forms
Para compartir la interfaz de usuario entre plataformas.
Integración con Visual Studio
Ideal para desarrolladores en el ecosistema Microsoft.
Acceso a funcionalidades nativas
Xamarin
using Xamarin.Forms;
namespace HelloXamarin
{
public class App : Application
{
public App()
{
MainPage = new ContentPage
{
Content = new Label
{
Text = "¡Hola Xamarin!",
VerticalOptions = LayoutOptions.CenterAndExpand,
HorizontalOptions = LayoutOptions.CenterAndExpand,
},
};
}
}
}
SwiftUI (iOS Exclusivo)
Desarrollado por Apple, SwiftUI es un framework para crear interfaces de usuario declarativas en iOS, macOS, watchOS y tvOS utilizando Swift.
SwiftUI (iOS Exclusivo)
Hot Preview para ver los cambios en tiempo real mientras codificas.
Diseñado para ser intuitivo y eficiente.
Compatible únicamente con el ecosistema Apple.
SwiftUI (iOS Exclusivo)
import SwiftUI
struct ContentView: View {
var body: some View {
Text("¡Hola SwiftUI!")
.padding()
}
}
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
Kotlin Multiplatform Mobile (KMM)
KMM es una solución de JetBrains para compartir lógica de negocio entre aplicaciones Android e iOS utilizando Kotlin.
Kotlin Multiplatform Mobile (KMM)
Excelente opción para proyectos con énfasis en Android.
Código compartido para lógica de negocio, pero interfaces independientes.
Totalmente interoperable con Java.
Kotlin Multiplatform Mobile (KMM)
expect fun getPlatformName(): String
fun createApplicationMessage(): String {
return "¡Hola desde ${getPlatformName()}!"
}
actividad de reforzamiento
pulsa aquí para resolver la actividad