Você está na página 1de 14

Introducción al desarrollo de

aplicaciones
[1.1] ¿Cómo estudiar este tema?

[1.2] Aplicaciones de escritorio

[1.3] Lenguaje de programación

[1.4] Entornos de desarrollo integrado

[1.5] Aplicaciones web

[1.6] Aplicaciones móviles

[1.7] Aplicaciones en la nube

TEMA
Esquema

TEMA 1 – Esquema
Aplicaciones Software

Aplicaciones de escritorio Aplicaciones web Aplicaciones móviles Aplicaciones en la nube

2
Jav a .NET Jav aScript PHP Android Studio Swift Google Cloud Plataform

Eclipse XCode

Netbeans

© Universidad Internacional de La Rioja (UNIR)


Plataformas de Desarrollo de Software
Plataformas de Desarrollo de Software

Ideas clave

1.1. ¿Cómo estudiar este tema?

Para estudiar este tema lee las Ideas clave que encontrarás a continuación.

En este tema haremos un análisis y clasificación de las aplicaciones software


empezando por las aplicaciones de escritorio. Luego haremos un breve repaso de los
lenguajes de programación más usados comercialmente hoy día y de los entornos de
desarrollo integrado (IDE) disponibles para desarrollar aplicaciones con esos lenguajes.

Posteriormente, hablaremos tanto de los lenguajes de programación como de las


plataformas de desarrollo software para los otros tipos de aplicaciones:

» Aplicaciones web.
» Aplicaciones móviles.
» Y aplicación en la nube.

TEMA 1 – Ideas clave 3 © Universidad Internacional de La Rioja (UNIR)


Plataformas de Desarrollo de Software

1.2. Aplicaciones de escritorio

Tradicionalmente, entre los programas informáticos encontramos dos tipos de


software:

» Software de sistema.
» Y las aplicaciones software.

El software de sistema consiste en los programas de bajo nivel que controlan e


interactúan con el sistema operativo para dar soporte a las aplicaciones software. Así,
estas aplicaciones son programas diseñados para llevar a cabo ciertas tareas para
usuarios finales.

Hay muchas formas de clasificar las aplicaciones software:

» Según el tipo de programas (por ejemplo, suites o software de empresa).


» Según el ámbito de aplicación (horizontal o vertical).
» Según la plataforma donde se vaya a desplegar, que es la clasificación que nos
interesa en esta asignatura.

Según esta clasificación, podemos encontrar aplicaciones que se despliegan y se ejecutan


de forma autónoma en un sistema operativo en los ordenadores de escritorios o en los
portátiles, a las que se les llama aplicaciones de escritorio. Ejemplos de estas
aplicaciones son los editores de fotos, los procesadores de texto o los navegadores web.

Por otro lado, con la evolución constante de la tecnología y particularmente de Internet,


surgieron las aplicaciones web, que se ejecutan en un navegador web. Algunos
ejemplos son el webmail, aplicaciones de compra o banca online. Además,
posteriormente, con la aparición de nuevos dispositivos como teléfonos inteligentes o
tabletas, llegaron las aplicaciones móviles, también llamadas apps. Ejemplos de estas
aplicaciones que se ejecutan en los dispositivos móviles son Instagram, Wallet o
Skyscanner.

Por último, como evolución de las aplicaciones web ahora han surgido las aplicaciones
cloud, que son desplegadas en la nube. Estas aplicaciones en la nube pueden ser vistas
como una especie de combinación de las aplicaciones de escritorio, ya que se puede
trabajar con ellas de forma rápida y offline, y de las aplicaciones web, ya que no suelen

TEMA 1 – Ideas clave 4 © Universidad Internacional de La Rioja (UNIR)


Plataformas de Desarrollo de Software

almacenar los datos en el propio dispositivo si no que se suelen almacenarlos online en


la nube. Ejemplos de este tipo de aplicaciones son Dropbox, Google Drive o Evernote.

En resumen, hay una evolución constante de las aplicaciones software atendiendo al tipo
de plataforma donde vayan a ser desplegadas. Esto implica que el desarrollo de cada tipo
de aplicación sea diferente y que un ingeniero del software tenga que saber manejar los
distintos entornos o plataformas de desarrollo que van apareciendo.

Aplicaciones softweare

Aplicaciones Aplicaciones Aplicaciones Aplicaciones


de escritorio web móv iles en la nube

Figura 1. Aplicaciones software.

