Documentos de Académico
Documentos de Profesional
Documentos de Cultura
By Danny S. Guamán
danny.guaman@epn.edu.ec
@dan2ysgl
43
Nov 2021 – Mar 2021
RESULTADOS DE APRENDIZAJE
44
1. Introducción a las 2. Introducción a las
aplicaciones web aplicaciones móviles
01
04 02
3. Aplicaciones web vs
4. Introducción al desarrollo de 03 aplicaciones móviles
apps multi-plataforma
AGENDA 45
1. Introducción a las 2. Introducción a las
aplicaciones web aplicaciones móviles
01
04 02
3. Aplicaciones web vs
4. Introducción al desarrollo de 03 aplicaciones móviles
apps multi-plataforma
AGENDA 46
INTERNET VS LA WEB
Introducción a las
1 aplicaciones web
¿Qué es Shodan?
plataforma
https://www.shodan.io/
CLIENTES, SERVIDORES Y
LA NUBE
Introducción a las
1 aplicaciones web
Clientes:
Dan acceso a información y servicios en Internet
Introducción a las
2 aplicaciones móviles
Servidores:
Alojan la información y los servicios
Aplicaciones web vs.
3 Aplicaciones móviles
4 Introducción al
desarrollo de apps multi-
Tiendas de aplicaciones
plataforma
Instalan aplicaciones en móviles y tabletas
Las aplicaciones usan las normas de la Web (URL, HTTP, ....)
MÁQUINA SERVIDORA I
(HOST)
Introducción a las
1 aplicaciones web
2
Introducción a las
aplicaciones móviles
Una máquina servidora tiene una dirección “conocida” en
Internet
Dirección simbólica (de dominio o DNS): upm.es,google.com, …
Cada dirección de dominio tiene una dirección IP (binaria) asociada
Aplicaciones web vs.
3 Aplicaciones móviles Hay 2 tipos de direcciones IP: IPv4 e IPv6
IPv4: versión 4 del protocolo IP con dirección de 32 bits o 4 octetos
ejemplo: 192.9.0.144, 127.0.0.1 (localhost - mi máquina), ...
IPv6: versión 6 del protocolo IP (última) con dirección de 128 bits
Introducción al
4
desarrollo de apps multi- ejemplo: 2001:db8:85a3::8a2e:370:7334, ....
plataforma
Servidor (host)
SERVIDORES Y puerto 25 email:
dirección SMTP I
PUERTOS IP puerto 80
Web:
HTTP
1
Introducción a las
aplicaciones web
Puerto
Dirección de 16 bits dentro de la máquina servidora
Es donde se instala el programa servidor
2
Introducción a las El programa servidor es lo que normalmente denominamos servidor
aplicaciones móviles
Cliente y servidor se comunican a través de un protocolo: HTTP, SMTP, .....
Utilizando el interfaz de sockets TCP/IP para comunicar entre ambos
3 Aplicaciones web vs. Los servicios tienen un protocolo y un puerto por defecto
Aplicaciones móviles
Web: protocolo HTTP (puerto 80), HTTPS (443)
Email: protocolo SMTP (puerto 25), POP3 (110), IMAP143)
Shell segura: protocolo SSH (puerto 22)
Introducción al
4
desarrollo de apps multi-
plataforma Si un servidor no está en el puerto por defecto
Su dirección debe incluir el puerto, p.ej. epn.edu.ec:8080, 192.9.0.144:8080
I
MÁQUINA WEB
SERVIDORA (HOST)
Introducción a las
1 aplicaciones web
• Principales funciones:
2
Introducción a las • El servidor espera las solicitudes de conexión
aplicaciones móviles
• Cuando se recibe una solicitud de conexión, el servidor crea un nuevo proceso para
gestionar esta conexión
Aplicaciones web vs.
• El nuevo proceso establece la conexión TCP y espera las peticiones HTTP
3 Aplicaciones móviles
• El nuevo proceso invoca un software que mapea la URL solicitada a un recurso en el
servidor
• Si el recurso es un archivo, crea una respuesta HTTP que contiene el archivo en el
4 Introducción al
desarrollo de apps multi-
cuerpo del mensaje de respuesta
plataforma
• Si el recurso es un programa, ejecuta el programa y devuelve el resultado
W3
LA WWW ( WORLD WIDE WEB)
Introducción a las
1 aplicaciones web
Ir a la siguiente diapositiva:
W3
HIPERTEXTO
Introducción a las
1 aplicaciones web
Introducción al
4
desarrollo de apps multi-
plataforma
W3
HIPERTEXTO
Introducción a las
1 aplicaciones web
• Otro ejemplo:
2
Introducción a las
aplicaciones móviles • Use este código para crear un
hipertexto:
• <a href=“http://URL”>Texto a visualizar.</a>
Aplicaciones web vs.
3 Aplicaciones móviles • <a href=https://www.epn.edu.ec>EPN</a>
• <a href=https://www.google.com>Google
Home</a>
Introducción al
4
desarrollo de apps multi-
plataforma
google.com
URL W3
http://google.com/picture.png
Introducción a las
1 aplicaciones web
URL (Uniform Resource Locator)
Dirección de un recurso en un servidor en Internet
2
Introducción a las
aplicaciones móviles
Internet soporta muchos tipos de servicios diferentes
Cada tipo de servicio utiliza un URL y protocolo diferentes
Algunos ejemplos de tipos de URLs
Aplicaciones web vs.
3 Aplicaciones móviles
4 Introducción al
URL de correo (email): identifica el buzon de usuario,
incluye
desarrollo de apps multi-
plataforma
Protocolo de la Web
Procesa recursos identificados por un URL en un servidor remoto
Introducción a las
1 aplicaciones web
Métodos o comandos principales de HTTP
GET: trae al cliente (lee) un recurso identificado por un URL
Introducción a las
POST: crea un recurso identificado por un URL
2 aplicaciones móviles
PUT: actualiza un recurso identificado por un URL
DELETE: borra un recurso identificado por un URL
3
Aplicaciones web vs.
....... (hay mas comandos)
Aplicaciones móviles
epn.edu.ec Clientes 2, 3 y 4 solicitan recursos:
Cliente 1 solicita recurso: http://epn.edu.ec/.../......html
http://www.epn.edu.ec/rec5.html
google.com HTTP GET
Introducción al
4
desarrollo de apps multi-
plataforma
HTTP GET
gob.ec
APLICACIÓN WEB W3
HTML
Introducción a las
2 aplicaciones móviles
Lenguaje de marcado de páginas Web
define la estructura del contenido de documentos de hipertextos (una página Web)
1
Introducción a las
aplicaciones web
HTML
Lenguaje de marcado
Introducción a las
CSS
2 aplicaciones móviles
Estilo la visualización
JavaScript
3 Aplicaciones web vs.
Aplicaciones móviles
Lenguaje de programación
Introducción al
4
desarrollo de apps multi-
plataforma
WEBAPPS O APLICACIONES DE
W3
CLIENTE
Aplicaciones que residen en un servidor
Introducción a las
pero se ejecutan en un cliente
1 aplicaciones web
Se identifican con un URL: http:/www.epn.edu.ec/apps/webapp.html
El cliente trae la aplicación del servidor con el protocolo HTTP (GET)
2
Introducción a las Las apps se construyen con las tecnologías de la Web
aplicaciones móviles
Introducción al
4 Respuesta HTTP:
desarrollo de apps multi-
plataforma página Web con script
• Lenguaje de scripting: un
lenguaje de programación • ¿Qué puede hacer un
2
Introducción a las
aplicaciones móviles ligero JavaScript?
• Scripting en el navegador: • Poner texto dinámico en una página
HTML
3
Aplicaciones web vs. JavaScript
Aplicaciones móviles
• Reaccionar a eventos
• Diseñado para añadir
• Leer y escribir elementos HTML
interactividad a las páginas
Introducción al HTML • Validar datos antes de enviarlos al
4
desarrollo de apps multi-
plataforma
servidor
• Suele estar incrustado en las • Crear cookies
páginas HTML
W3
PROGRAMACIÓN DEL LADO DEL
SERVIDOR
Introducción a las
1 aplicaciones web
2
Introducción a las • Scripting en el servidor:
aplicaciones móviles
• Requisitos:
a) DJANGO
Introducción a las
2 aplicaciones móviles • Un framework (marco de trabajo) basado en Python para el desarrollo de
aplicaciones web.
• Download: https://www.djangoproject.com/
Aplicaciones web vs.
3 Aplicaciones móviles b) PYTHON
• Lenguaje de programación interpretado de propósito general
• Download: https://www.python.org/
Introducción al
4
desarrollo de apps multi-
plataforma
c) PYCHARM
• Entorno de Desarrollo Integrado para Python
• Download: https://www.jetbrains.com/es-es/pycharm/
W3
APP WEB: HOLA MUNDO
Introducción a las
1 aplicaciones web
Introducción al
4
desarrollo de apps multi-
plataforma
W3
APP WEB: HOLA MUNDO
Introducción a las
1 aplicaciones web
En el fichero urls.py, asignar la vista
• En el fichero views.py, cambiamos la vista de index
recién modifica para sea enviada a los
(página HTML) a mostrar a los clientes: clientes cuando hagan una petición al
2
Introducción a las
aplicaciones móviles index.html:
Introducción al
4
desarrollo de apps multi-
plataforma
W3
APP WEB: HOLA MUNDO
Introducción a las
1 aplicaciones web
Introducción al
4
desarrollo de apps multi-
plataforma
W3
RECURSOS ADICIONALES
Introducción a las
1 aplicaciones web
Introducción a las
• W3School HTML Tutorial
2 aplicaciones móviles
• W3School CSS Tutorial
• W3School Python Tutorial
Aplicaciones web vs.
3 Aplicaciones móviles • Cliente web de Python (requests)
• Django Tutorial
Introducción al
4
desarrollo de apps multi-
plataforma
1. Introducción a las 2. Introducción a las
aplicaciones web aplicaciones móviles
01
04 02
3. Aplicaciones web vs
4. Introducción al desarrollo de 03 aplicaciones móviles
apps multi-plataforma
AGENDA 70
(PARTIAL) APPS DEPLOYMENT ENVIRONMENT
App developers/
App providers
Introducción a las
1 aplicaciones web
Supervisory authority
publish
User
<<Data subject>>
App framework
Internet
Sensors and data structures
(GPS, address book, identifiers, Wi-Fi, Bluetooth, …) Advertising
providers
Mobile device
1
Introducción a las
• Google Play Store is the
aplicaciones web
official distribution platform
of Android apps.
• Interface between developers
2
Introducción a las
aplicaciones móviles
and users
• Google Play Store hosts:
• Apps (APKs)
3 Aplicaciones web vs.
Aplicaciones móviles
• Privacy policy
• Other relevant metadata,
including app version, permissions,
app category, installs number, user
reviews, etc.
Introducción al
4
• CLIIP platform already crawls
desarrollo de apps multi-
plataforma
mobile apps, privacy policies
and metadata.
APPS DEPLOYMENT ENVIRONMENT
Introducción a las
1 aplicaciones web
Introducción al
4
desarrollo de apps multi-
plataforma
Introducción a las
2 aplicaciones móviles
Introducción al
4
desarrollo de apps multi-
plataforma
THE APP CERTIFICATE
<uses-permission
android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission
2
Introducción a las Permissions android:name="android.permission.GET_ACCOUNTS" />
aplicaciones móviles
<uses-permission
android:name="android.permission.READ_PHONE_NUMBERS" />
<application>
<activity
android:theme="@ref/0x7f0f0008"
Aplicaciones web vs.
3 Aplicaciones móviles android:label="@ref/0x7f0e0028"
android:name="privapp.dit.upm.es.devicedata.MainActivity">
<intent-filter>
• As already mentioned, an app can be composed of four types of components (each is a potential entry point):
Intents
Introducción al
4
desarrollo de apps multi-
plataforma
83
Source: https://developer.android.com/guide/platform
Android Framework versions
Introducción a las
1 aplicaciones web
Introducción a las
2 aplicaciones móviles
Introducción al
4
desarrollo de apps multi-
plataforma
84
Source: https://en.wikipedia.org/wiki/Android_version_history
Android File System
6 main device partitions (and wipping effects)
/boot: kernel and initrd (unable to boot anymore)
Introducción a las
1 aplicaciones web /system: Android OS (but for kernel and initrd) (no OS, still bootable)
/recovery: Alternative boot partition for recovery
/data: User data partition (contacts, settings, apps) (Factory reset)
Introducción a las
2 aplicaciones móviles /cache: Frequently accessed data and app components
/misc: Miscellaneous system settings (hardware, Ids) (malfunctioning)
86
Android Debug Bridge
ADB is a command-line tool that lets you communicate with a device
-UNIX Shell to run commands on the device from a computer
Introducción a las
1 aplicaciones web -Many different functionalities:
·Extract APKs
·Debug apps
Introducción a las
2 aplicaciones móviles -Part of the Android SDK Platform Tool
·Download from https://developer.android.com/studio/releases/platform-tools
Unzip the file platform-tools folder
3 Aplicaciones web vs.
Aplicaciones móviles
·Enable USB debugging in your device system settings
Settings > About phone Tap Build number 7 times
Settings > About phone > Developer options > USB debugging ON
Introducción al
·Connect your device over USB
4
desarrollo de apps multi-
plataforma
Open a terminal and go to the platform_tools folder
Run adb devices
The first time you need to authorize access on the device screen
87
Details: https://developer.android.com/studio/command-line/adb
Android Debug Bridge
Simple exercises
-Get to your device shell
Introducción a las
1 aplicaciones web adb shell
-Check where you are, who you are and your groups:
pwd
Introducción a las
2 aplicaciones móviles whoami
groups
-Check your filesystem and permissions
3 Aplicaciones web vs.
Aplicaciones móviles
ls –la
-Try to find an app you have got installed e.g.
Gmail
Introducción al
Whatsapp
4
desarrollo de apps multi-
plataforma
88
Details: https://developer.android.com/studio/command-line/adb
App Lifecycle
Apps are written in Java, Kotlin or C/C++
-Java source code is converted into DEX bytecode (portable)
Introducción a las
1 aplicaciones web -The DEX bytecode is translated to native machine code via
ART/Dalvik runtimes
2
Introducción a las
aplicaciones móviles
Apps are distributed as an Android Package (APK) file:
-Compiled code (.dex)
-Native code (if any)
3 Aplicaciones web vs. -Application resources
Aplicaciones móviles
-Data
-Manifest file (AndroidManifest.xml)
Introducción al
4
desarrollo de apps multi- Apps can be downloaded:
plataforma
-From official marketplaces e.g. Google Play Store
-From alternative repositories e.g. APKMirror
89
·Only free apps, but includes older versions
Android security fundamentals
Android is a multi-user Linux operating system:
-By deafult, each app is a different user
Introducción a las
1 aplicaciones web -Each process has its own virtual machine
-By default, every app runs in its own process
·The system starts the process when needed
Introducción a las
2 aplicaciones móviles ·The system shuts down the process if no longer required, or
when resources (memory) are needed
Types of components:
-Activity: Entry point for user interaction, representing a single screen
2
Introducción a las
aplicaciones móviles
with a user interface. (Subclass of android.app.Activity)
-Service: Entry point for a background processing (Subclass of
android.app.Service)
·Started services run until their work is completed, either with
3 Aplicaciones web vs.
Aplicaciones móviles foreground notice or purely in background.
·Bound services provide an API for client-server interactions.
-Broadcast receiver: Entry point for events’ notification (Subclass of
Android.content.BroadcastReceiver)
Introducción al
4
desarrollo de apps multi-
plataforma
-Content provider: Entry point for the management of private/shared
data using different channels (Subclass of
android.content.ContentProvider)
91
android.content.Intent
Asynchronous messaging object used to request the system to start
an action from another component (Activity/Service/Receiver)
Introducción a las
1 aplicaciones web
Introducción al
4
desarrollo de apps multi-
plataforma
92
MOBILE APP: HOLA MUNDO
Introducción a las
1 aplicaciones web
• Pre-requesitos:
a) ANDROID STUDIO
Introducción a las
2 aplicaciones móviles
• https://developer.android.com/studio
b) TERMINAL MÓVIL CON S.O. ANDROID
Aplicaciones web vs.
3 Aplicaciones móviles
Introducción al
4
desarrollo de apps multi-
plataforma