Además, cada tipo de aplicación se puede desarrollar usando una gran cantidad de
lenguajes de programación o tecnologías propias. Por ejemplo, para las
aplicaciones de escritorio uno de los lenguajes más usados es Java, pero encontramos
muchos otros lenguajes que se han ido usando a lo largo de los años y algunos que se
siguen usando ahora también. Así, al igual que con los diferentes tipos de aplicaciones,
el ingeniero del software, aunque sea para desarrollar solo aplicaciones de escritorio
tiene que aprender a manejar al menos los lenguajes de programación más populares.

1.3. Lenguaje de programación

No es el propósito de este tema repasar la historia de los lenguajes de programación ni


describir la gran cantidad de ellos que existe. Más bien nos centraremos en mencionar
aquellos lenguajes que se están usando hoy en día para las aplicaciones comerciales de
los tipos presentados en la anterior sección.

Intentaremos ayudar a los futuros ingenieros del software a responder a la pregunta


tantas veces realizada y sin una respuesta certera sobre «¿Qué lenguaje de programación
debo usar?» Y es que la respuesta depende mucho del tipo de aplicación y de
muchos otros factores.

TEMA 1 – Ideas clave 5 © Universidad Internacional de La Rioja (UNIR)


Plataformas de Desarrollo de Software

Por ejemplo, para las aplicaciones de escritorio, podemos resaltar, de entre la enorme
cantidad que hay, los lenguajes de programación multiplataforma más usados como
Java o Python, y por otro lado los lenguajes del framework .net (C#, Visual Basic,
etc.). La elección de uno u otro dependerá del propósito de la aplicación y del sistema
operativo donde tendrá que ser ejecutada.

Por ejemplo, NET ofrece una gran multitud de facilidades para desarrollar aplicaciones
Windows, pero si queremos que nuestra aplicación se ejecute también en Mac o Linux
sería más conveniente escoger Java o Python. La decisión entre cuál de estos dos usar
varía mucho hasta por los gustos o facilidad de aprendizaje del programador. En este
curso veremos aplicaciones sencillas tanto en Java como en .NET

En las siguientes secciones veremos los lenguajes de programación más usados en los
distintos tipos de aplicaciones, pero antes vamos a dar un repaso a las herramientas que
se usan para programar y desarrollar las aplicaciones.

1.4. Entornos de desarrollo integrado

Para programar en cualquiera de los lenguajes de programación que estamos viendo en


esta asignatura, como por ejemplo Java, sería suficiente con un editor de texto, y luego
compilar, por ejemplo, (javac programa.java) y ejecutar el programa compilado (java
programa.class). Pero conforme las aplicaciones se vuelven más complejas esta tarea se
vuelve más y más tediosa.

Entonces los programadores usan los entornos de desarrollo integrado (también


llamados IDE por sus siglas en inglés, Integrated Development Environment) para
desarrollar las aplicaciones software. Los IDE no son más que otra aplicación software
que proporciona a los programadores ciertas funcionalidades comunes para el desarrollo
del software.

TEMA 1 – Ideas clave 6 © Universidad Internacional de La Rioja (UNIR)


Plataformas de Desarrollo de Software

Las facilidades proporcionadas entornos de desarrollo comprenden desde la escritura


del programa hasta la ejecución del mismo, así que suelen contener las siguientes
herramientas:

» Editor de código fuente: para para escribir el código del programa de una forma
intuitiva, amigable y con un formato de texto acorde al lenguaje de programación.
» Herramientas para documentación: para generar (semi)-automáticamente y de
manera estándar la documentación de un programa.
» Herramientas de depuración: para ayudar a localizar e identificar errores
(depurar) en el código fuente paso a paso.
» Traductor: compilador o intérprete para convertir el código fuente en el código
objeto.
» Entorno de ejecución: para ejecutar el código de la aplicación desarrollada.

Figura 2. Entornos de desarrollo integrado.

Por ejemplo, para Java los entornos de desarrollo más usados son Eclipse y NetBeans,
que los estudiaremos a lo largo de esta asignatura. Aunque existen muchísimos más
como, IntelliJ IDEA, BlueJ, JDeveloper, DrJava, etc. Para Python también encontramos
muchos IDE ampliamente usados, pero podemos destacar Spyder Python que es un
entorno de código abierto y multiplataforma. También para Python podemos usar el
Pydev with Eclipse que también es de código abierto y multiplataforma, pero estaría
integrado en Eclipse. Por otro lado, para la plataforma .NET el IDE más comúnmente
usado y el que veremos en esta asignatura es Visual Studio.

TEMA 1 – Ideas clave 7 © Universidad Internacional de La Rioja (UNIR)


Plataformas de Desarrollo de Software

1.5. Aplicaciones web

Como ya hemos definido previamente, las aplicaciones web se ejecutan en los


navegadores web y además tienen una arquitectura cliente-servidor donde la parte del
cliente (también llamada en este caso la parte front-end) que muestra la interfaz de
usuario se suele programar con JavaScript. Este es el lenguaje de programación web
más usado con diferencia (además de por supuesto HTML para crear contenido estático
para las páginas web). Pero en el lado del servidor (back-end) encontramos mucha más
variedad: desde Java, Python, Ruby, C++, ASP .NET hasta PHP, especialmente diseñado
para el desarrollo web de contenido dinámico.

Hay muchos IDE disponibles para programar tanto en JavaScript como en PHP, entre
los que también podemos encontrar a Eclipse y NetBeans. En esta asignatura no veremos
los lenguajes ni plataformas de desarrollo específicas para las aplicaciones web. Nos
centraremos en las aplicaciones de escritorio, aplicaciones móviles y aplicaciones en la
nube.

1.6. Aplicaciones móviles

Hoy en día, en el mercado, los sistemas operativos usados para los teléfonos inteligentes
y tabletas, se han visto reducidos a dos, iOS para los iPhone e iPads y Android para otro
gran grupo de dispositivos móviles. Por lo tanto, las aplicaciones móviles para poder ser
ofertadas y bajadas de las store en dichos dispositivos (o sea, en la App Store de iOS y en
el Google Play de Android), deben ser desarrolladas para ambos sistemas operativos.

Actualmente, Android Studio es el IDE oficial para el desarrollo de aplicaciones para


Android, que se programan en un lenguaje de programación similar a Java. En esta
asignatura dedicaremos varios temas al desarrollo de aplicaciones para Android con
Android Studio, detallando varias de sus características.

En cambio, el lenguaje para iOS es uno propio. Ahora es el lenguaje de programación


Swift (antes era el Objective-C), que también es usado para las aplicaciones de escritorio
para Mac y para otros dispositivos de Apple. Es multiparadigma, es decir, es un lenguaje
de programación funcional e imperativo, orientado a protocolos y a objetos. Para
desarrollar aplicaciones en Swift, el IDE proporcionado por Apple es XCode, que es el
que introduciremos en un tema posterior de esta asignatura, aunque nos centraremos en
el desarrollo de aplicaciones para Android usando el Android Studio.

TEMA 1 – Ideas clave 8 © Universidad Internacional de La Rioja (UNIR)


Plataformas de Desarrollo de Software

1.7. Aplicaciones en la nube

La computación en la nube o cloud computing, define un nuevo modelo en el que los


proveedores cloud comparten recursos que son accesibles en Internet bajo demanda de
los usuarios. En la actualidad encontramos un numeroso conjunto de proveedores como
Google, Amazon, HP, Microsoft, Heroku, OpenShift, etc. Y cada proveedor desarrolla su
plataforma de manera aislada por lo que cada uno específica y requiere diferentes
mecanismos para el uso correcto de sus servicios.

Así, si queremos desarrollar y desplegar en la nube una aplicación que haga uso de los
servicios proporcionados por cierto proveedor cloud, tenemos que adaptarnos a sus
requisitos.

Aunque las aplicaciones pueden ser desarrolladas en local y luego desplegadas en el


proveedor cloud elegido, cada proveedor ofrece también una serie de herramientas o una
plataforma propia para el desarrollo de aplicaciones en la nube.

Por ejemplo, Google Cloud Platform es una plataforma que reúne las aplicaciones de
desarrollo web proporcionadas por Google para crear aplicaciones, usando la tecnología
almacenada en la nube. Los Amazon Web Services (AWS) son los servicios que Amazon
oferta y que en conjunto forman una plataforma de computación en la nube. Igualmente,
Microsoft proporciona el Visual Studio Tools para Microsoft Azure.

En esta asignatura veremos cómo desarrollar una aplicación utilizando la Google App
Engine de Google Cloud Platform.

TEMA 1 – Ideas clave 9 © Universidad Internacional de La Rioja (UNIR)


Plataformas de Desarrollo de Software

Lo + recomendado

No dejes de leer…

Aplicaciones de escritorio en comparación con aplicaciones web

En este artículo se describen las principales diferencias, ventajas e inconvenientes, entre


las aplicaciones de escritorio y las aplicaciones web, basándose en parámetros con el
mantenimiento, la facilidad de uso, la seguridad, la conectividad y el coste.

Accede al artículo a través del aula virtual o desde la siguiente dirección web:
http://www.streetdirectory.com/travel_guide/114448/programming/desktop_applicat
ions_vs_web_applications.html

¿Qué es la computación en la nube?

Griffith, E. (mayo, 2016). What is cloud computing? PC

Artículo de divulgación para entender la computación y las aplicaciones en la nube.

Accede al artículo a través del aula virtual o desde la siguiente dirección web:
http://uk.pcmag.com/networking-communications-software-
products/16824/feature/what-is-cloud-computing

TEMA 1 – Lo + recomendado 10 © Universidad Internacional de La Rioja (UNIR)


Plataformas de Desarrollo de Software

No dejes de ver…

Comprendiendo las aplicaciones software

Vídeo con una breve descripción sobre las aplicaciones software y los diferentes tipos de
aplicaciones que podemos encontrar.

Accede al vídeo a través del aula virtual o desde la siguiente dirección web:
https://www.youtube.com/embed/MYgy4rjV4J0

¿Qué es la nube?

Vídeo con una introducción sencilla a la computación en la nube con ejemplos sencillos
y visuales.

Accede al vídeo a través del aula virtual o desde la siguiente dirección web:
https://www.youtube.com/embed/gu4FYSFeWqg

TEMA 1 – Lo + recomendado 11 © Universidad Internacional de La Rioja (UNIR)


Plataformas de Desarrollo de Software

+ Información

A fondo

Comparativa de PHP, Python o Ruby

Cuando comenzamos un nuevo proyecto debemos saber qué lenguaje o lenguajes son
más adecuados.

Accede al artículo a través del aula virtual o desde la siguiente dirección web:
https://www.arsys.es/blog/programacion/comparacion-php-python-ruby/

Popularidad de los lenguajes de programación

Índice con los lenguajes de programación más populares y su evolución con respecto al
año pasado.

Accede al artículo a través del aula virtual o desde la siguiente dirección web:
http://pypl.github.io/PYPL.html

Popularidad de los Entornos de Desarrollo Integrado

Índice con los IDE más populares y su evolución con respecto al año pasado.

Accede al artículo a través del aula virtual o desde la siguiente dirección web:
http://pypl.github.io/IDE.html

Swift Programming Language

Libro con una introducción al lenguaje de programación usado por los dispositivos
Apple, Swift. En un tema posterior hablaremos un poco sobre las características de Siwft
pero no lo trataremos en profundidad.

Accede al artículo a través del aula virtual o desde la siguiente dirección web:
https://itunes.apple.com/es/book-series/swift-programming-
series/id888896989?mt=11

TEMA 1 – + Información 12 © Universidad Internacional de La Rioja (UNIR)


Plataformas de Desarrollo de Software

Test

1. ¿Qué aplicaciones software se ejecutan en un navegador?


A. Aplicaciones de escritorio.
B. Aplicaciones web.
C. Aplicaciones móviles.
D. Todas las aplicaciones se pueden ejecutar en un navegador.

2. Las aplicaciones software son:


A. Software de sistema.
B. Aplicaciones para almacenar datos.
C. Software de bajo nivel.
D. Aplicaciones que se ejecutan de forma autónoma.

3. ¿Cuál de estas funcionalidades no suele proporcionar un IDE?


A. Editor de código.
B. Compilador.
C. Generar documentación.
D. Análisis de requisitos.

4. Eclipse y NetBeans:
A. Son lo mismo.
B. Son IDE que se pueden usar para Java.
C. Son entrono de desarrollo solo para Java.
D. Son igual que .NET.

5. ¿Qué lenguaje se suele usar en el lado del cliente para las aplicaciones web?
A. Python.
B. JavaScript.
C. Ruby.
D. PHP.

TEMA 1 – Test 13 © Universidad Internacional de La Rioja (UNIR)


Plataformas de Desarrollo de Software

6. ¿Cuál es el IDE oficial de Android?


A. Android Studio.
B. Android SDK 2.0.
C. XCode.
D. Eclipse for Android.

7. Swift es:
A. El entorno de desarrollo para iOS.
B. Es el IDE para programar en Objective-C.
C. Es un lenguaje de programación multiparadigma.
D. Es un lenguaje de programación parecido a Java.

8. ¿Cuál de los siguientes no tiene un proveedor Cloud?


A. Amazon.
B. Google.
C. Eclipse.
D. Microsoft.

9. Las aplicaciones cloud:


A. Son igual que las aplicaciones web.
B. Son aplicaciones web que solo tienen la parte de servidor.
C. Son tanto las aplicaciones de escritorio como las aplicaciones web.
D. Tienen tanto algunas características de aplicaciones de escritorio como algunas
de las aplicaciones web.

10. Amazon Azure:


A. Es el IDE para las aplicaciones en la nube de Amazon.
B. AA es el conjunto de Amazon Web Servicies (AWS).
C. No existe.
D. Se programa utilizando una plataforma de desarrollo en la nube.

TEMA 1 – Test 14 © Universidad Internacional de La Rioja (UNIR)

Você também pode gostar