62580946 Programacion de Dispositivos Moviles 2011

download 62580946 Programacion de Dispositivos Moviles 2011

of 177

Transcript of 62580946 Programacion de Dispositivos Moviles 2011

Programacin de dispositivos mviles

Programacin de Dispositivos Mviles

Programacin de Dispositivos Mviles

ndice.

Introduccin3Qu es un dispositivo mvil?3

Historia de los dispositivos mviles3

Uniad 1.Tipos de dispositivos mviles6Plataformas y lenguajes8

Herramientas de desarrollo15

Consideraciones sobre el desarrollo. Limitaciones16

Usos actuales17

Perspectivas del futuro19

Cronograma20

Unidad 2.

Introduccin23

Coneptos bsicos de C#23

Mostrar nmeros en pantalla24Variables25Identificadores27

Comentario27Datos por el usuario: ReadLine28

Tipos de datos bsico29

Tipos de datos caracter32Secuencia de escape33

Toma de contacto con las cadenas de texto34

Los valores booleanos34

If35

Switch41While42Dowhile43For45Sentencia Break47

Sentencia continue48

Sentencia goto48

Array y cadena de texto49Estructuras o registros54Cadena de caracteres56Recorriendo con foreach61

Ordenaciones simples63Funciones66Variables locales y variables globales70Algunas funciones tiles74Funciones matemticas75Recursividad76Parametros de retorno de Main76Programacin orientada a objetos78Objetos y clases en C#78La herencia. Visibilidad80Cmo se disean las clases?83La palabra static83Constructores84Polimorfismo y sobrecarga86

Array de objetos88Funciones virtuales. La palabra override90Llamada a un mtodo de la clase padre94Sobrecarga de operadores95Windows Mobile 5.0 (aplicable a Windows Mobile 6.5)96Uso de Visual Studio 200596Controles en Compact Framework102Trabajo con los controladores107Trabajando con imgenes113ADO.NET Acceso a Datos122SQL Server 2005 Mobile Edition123Captura de datos150

Insertar datos152

Cambiar datos154

Borrar datos156

Sincronizacin de datos158Empaquetado y desplegado169Bibliografia175Introduccin.Desde la aparicin de la primera computadora comercial en 1980, el hombre ha intentado llevar consigo toda la informacin posible que le ayude a resolver sus problemas conforme se le vayan presentando durante el da, pero en ese tiempo era imposible por no contar con la tecnologa necesaria para ello.

Qu es un dispositivo mvil?Los dispositivos mviles (tambin conocidos como computadora de mano, Palmtop o simplemente handheld) son aparatos de pequeo tamao, con algunas capacidades de procesamiento, mviles o no, con conexin permanente o intermitente a una red, con memoria limitada, diseados especficamente para una funcin, pero que pueden llevar a cabo otras funciones ms generales.

Normalmente, son versiones limitadas en prestaciones, y por tanto en funcionalidades, de las computadoras porttiles o de sobremesa. Por cierto, las computadoras porttiles no se consideran como dispositivos mviles, ya que consumen ms batera y suelen ser un poco ms pesados de lo que se espera de algo pensado para llevar siempre encima.Un dispositivo mvil, entonces, es todo aquel aparato que pueda contener informacin, tenga un sistema operativo y haga una funcin en particular en la que se necesita almacenar, consultar y manipular informacin que se encuentre en el y que adems sea portable y de un tamao muy reducido.

Historia de los dispositivos mvilesEl primer dispositivo mvil, para muchos, es la Newton, desarrollada y comercializada por Apple, y que estuvo a la venta entre 1993 y 1998. La Newton era un dispositivo revolucionario para su tiempo, que implementaba un sistema de reconocimiento de escritura y que poda sincronizarse con una computadora de sobremesa (de Apple, claro est). Fue tan revolucionaria, y se adelant tanto a su tiempo, que fue un fracaso comercial, por lo que termin retirndose del mercado.

Panel de control de la Newton

Pero aunque la Newton pueda considerarse como la primera PDA, desde luego no fue el primer dispositivo porttil programable.

Durante los aos 80, tanto Casio como Hewlett-Packard desarrollaron y comercializaron varias calculadoras programables, que si bien no tenan la capacidad de sincronizar sus datos con una computadora de sobremesa, s tenan capacidades grficas, y accesorios que tal vez puedan sonar extravagantes ahora, como impresoras, o tarjetas de memoria extrables de 1Kb (s, un "k").

Sirva como ejemplo la Casio FX-750P, de la que el autor de este texto conserva un ejemplar que funciona desde el ao 1984, que tena una pantalla de una sola lnea, con 32 caracteres de 5x7 puntos, teclado QWERTY y teclado numrico, 4 KB de RAM, dos ranuras para tarjetas de memoria extrables de hasta 2 KB, y puerto serie por el que conectarla a una impresora. Y era programable en BASIC. Especificaciones de risa, verdad? No tanto, si se tiene en cuenta que la configuracin CLDC de J2ME slo obliga a que el telfono tenga 4KB de memoria, y que muchos de los mviles pre-Symbian tienen una memoria de 32 KB. Ms adelante veremos con un poco ms de detalle qu es eso de J2ME, y qu es la configuracin CLDC, pero por ahora basta con saber que es la especificacin que deben cumplir los mviles programables en java.Casio FX-750P

Las calculadoras programables de Casio rivalizaban en prestaciones con las de Hewlett-Packard. Si la FX-750P podra considerarse como el buque insignia de la marca japonesa, la serie HP48 lo era para los californianos. Las calculadores de esta serie, que se dividan en dos ramas, la S para los modelos estndar y la G para los de mayor funcionalidad, estuvo en produccin entre los aos 1990 y 2003. Las especificaciones comunes a todos los modelos de la gama eran una pantalla de 131x63 pxeles, un puerto de comunicaciones por infrarrojos y otro serie de 4 pines, y 512 KB de memoria. El modelo ms alto de la gama, la HP 48GX, soportaba dos tarjetas de expansin de memoria, de forma que se poda llegar a acumular un total de 5MB.

HP 48G

Tras la muerte de la Newton, nacieron los dos dispositivos que durante unos aos dominaron el mercado: la Pilot y el PocketPC.

Los dispositivos de Palm se adelantaron a los de Microsoft en un par de aos. En parte por ello, su salida a produccin fue un xito de ventas, llegando incluso a acumular, en 2001, un 60 por ciento del mercado americano. Sin embargo, Palm se resinti del declive global del mercado de las PDA, comenzando un declive que coincidi prcticamente en el tiempo con la entrada en el mercado del gigante de la informtica de consumo: Microsoft.

Grafitti, el sistema de reconocimiento de caracteres de Palm OS, obligaba a escribir de forma determinada.

En el ao 2000 vio la luz el primer PocketPC, el hijo de la Newton, y que al contrario que sta, s ha sobrevivido hasta hoy, pese a no ser un xito comercial de grandes dimensiones, gracias a la continuidad y el apoyo decidido de Microsoft.

Los primeros PocketPC tenan como sistema operativo el llamado Windows CE 3.0. Por su nombre podra parecer que era una versin aligerada del sistema operativo ms utilizado en el mundo, pero en realidad no tena mucho que ver con ste.

Compaq iPaq 3630, el primer PocketPC de xitoLa mayor razn para el xito del PocketPC ha sido su relativa sencillez de manejo y su integracin con computadoras de escritorio basados en Windows. La integracin es tal que para realizar una sincronizacin entre ambos basta con conectar el PocketPC a la computadora con un cable.

Actualmente, los PocketPC y las Palm tienen pantallas de resolucin VGA, en prcticamente todos los casos incorporan protocolos de comunicaciones inalmbricos, como Bluetooth o Wifi, o unidades de GPS. Por prestaciones, son, sin duda, los hermanos mayores del mundo de la movilidad.

Pero si las PDAs son las reinas en lo referente a prestaciones, en cuanto a unidades en el mercado, el rey indiscutible es el telfono mvil.

Quin no tiene un telfono mvil? En realidad, lo raro es que haya quien no tenga un telfono totalmente funcional guardado en un cajn, porque se ha comprado otro que, en el plazo de unos meses, multiplicaba por diez o por cien las prestaciones de su antiguo terminal.

Si la Newton, la Palm y el PocketPC han sido los que han abierto el camino, los que realmente han entrado con toda la fuerza posible a ocupar ese mercado han sido los telfonos mviles.

Pero cul es el motivo o los motivos para que haya tantos telfonos? Es difcil de decir con total seguridad, pero se puede resumir principalmente en tres.

Motorola MicroTAC

En primer lugar, el precio. Se pueden conseguir terminales por cero euros en ocasiones excepcionales, como al darse de alta con algn operador, pero en todo caso los precios de los telfonos de gama baja suele ser bastante asequible.

El segundo factor es ms complejo, pero puede resumirse en mira lo moderno que soy, qu mvil tengo". Hay quien lo llama techno-lust, hay quien lo llama ganas de aparentar o de chulear a las amistades, pero bsicamente se resume en que todo el mundo quiere tener el mvil ms moderno y con ms funcionalidades, sobre todo si es ms moderno y hace ms cosas que el del vecino. Esa obligacin por tener el dispositivo ms moderno viene motivada tambin en parte por la continua mejora de la tecnologa.

Cada vez los mviles pueden hacer ms cosas, y eso crea una doble necesidad. Por un lado, es necesario tener un dispositivo que permita hacer esas cosas, sean las que sean (grabar vdeo, escuchar mp3, ver los goles de tu equipo favorito en tiempo real). Pero eso tambin provoca que cada vez se intenten hacer ms cosas con el telfono, lo que vuelve a hacer necesario un terminal ms potente, que a su vez crear la necesidad de contenidos de ms calidad, lo que a su vez... Esto supone nuestro tercer factor: un crculo vicioso para el usuario pero que beneficia por igual a los fabricantes y a las operadoras.

Sin embargo, los mviles que verdaderamente pueden considerarse equivalentes a las PDAs son los de gama alta, o smartphones.El trmino smartphone es engaoso. Su traduccin literal sera telfonos inteligentes, y se utiliza indiscriminadamente para hacer referencia a cualquier telfono de gama alta, englobando tanto a dispositivos de la Serie 60 o superior de Symbian, como a los que funcionan bajo Windows Mobile o bajo Palm OS. De todas formas, la marca comercial SmartPhone es propiedad de Microsoft.

Sony Ericsson P910i

Porque, efectivamente, hay una lnea de telfonos que funcionan bajo Windows Mobile. Por un lado, los PocketPC Phone Edition, que son hbridos de telfono y PocketPC y por otro los llamados comercialmente SmartPhones. La diferencia entre ambos est, fundamentalmente, en la pantalla tctil. Los PocketPC Phone Edition tienen, mientras que los SmartPhones no, y que se manejan de forma similar a los mviles Symbian de gama alta. Tanto PocketPC Phone Edition como PocketPC se engloban dentro de la gama Windows Mobile de Microsoft.2

Tambin Palm mantiene su irreductible nicho de mercado dentro de los telfonos de gama alta: la serie Treo. Los Treo son hbridos de telfono y PDA, con teclado QWERTY, y funcionan, salvo uno de los modelos (en concreto el Treo 700w, que utiliza PocketPC Phone Edition) bajo PalmOS.

Treo 700w

En todo caso, el mercado de los telfonos de gama alta estaba copado, hasta hace muy poco, por los modelos con sistema Symbian.

Sin embargo, en los ltimos dos aos hemos asistido a la irrupcin del representante por excelencia del techno-lust el iPhone de Apple. Si Apple fue la que abri el camino con la Newton, es el que ha vuelto a revolucionar el mercado con el iPhone, en parte porque ha sido el nico fabricante que realmente ha conseguido desarrollar un dispositivo que integrara a todos los anteriores existentes por separado (telfono, reproductor mp3 y PDA), reinventando la forma en la que se interacta con l.Unidad 1Manejo del entorno de desarrollo mvilEl alumno har uso de la tecnologa mvil, herramientas de la plataforma y tcnicas necesarias que permitan la construccin e implementacin de desarrollo de programacin de aplicaciones para ejecutarse en dispositivos mviles.1.1 Diferencia las caractersticas de los dispositivos mviles y la plataforma de desarrollo con base en tecnologas y herramientas para aplicaciones mviles.

Tipos de dispositivos mviles.

Dado el variado nmero de niveles de funcionalidad asociado con dispositivos mviles, era necesario hacer una clasificacin de los mismos, por ello en el 2005, T38 y DuPont Global Mobility Innovation Team propusieron los siguientes estndares para la definicin de dispositivos mviles. Dispositivo Mvil de Datos Limitados (Limited Data Mobile Device): telfonos mviles clsicos. Se caracterizan por tener un pantalla pequea de tipo texto. Ofrecen servicios de datos generalmente limitados a SMS y acceso WAP.

Dispositivo Mvil de Datos Bsicos (Basic Data Mobile Device): se caracterizan por tener una pantalla de mediano tamao, men o navegacin basada en iconos, y ofrecer acceso a emails, lista de direcciones, SMS, y, en algunos casos, un navegador web bsico. Un tpico ejemplo de este tipo de dispositivos son los telfonos inteligentes (smartphones).

Dispositivo Mvil de Datos Mejorados (Enhanced Data Mobile Device): se caracterizan por tener pantallas de medianas a grandes (por encima de los 240 x 120 pixels), navegacin de tipo stylus, y que ofrecen las mismas caractersticas que el "Dispositivo Mvil de Datos Bsicos" (Basic Data Mobile Devices) ms aplicaciones nativas como aplicaciones de Microsoft Office Mobile (Word, Excel, PowerPoint) y aplicaciones corporativas usuales, en versin mvil, como Sap, portales intranet, etc. Este tipo de dispositivos incluyen los S.O. como Windows Mobile.

A grandes rasgos, y dependiendo del tamao los dispositivos se pueden dividir en tres clases.

1.- Telfonos. Son los ms pequeos de la casa, y por tanto los ms ligeros y ms transportables. En general, tambin son los ms baratos, aunque un telfono de gama alta puede superar en precio a muchos de sus hermanos mayores, las PDAs. Su funcin primordial era clara: recibir y realizar llamadas; aunque parece que dentro de poco va a comenzar a ser complicado encontrar telfono que sirvan para eso. Funcionalidades propias de computadoras, o de dispositivos de otro tipo, como la grabacin y edicin de vdeo, realizacin de fotografas, lectura de documentos, localizacin en mapas, navegacin por Internet, y muchas cosas ms, son no slo habituales, sino esperadas en cualquier telfono moderno.

El telfono mvil es un dispositivo inalmbrico electrnico basado en la tecnologa de ondas de radio, que tiene la misma funcionalidad que cualquier telfono de lnea fija. Su principal caracterstica es su portabilidad, ya que la realizacin de llamadas no es dependiente de ningn terminal fijo y no requiere ningn tipo de cableado para llevar a cabo la conexin a la red telefnica. Aunque su principal funcin es la comunicacin de voz, como el telfono convencional, su rpido desarrollo ha incorporado funciones adicionales como mensajera instantnea (sms), agenda, juegos, cmara fotogrfica, agenda, acceso a Internet, reproduccin de video e incluso GPS y reproductor mp3.

Motorola DynaTAC 8000X, uno de los primeros telfonos mviles fabricados en gran cantidad.

La evolucin del telfono mvil ha permitido disminuir su tamao y peso, desde el Motorola DynaTAC, el primer telfono mvil en 1983 que pesaba 780 gramos, a los actuales ms compactos y con mayores prestaciones de servicio. Adems a lo largo de estos aos se ha llevado a cabo el desarrollo de bateras ms pequeas y de mayor duracin, pantallas ms ntidas y de colores, la incorporacin de software ms amigable.

Inicialmente los telfonos mviles slo permitan realizar llamadas de voz y enviar mensajes de texto. Conforme la tecnologa fue avanzando se incluyeron nuevas aplicaciones como juegos, alarma, calculadora y acceso WAP (acceso a Internet mediante pginas web especialmente diseadas para mviles).

Smartphones o telfonos inteligentes.

Un smartphone (telfono inteligente en espaol) es un dispositivo electrnico que funciona como un telfono mvil con caractersticas similares a las de una computadora personal. Es un elemento a medio camino entre un telfono mvil clsico y una PDA ya que permite hacer llamadas y enviar mensajes de texto como un mvil convencional pero adems incluye caractersticas cercanas a las de una computadora personal. Una caracterstica importante de casi todos los telfonos inteligentes es que permiten la instalacin de programas para incrementar el procesamiento de datos y la conectividad. Estas aplicaciones pueden ser desarrolladas por el fabricante del dispositivo, por el operador o por un tercero.

Los telfonos inteligentes se distinguen por muchas caractersticas, entre las que destacan las pantallas tctiles, un sistema operativo as como la conectividad a Internet y el acceso al correo electrnico. El completo soporte al correo electrnico parece ser una caracterstica indispensable encontrada en todos los modelos existentes y anunciados en 2007, 2008 y 2009.

Otras aplicaciones que suelen estar presentes son las cmaras integradas, la administracin de contactos, el software multimedia para reproduccin de msica y visualizacin de fotos y video-clips y algunos programas de navegacin as como, ocasionalmente, la habilidad de leer documentos de negocios en variedad de formatos como PDF y Microsoft Office. Una caracterstica comn a la mayora de smartphones es una lista de contactos capaz de almacenar tantos contactos como la memoria libre permita, en contraste con los telfonos clsicos que tienen un lmite para el nmero mximo de contactos que pueden ser almacenados. Casi todos los telfonos inteligentes tambin permiten al usuario instalar programas adicionales.

2.- PDAs. Organizadores electrnicos o computadoras de mano. Su nombre (PDA) significa Personal Digital Assistant (asistente personal digital), un trmino acuado en sus primeros aos de historia, pero que resume bien su funcionalidad principal, que es servir como organizadores, con agenda, calendario, gestin de contactos, y que posteriormente han ido creciendo, de forma que actualmente sirven tanto como aparatos en los que leer un libro como en los que encontrarse en un mapa. La lnea que los separa de los telfonos es cada vez ms difusa.

Apple Newton MessagePad 2000

Inicialmente los PDAs incluan aplicaciones estrictamente relacionadas con su funcin como agenda electrnica, es decir, se reducan a calendario, lista de contactos, bloc de notas y recordatorios. Con el paso de tiempo han ido evolucionando hasta los dispositivos actuales que ofertan un rango mucho ms extendido de aplicaciones, como juegos, acceso al correo electrnico o la posibilidad de ver pelculas, crear documentos, navegar por Internet o reproducir archivos de audio.

Las caractersticas del PDA moderno son pantalla sensible al tacto, conexin a una computadora para sincronizacin, ranura para tarjeta de memoria, y al menos Infrarrojo, Bluetooth o WiFi.

La irrupcin de Microsoft Windows CE (2000) y Windows Mobile (2003) en el sector los dot de mayores capacidades multimedia y conectividad. Las PDAs de hoy en da traen multitud de comunicaciones inalmbricas (Bluetooth, WiFi, IrDA, GPS,) que los hace tremendamente atractivos hasta para cosas tan inverosmiles como su uso para domtica o como navegadores GPS.

3.- Consolas. En realidad esta categora debera llamarse dispositivos orientados a jugar, porque son ms que simples consolas. Los dos ejemplos actualmente en el mercado son la Sony PlayStation Portable (PSP) y la Nintendo DS, que no slo sirven para jugar, sino que integran algunas de las funcionalidades tpicas de una PDA, como reproduccin de archivos multimedia, integracin con agenda y calendario, o navegador de Internet.

PSPEl mercado del videojuego porttil ha sufrido muchas transformaciones a lo largo de su historia. Partiendo de videojuegos electrnicos porttiles y experimentos poco exitosos de Videoconsolas porttiles a finales de los 70 y principios de los 80, pero que sentaron las bases de las futuras generaciones porttiles y el nuevo milenio donde las consolas porttiles son verdaderos centros multimedia. El sector de los videojuegos porttiles ha tenido dos pocas lgidas, en torno a la cuarta generacin de consolas de sobremesa cuando las porttiles suponan un 17% del mercado de los videojuegos, y vive su mximo auge en la sptima generacin de consolas suponiendo el 56% del mercado del videojuego de esa generacin.

Plataformas y lenguajes soportados.Cada una de las plataformas tiene sus particularidades, no slo en cuanto al manejo del dispositivo por el usuario, sino tambin a la hora de desarrollar aplicaciones para las mismas.

No ser lo mismo programar una aplicacin para Windows Mobile que para Symbian, entre otras cosas porque no todas las plataformas soportan los mismos lenguajes de programacin.Partiendo de la definicin de sistema operativo: Capa compleja entre el hardware y el usuario, concebible tambin como una mquina virtual, que facilita al usuario o al programador las herramientas e interfaces adecuadas para realizar sus tareas informticas, abstrayndole de los complicados procesos necesarios para llevarlas a cabo.

Podemos deducir que el uso de uno u otro S.O determinarn las capacidades multimedia de los dispositivos, y la forma de stas de interactuar con el usuario.

Existen multitud de opciones, si bien las ms extendidas son Symbian, BlackBerry OS, Windows Mobile, y recientemente iPhone OS y el sistema mvil de Google, Android, adems por supuesto de los dispositivos con sistema operativo Linux.

Las caractersticas bsicas de cada uno son las siguientes:

Windows MobileMicrosoft lanz su propio Windows para mviles, antes conocido como Windows CE o Pocket PC, tiene una larga historia como segundn en el campo de los PDA o computadoras de bolsillo, sin embargo hace pocos meses super por primera vez al hasta entonces lder, Palm OS.

Windows Mobile es un sistema operativo escrito desde 0 y que hace uso de algunas convenciones de la interfaz de usuario del Windows de siempre.

Una de las ventajas de Windows Mobile sobre sus competidores es que los programadores pueden desarrollar aplicaciones para mviles utilizando los mismos lenguajes y entornos que emplean con Windows para PC. En comparacin, las aplicaciones para Symbian necesitan ms esfuerzo de desarrollo, aunque tambin estn optimizadas para cada modelo de telfono.

Pantalla de inicio tpica de Windows Mobile 6

Este sistema se pretende vender como una versin muy aligerada de Windows, pero en realidad no tiene mucho que ver con l. El paradigma de funcionamiento es similar, basado en ventanas, aunque stas se comportan de forma muy diferente a como lo hacen en su hermano mayor de escritorio. Por ejemplo, al cerrar la ventana de un programa ste no se cierra realmente, sino que se sigue ejecutando como si se hubiera minimizado.

El punto fuerte de estos dispositivos es que ofrecen funcionalidades similares a las de sus hermanos mayores, Por ejemplo, se pueden editar documentos de word, hojas de clculo de excel, leer libros en formato pdf o chm, recibir y enviar correo electrnico, manejar una agenda, la libreta de contactos, sincronizar datos con el PC, navegar por internet, utilizar un GPS... en definitiva, casi lo mismo que en un PC, pero sin teclado y con la pantalla bastante pequea.

Versin para Windows Mobile de Microsoft Word

La entrada de datos se realiza a travs de la pantalla, que es tctil, y gracias al sistema de reconocimiento de escritura que implementan, que permite trabajar de una forma bastante natural y rpida.

La mayora de las aplicaciones para estos dispositivos se desarrollan en .Net, la plataforma de desarrollo de Microsoft, o directamente en C++, aunque an quedan, como reminiscencia de sus inicios como Windows CE, algunas aplicaciones escritas en Embedded C++ o Embedded Basic, que eran dos entornos de desarrollo basados respectivamente en C++ y Basic, pero con muchas limitaciones.

Pero en la actualidad casi todos los desarrollos para Windows Mobile se realizan en C++ o en .Net, basndose en el Compact Framework.

El principal problema a la hora de desarrollar aplicaciones para estos dispositivos es el precio de las herramientas de desarrollo. Estas herramientas (Visual Studio, un entorno de desarrollo que soporta varios lenguajes como C#, C++, J#, JScript o ASP .Net) son de altsima calidad, pero de un precio que no est al alcance de todos los que se quieran aventurar a escribir una aplicacin para PocketPC.

Por otra parte, el hecho de que Microsoft est detrs de la plataforma, dndole todo su apoyo, se nota en la cantidad y la calidad de la documentacin disponible para los desarrolladores. Newsletters, una seccin slo para dispositivos en el MSDN, blogs de los ingenieros de Microsoft que trabajan en Windows Mobile, actualizaciones de la documentacin en DVDs peridicos... en resumen, mucho y muy bueno.

Tal vez por eso mismo, y pese al precio del entorno de desarrollo, la competencia es muy alta.Hay muchas compaas que producen aplicaciones para Windows Mobile, y que invierten mucho dinero en su desarrollo. No es, por tanto, un nicho de mercado en el que sea sencillo introducirse.

En cualquier caso, siempre que se vaya a desarrollar aplicaciones para esta plataforma, deben tenerse en cuenta las limitaciones especficas de la misma, sobre todo a la hora de intentar desarrollar interfaces que sean lo ms point-and-click posibles, y que necesiten de la menor introduccin de textos posible.Symbian

Si los PocketPC estn basados en un sistema operativo de Microsoft llamado Windows Mobile, la gran mayora de los telfonos mviles funcionan gracias a un sistema operativo llamado Symbian. Hace unos aos, a estos telfonos se les llamaba con el nombre genrico de SmartPhones.

Este es el sistema operativo para mviles ms extendido entre smartphones, y por tanto el que ms aplicaciones para su sistema tiene desarrolladas. Actualmente Symbian copa ms del 65% del mercado de sistemas operativos.

Symbian es un consorcio en el que participan los mayores fabricantes de telfonos mviles, con Nokia a la cabeza. Sony Ericsson, BenQ (que hace poco absorbi a Siemens), Fujitsu, Lenovo, Motorola, Panasonic, Samsung o Sharp estn representados en Symbian, y son por tanto, partcipes en el desarrollo y la expansin del sistema.

De todos estos fabricantes, el que mayor cuota de mercado tiene es Nokia (que con algunas fluctuaciones, viene siendo desde hace aos de alrededor del 40%), que adems es el fabricante que primero apost por este sistema operativo, y el que ms uso hace de l. Por tanto, a partir de ahora, al referirme a telfonos Symbian, lo har sobre todo a telfonos Nokia.

Symbian es un sistema operativo escrito en C++, por lo que presenta muy bajo consumo de recursos del dispositivo, a la vez que se ejecuta con gran rapidez. El sistema operativo Symbian se presenta en varios "sabores". En concreto, Nokia divide sus dispositivos Symbian en tres familias, que se llaman respectivamente Serie 40, Serie 60 y Serie 80.

La Serie 40 es la que agrupa a los telfonos Symbian con pantallas ms pequeas (en general, hasta de 240x320 pxeles), y tiene ciertas limitaciones sobre las otras series, sobre todo en lo referente a la cantidad de recursos del telfono que puede poner a disposicin de las aplicaciones que se ejecuten sobre l.

La Serie 60 es la ms extendida, y es donde suelen estar los telfonos de gama media y alta de Nokia, a los que muchas veces se hace referencia como telfonos multimedia. Con alguna excepcin, suelen tener pantallas ms grandes que los de la serie 40, y suelen ser telfonos especficamente optimizados para ejecutar aplicaciones J2ME.

Su principal virtud es la capacidad que tiene el sistema para adaptar e integrar todo tipo de aplicaciones. Admite la integracin de aplicaciones y, como sistema operativo, ofrece las rutinas, los protocolos de comunicacin, el control de archivos y los servicios para el correcto funcionamiento de estas aplicaciones. La tecnologa del sistema operativo Symbian se ha diseado teniendo en cuenta puntos clave como el poder proporcionar la energa, memoria y gestin de entrada y salida de recursos requeridos especficamente en los dispositivos mviles. Tambin, supone una plataforma abierta, sta es la clave, que ana telecomunicaciones y los estndares globales de internet.

Los usuarios de Symbian sealan como principal ventaja del sistema el hecho de que exista una amplia seleccin de aplicaciones disponibles para todo tipo de telfonos mviles. Destacan tambin la compatibilidad con los estndares de conectividad y redes como Bluetooth, WiFi, GSM, GPRS, CDMA y WCDMA.

Captura de una interfaz Series 60La Serie 80, finalmente, es la de los llamados Communicators, esos telfonos que se abren longitudinalmente y que esconden teclados QWERTY. En realidad son un paso intermedio entre el telfono y la PDA.

Aparte de la implementacin que hace Nokia de Symbian, Sony Ericsson implementa otro sabor ms de ese sistema, llamado UIQ, que se maneja por teclado o a travs de una pantalla tctil. Estos dispositivos suelen implementar sistemas de reconocimiento de escritura, y los ms conocidos son, como he dicho, la serie P de Sony Ericsson.

Actualmente, en el mercado de los telfonos mviles Symbian es el sistema ms extendido, aunque no el nico. La mayora de los fabricantes siguen implementando sus propios sistemas, por lo que sigue sin haber una uniformidad o coherencia entre dispositivos.

Symbian UIQ

Las tres grandes posibilidades tecnolgicas a la hora de desarrollar aplicaciones para telfonos mviles son C++, J2ME y Flash Lite.C++Es el lenguaje de programacin por excelencia para aplicaciones que necesitan extraer el mximo del terminal, tanto en capacidad de procesamiento y por lo tanto en velocidad de ejecucin, como en utilizar las posibilidades de hardware que ofrezca el dispositivo. El ejemplo ms claro de aplicacin candidata a ser realizada en C++ sera un juego de conduccin, con capacidades multiusuario a travs de bluetooth.

Es ideal, por tanto, para aplicaciones crticas (como por ejemplo, sistemas operativos para telfonos como Symbian).

C++ es un lenguaje de programacin, de los que se llaman orientados a objetos, que en realidad es una evolucin del lenguaje ms utilizado en la historia de la informtica: el lenguaje C. Desarrollar en C++ es bastante complicado para casi cualquier programador. Hacen falta, por tanto, programadores de un perfil muy especializado o muy alto, y el lenguaje en s no hace posible el desarrollo de aplicaciones con gran rapidez, con lo que los proyectos desarrollados en C++ suelen ser ms caros que aquellos producidos con otros lenguajes.J2MEJ2ME es un subconjunto del lenguaje Java. Pero qu es el lenguaje Java? Es un lenguaje de programacin desarrollado a principios de los aos noventa por James Gosling y algunos de sus colegas de Sun Microsystems. Las principales caractersticas de este lenguaje son, por un lado, que es de los llamados orientados a objetos, lo que supuestamente permite desarrollar aplicaciones ms complejas con mayor facilidad, y por otro, que fue diseado para ser independiente de la plataforma, lo que supuso una gran novedad en su momento.

Sin embargo, el caso de J2ME es especial, ya que es de todo, menos independiente de la plataforma.

La especificacin J2ME est dividida en dos grandes grupos, dependiendo de la cantidad de funcionalidades para las que se quiera dar soporte. Esos grupos son las llamadas Configuraciones (en toda la documentacin sobre J2ME se suele hacer referencia a ellas por su nombre en ingls: Configurations). Hay dos configuraciones, que dividen la plataforma en dos grandes grupos de dispositivos.

El mapa con las configuraciones y perfiles J2ME. Lioso?

Por un lado, los dispositivos ms potentes, son los que soportan la Configuracin CDC. Durante mucho tiempo en este grupo slo caban las PDAs (dispositivos como la Palm, por ejemplo), dadas las exigencias de memoria y tamao de pantalla para cumplir con la especificacin.

La otra configuracin, la llamada CLDC, es la que agrupaba a los dispositivos con menor capacidad de procesamiento, y es donde siempre han estado los mviles.

Actualmente, Nokia, el mayor fabricante de telfonos mviles, est en proceso de portar toda su gama de telfonos Symbian a la Configuracin CDC, un indicador ms de cmo el hardware va mejorando progresivamente en prestaciones.

Dentro de cada una de las configuraciones, no todos los dispositivos soportan las mismas funcionalidades. stas est divididas en los llamados Perfiles (o en su nombre original, Profiles). Los dos perfiles de la CLDC son el MIDP 1.0 y el MIDP 2.0. Como podra suponerse, el perfil MIDP 2.0 incorpora libreras que no aparecen en los telfonos MIDP 1.0, con las que se pueden implementar aplicaciones que accedan a la cmara, que puedan capturar imgenes, vdeos, que accedan a servicios web, etc.

Los dispositivos que se adhieran a la especificacin de cada uno de esos perfiles tienen que dar soporte a una serie de funcionalidades obligatoriamente. Esas funcionalidades vienen empaquetadas en lo que se llama especificaciones. Algunas de esas especificaciones son obligatorias para poder decir que el dispositivo soporta uno u otro de los perfiles, mientras que otras son opcionales y pueden o no ser implementadas por el fabricante. Por ejemplo, un telfono que implemente grficos 3D deber hacerlo soportando la especificacin jsr-184.

Pero por qu es todo tan complicado? Porqu es necesaria tanta especificacin, perfiles, etc?. Para asegurar un mnimo de compatibilidad entre dispositivos desarrollados por fabricantes dispares, y para asegurar al programador un mnimo comn denominador en el que su aplicacin funcione.

En todo caso, la adhesin a una especificacin no asegura que las cosas funciones igual y bien en todo tipo de dispositivos, por eso es importante testear pronto y testear a menudo, y en el mayor nmero de dispositivos posibles.

Adems, debe tenerse en cuenta que ninguna especificacin obliga a un tamao de pantalla determinado. Por tanto, hay que ser extremadamente cuidadoso en delegar la presentacin en pantalla en el propio dispositivo. Lo cual tampoco es necesariamente un problema, ya que la propia plataforma funciona as, dejando al dispositivo que sea el que pinte las cosas. Eso tiene como ventaja que si se hace bien, siempre saldr bien, y como inconveniente, que no se puede suponer que las aplicaciones se vayan a ver igual en dos telfonos distintos. Pero donde es ms importante esa limitacin es a la hora de desarrollar juegos, a que suelen ser a pantalla completa, y con elementos de interfaz propios, y en los que se suele buscar a toda costa la consistencia entre dispositivos.

En todo caso J2ME es la plataforma de desarrollo para mviles ms extendida, porque no est limitada slo a los telfonos con sistema Symbian, porque durante mucho tiempo ha sido la nica disponible para los desarrolladores, y porque algunos aos en los que no ha sido la nica, programar en J2ME era la nica forma de implementar muchas funcionalidades. De hecho, an hoy, sigue siendo la plataforma ms extendida, con mayor nmero de desarrolladores, y con mayor nmero de aplicaciones disponibles.Flash LiteFlash Lite es un adaptacin de la plataforma Flash para dispositivos mviles. Actualmente coexisten varias versiones, Flash Lite 1.1, Flash Lite 2.0 y Flash Lite 2.0

Flash Lite 1.1, es la versin ms extendida, sobre todo en Asia, y basada en la versin 4 de player de flash. Y es la ms extendida por dos razones primordiales; en primer lugar porque es la que ms tiempo lleva disponible, y en segundo lugar porque es la que necesita de hardware menos potente para su ejecucin.

Emulador incorporado en Adobe Flash 8Al estar basado en la versin 4 del player de flash, slo soporta la sintaxis de ActionScript de Flash 4, una sintaxis bastante extraa y alejada de las convenciones de programacin modernas. Esa forma de programar necesita de vinculaciones muy fuertes entre el cdigo y los grficos, por lo que es muy difcil que los desarrolladores que no estn acostumbrados a ella se puedan adaptar con facilidad.

Adems, para desarrollar cualquier aplicacin con cierta interactividad, termina siendo necesario repartir el cdigo entre multitud de elementos grficos, por lo que la complejidad del desarrollo crece exponencialmente con la complejidad de la aplicacin. Por no hablar del coste de mantenimiento.

Tampoco se pueden obviar las limitaciones propias de flash Lite 1.1. Por ejemplo, no se pueden guardar datos en la memoria del telfono, no es nada fcil cargar datos en tiempo de ejecucin, y directamente no es posible cargar imgenes, por ejemplo.

Pese a todo, al igual que para crear aplicaciones complejas, Flash Lite 1.1 no es, desde luego, la mejor herramienta, s es ideal para realizar otro tipo de aplicaciones, como fondos de pantalla animados, salvapantallas, o incluso micro juegos muy sencillos. Por qu? Precisamente por estar basado en Flash 4, que permite desarrollar animaciones con interactividad sencilla en tiempos mucho menores que cualquier otra plataforma.

Todo cambi, sin embargo, con la llegada de Flash Lite 2.0.

En primer lugar, Flash Lite 2.0 est basado en el Flash Player 7. En realidad, la funcionalidad que permite es muy similar a la de cualquier aplicacin flash basada en esa versin del player.

Por tanto, ahora es posible guardar datos en la memoria del telfono o cargar ficheros XML con estructuras de datos complejas a travs de la conexin GPS. Para el programador la mejora ha sido tambin sustancial, ya que puede aplicar las tcnicas modernas de programacin: programacin orientada a objetos, patrones de diseo, aplicaciones dirigidas por eventos Ahora es posible desarrollar una aplicacin Flash Lite de la misma forma en la que se hara una J2ME, por ejemplo.

Aunque las mejoras son sustanciales, tambin hay un aspecto en el que Flash Lite 2 cojea, y es los altos requerimientos de hardware que necesita para su ejecucin. Por ahora slo est disponible para telfonos de la gama alta de la Serie 60 de Nokia.

Flash Lite 3 es la evolucin lgica de la plataforma, soporta vdeo incluyendo H.264, y un entorno de desarrollo rpido. Sin embargo, al menos en Asia, donde al menos en cuestin de dispositivos se est a la cabeza del desarrollo mundial, y por varios cuerpos de distancia, la implantacin de la plataforma es mnima.iPhone OSEl iPhone, el ltimo en llegar, rompe tambin con las lneas maestras en cuanto a desarrollo se refiere, marcadas por sus antecesores.

El sistema operativo utilizado es una versin aligerada de Mac OS X, el sistema detrs de las computadoras de Apple, y por tanto, las herramientas de desarrollo que se deben utilizar son las mismas que para trabajar en escritorio.Aunque oficialmente no se puede instalar ninguna aplicacin que no est firmada por Apple ya existen formas de hacerlo, la va oficial forma parte del iPhone Developer Program (de pago) y hay que descargar el SKD que es gratuito.

iPhone dispone de un interfaz de usuario realmente interesante, la nica pega es la cantidad de restricciones que tiene, aunque quizs Apple se d cuenta que para triunfar mucho ms es mejor liberar y dar libertad a su sistema.

Aunque su tiempo de vida es corto ya copa casi el 7% del mercado.

Objetive-CEl lenguaje que debe utilizarse para desarrollar aplicaciones nativas para iPhone OS es Objective-C, un superset de C (una especie de C enriquecido), de forma que el desarrollador se apoya en un extenso Framework orientado a objetos, escalable y altamente modular, llamado Cocoa.

En realidad, Cocoa es una coleccin de frameworks, que proporcionan todas las piezas necesarias para construir una aplicacin: desde elementos de interfaz hasta gestin de trfico de red.

Una aplicacin para iPhone, casualmente desarrollada por el autor.

Pese a lo modular y extenso de los frameworks, el mayor problema con el que se encuentran los recin llegados a la plataforma es que la curva de aprendizaje de Objective-C es bastante acusada. Especialmente si, adems, se viene de un entorno de desarrollo Windows, ya que no slo hay que cambiar de lenguaje, sino de forma de desarrollo por completo.

Adems, para poder desarrollar aplicaciones para iPhone es necesario estar registrado (previo pago) como desarrollador con Apple, para as poder obtener los certificados digitales necesarios para que las aplicaciones funcionen en los dispositivos. Por si fuera poco, la nica forma de poner esas aplicaciones en esos dispositivos, es a travs de una tienda de aplicaciones controlada por Apple.Blackberry OS

BlackBerry es un sistema operativo multitarea que est arrasando en la escena empresarial, en especial por sus servicios para correo y teclado QWERTY. Actualmente BlackBerry OS cuenta con un 11% del mercado.

BlackBerry aparece en el mercado justo en el momento en que comenzaba a demandarse un sistema operativo que permitiera utilizar de una forma fcil, cmoda y rpida los servicios de correo electrnico. Hoy en da es tambin proveedor de servicios de correo electrnico a dispositivos que no son BlackBerry, gracias al programa BlackBerry Connect. As, en lneas generales, en un dispositivo BlackBerry es posible redactar, enviar y recibir todo tipo de mensajes de correo electrnico, al igual que en el programa que se utiliza en ua computadora. Adems, es posible realizar y contestar a las llamadas que se emitan a travs de la red de telefona mvil, lo que permite sustituir el telfono mvil. Tambin, como evolucin lgica, los dispositivos de este fabricante permiten la navegacin por internet en pginas HTML o WAP y tienen la capacidad de enviar o recibir mensajes SMS.

Por lo dems, este sistema operativo incorpora mltiples aplicaciones y programas que convierten a los dispositivos en completos organizadores de bolsillo con funciones de calendario, libreta de direcciones, bloc de notas, lista de tareas, entre otras.AndroidAndroid es un sistema operativo para telfonos, basado en el ncleo de Linux, y que, aunque disponible para cualquier fabricante como open-source, actualmente es el motor de los dispositivos comercializados por Google (en el momento de escribir este texto, slo existe un dispositivo, el conocido en Asia como HTC Dream, y en el resto del mundo como G1).

Android tambin proporciona al desarrollador un completo Framework Java, un intento de normalizacin de la selva de especificaciones en que se ha convertido J2ME, que al igual que en el caso del iPhone, est orientado a facilitar y hacer ms rapido el desarrollo, por un lado, y a proporcionar un look and feel especfico y reconocible de la plataforma.

Tambin se proporciona una tienda de aplicaciones, donde se pueden vender desarrollos comerciales.En este momento, an est por ver si la plataforma termina por alcanzar el momento suficiente como para terminar despegando.

Google promete una plataforma de desarrollo gratuita, flexible, econmica en el desarrollo de aplicaciones y simple, diferenciada de los estndares que ofrecen Microsoft o Symbian.

Palm OSConvertido en el autntico lder del mercado desde su aparicin en 1996, comenz a ceder protagonismo con la llegada del nuevo siglo, hasta que en 2003 el fabricante se vio en la necesidad de dividirse y la plataforma pas a formar parte de la nueva empresa denominada PalmSource, que en 2005 fue adquirida por la compaa japonesa Access.

Los motivos de este retroceso en cuanto a ingresos de la compaa son fciles de imaginar, la lenta pero imparable penetracin de Windows Mobile, la evolucin de decenas de modelos de telfonos mviles inteligentes (la mayora con Symbian) y la aparicin de la plataforma y dispositivos BlackBerry comenzaron a dejar en segundo plano a las PDA que no incorporaban telefona mvil. Esta plataforma ha evolucionado desde la clsica interfaz de un asistente de mano, a incorporar todo tipo de programas y funcionalidades, como telfono, correo electrnico, mensajera y navegacin en internet, adems de compatibilidad con los archivos de Office, msica, vdeo y fotografas. En la actualidad ya se desarrollan dispositivos Palm Treo que incorporan el sistema operativo Windows Mobile.

El sistema operativo Palm OS, parece que se encamina a su plena operabilidad en

Linux, lo que le augura un futuro prometedor.

Comparativa

El Kernel de un sistema operativo es el ncleo del mismo, el software responsable de facilitar a los distintos programas acceso seguro a la computadora o, en forma ms bsica, es el encargado de gestionar recursos, a travs de servicios de llamada al sistema. Por ello, es importante conocer qu ncleo utiliza cada uno de los sistemas operativos de esta comparativa.

La principal diferencia entre un kernel de libre distribucin y uno propietario radica en que los de libre distribucin como Linux cuenta con una amplia y experimentada comunidad de desarrolladores, gracias a los cuales se detectan rpidamente agujeros de seguridad, fallos, etc. y se realizan mejoras tanto para solucionar estos problemas como para adaptarse a los nuevos tiempos. En cerrados o propietarios, es ms costoso encontrar errores y mejorarlos, ya que deben ser los propios desarrolladores del sistema los que detecten y realicen las mejoras, por lo que deben dedicarse ms recursos a investigacin en estos sistemas consiguiente aumento del coste del mismo.

Adaptabilidad. La capacidad o facilidad para poder adaptarlo a diferentes terminales o en diferentes mquinas. En este sentido, Android es el que mayor adaptabilidad presenta, ya que cada vez se est empleando en ms dispositivos, no slo telfonos mviles, sino tambin en netbooks y como sistema empotrado. En cambio el resto de sistemas operativos tienen una adaptabilidad algo menor y ms complicada.Conectividad. Hoy en da, para poder sacar el mximo partido a todas las funcionalidades que ofrecen cada uno de ellos es indispensable contar con acceso a Internet. En este sentido, se valora enormemente el hecho de que cuenten con acceso WiFi a Internet, as como conectividad 3G que permitan conectarse a Internet desde cualquier lugar.

Actividad 1: Diferencia de plataformas

Distingue mediante una investigacin, las plataformas orientadas a desarrollo mvil donde considere:

La descripcin de la arquitectura.

Sistema operativo que utiliza.

Lenguajes de Interfaces de servicios.

Lenguajes de desarrollo y bibliotecas.

Base de datos que soporta.

Emuladores con los que cuenta.

Elabora una tabla comparativa de cada plataforma encontrada donde plasme las diferencias.Presenta la tabla comparativa elaborada y emite un reporte de la actividad.Actividad 2: Diferenciacin de dispositivos mviles y caractersticas de tipos de aplicaciones

Diferenciacin de Dispositivos Mviles

Distingue mediante una investigacin los dispositivos mviles donde se pueda implementar una solucin, con base en:

El tipo de sistema operativo que soporta.

La base de datos que soporta.

Diferenciacin de caractersticas de tipos de aplicaciones

Distingue mediante una investigacin las caractersticas de los tipos y usos de aplicaciones mvil que se puedan implementar:

En Aplicaciones para conectividad con dispositivos presentes en red local o Internet describiendo:

Cobertura de la red para obtener una comunicacin aceptable.

Uso de Repositorio de datos locales.

En Aplicaciones orientadas a dispositivos mviles seleccionando entre:

Sitio Web.

Aplicacin especfica para el aparato.

Elabora una tabla comparativa de cada dispositivo y aplicacin, anexando tambin las plataformas encontradas de la actividad anterior donde plasme las diferencias.

Menciona tambin las conveniencias e inconveniencias del uso de cada dispositivo, aplicacin y plataforma en usos con equipos mviles

Emite un reporte de la actividad realizada.1.2 Utiliza el entorno de desarrollo de programacin mvil de acuerdo a los componentes y herramientas del lenguaje para la construccin de aplicaciones.

Herramientas de desarrollo.Las herramientas de desarrollo a utilizar dependern de la plataforma para la que hayas planteado tu aplicacin.

Si tu aplicacin debe funcionar en dispositivos Windows Mobile, debers utilizar el Visual Studio de Microsoft, un entorno de desarrollo bastante caro, como ya hemos dicho, pero que es casi sin discusin el mejor de todos los disponibles, y para el que vas a contar con ms documentacin de la que puedas llegar a absorver.

Debers basar tu aplicacin, o bien en cdigo C++ nativo, con lo que necesitars unos conocimientos tcnicos bastante elevados antes de comenzar el desarrollo, o bien apoyndote en el .Net Compact Framework, que es un subconjunto del .Net Framework, pudiendo programar en C#.

Para dispositivos Symbian, la opcin ms extendida es, como hemos visto, J2ME. Las herramientas de desarrollo para J2ME no estn tan refinadas como las de Windows Mobile, pero an as, hay un entorno especfico, el NetBeans Mobility Pack, y plugins y add-ons para los IDES java ms populares: Eclipse e IDEA.

Los tres entornos, una vez instalados los plugin correspondientes, permiten desarrollar, empaquetar y testear aplicaciones J2ME en los emuladores incorporados. Pero nunca debe olvidarse que los emuladores no son el dispositivo real, sino, como su nombre indica, emulaciones del dispositivo que estn corriendo en una mquina que es varios rdenes de magnitud ms rpida. Por tanto, lo que en un emulador funciona bien, puede que en el dispositivo no funcione tan bien.

Por eso, siempre que se desarrolle para un dispositivo mvil, pero sobre todo si se est haciendo en J2ME o Flash Lite, hay que probar los programas en el dispositivo segn se estn desarrollando. Y cuanto antes se empiece a probar, mejor, de esa forma los posibles problemas aflorarn antes, y sern ms fciles de resolver.

En el caso del iPhone ser necesario un Mac con procesador Intel (no existe SDK para Windows ni para Linux), y aprender un lenguaje y una metodologa de desarrollo completamente nueva y, a da de hoy, no excesivamente documentada.Pero a la hora de decidir sobre la tecnologa a utilizar para desarrollar una aplicacin destinada a ser ejecutada en un dispositivo mvil, conviene preguntarse, entre otras, al menos un par de las siguientes preguntas:

A quin va dirigida la aplicacin?. Es una aplicacin para todo tipo de usuarios, o es una aplicacin empresarial?. Los usuarios van a tener un entrenamiento especfico para manejarla?

Se est desarrollando un juego o una aplicacin?. La diferencia es muy importante, sobre todo si es un juego, ms an si se toma en consideracin tambin la pregunta anterior. Dependiendo del tipo de usuario al que est dirigido se puede suponer el tipo de dispositivo para el que se deber hacer el desarrollo.

Hay algn requerimiento previo?. Tal vez sea una pregunta obvia, pero si el cliente slo quiere dar soporte a dispositivos Symbian

Qu tal tus conocimientos tcnicos? A todos nos gusta aprender nuevas tecnologas, pero a la hora de sacar adelante un proyecto es mejor atenerse a lo ya conocido y a aquello en lo que se es eficaz y productivo.

Qu presupuesto tienes? Al final, se es el factor determinante, que terminar de resolver cualquier duda que tengas.

Consideraciones sobre el desarrollo. Limitaciones.Hay dos limitaciones fundamentales a que tener en cuenta a la hora de desarrollar un aplicacin para ser ejecutada en un dispositivo mvil, y son las particularidades de hardware y las de la conexin.

Aunque los dispositivos cada vez tienen ms memoria y ms capacidad de proceso, siguen siendo hermanos pequeos de las computadoras de escritorio. Por tanto, debe tenerse especial cuidado con no realizar demasiadas animaciones, ni gastar ciclos de proceso en procedimientos que no sean estrictamente necesarios. La pantalla es pequea, mal iluminada, y se suele mirar en movimiento, como ya hemos visto con anterioridad, por lo que podemos aprovechar eso en nuestro beneficio.

Por ello la entrada de datos debe ser lo ms sencilla posible. En el caso de las PDAs, se realizar escribiendo en la pantalla con un lpiz, para que sea el dispositivo el que realice el reconocimiento de la escritura. Aunque ya no hace falta escribir de forma especial, como ocurra con el sistema de reconocimiento de escritura de las primeras Pilot, llamado Graffiti, para que el dispositivo entienda la letra, tampoco se puede ser demasiado descuidado con la caligrafa.

En los mviles, sin embargo, la entrada de datos se va a hacer, lo ms probablemente, con una sola mano, y en condiciones no muy apropiadas. El teclado, en la mayora de los casos, tiene slo 10 teclas tiles, que se van a utilizar en movimiento.

En cualquiera de los dos casos, hay que intentar, por tanto, formatear las pantallas de entrada de datos para que se pueda realizar el mayor nmero de operaciones o bien punteando encima de botones, en el caso de las PDAs, o bien navegando con el joystick y confirmando con alguno de los botones principales en el caso de los telfonos; evitando en lo posible que el usuario tenga que dirigirse al teclado. Siempre es preferible que haya, por ejemplo, un desplegable en el que elegir entre Calle, Va, Avenida y Paseo, a que haya un campo de texto en el que se tenga que escribir, letra a letra, Calle.

Adems, no hay que olvidar que los interfaces de los distintos dispositivos son desesperantemente heterogneos. Adems, ni el tamao de las pantallas, ni el tamao ni la ubicacin de las teclas ayuda a la hora de introducir datos por el usuario. Por eso, siempre hay que intentar desarrollar los interfaces de las aplicaciones de forma que no sean necesarias muchas pulsaciones de teclas, e intentar que, cuando sea necesario pulsar alguna tecla sea alguna de las softkeys, o teclas especiales. En el caso de los dispositivos mviles, ms que en cualquier otro, menos es ms.No slo menos es ms, sino que la colocacin de los elementos de ese menos son los que van a marcar la diferencia. En realidad, no es slo una cuestin de colocacin en pantalla, sino de organizacin de la informacin a presentar, de lo que se llama arquitectura de la informacin.

La premisa es bastante sencilla: dadas las dificultades para la introduccin de datos, hay que intentar simplificarla al mximo. Para ello, es muy importante organizar el interfaz de la aplicacin de forma que los procesos de entrada de datos sean lo ms naturales posibles, y que el usuario nunca pase por pantallas cuya presentacin no sea estrictamente necesaria. Pero en realidad esas precauciones no hay que tomarlas slo a la hora de introducir datos, sino tambin a la hora de presentar informacin, y a la hora de estructurar la navegacin por la aplicacin.

Normalmente es mucho ms efectivo presentar la informacin agrupada de forma jerrquica, para de ese modo discriminar cuanto antes qu es lo que va a necesitar ver el usuario, y no mostrarle nada que no le resulte estrictamente necesario.

En cuanto a las conexiones, lo primero que hay que tener siempre en cuenta es que, al contrario que en las aplicaciones web estndar, no estn siempre disponibles. Por tanto, nunca se puede suponer que el dato que es necesario para poder seguir adelante en la ejecucin de la aplicacin, va a poderse obtener a travs de una conexin a Internet.

Adems, debe tenerse en cuenta que antes de realizar una conexin a cualquier servicio tarificable, el dispositivo va a solicitar confirmacin al usuario, y que ste puede denegarla, lo cual es perfectamente posible, dado el precio de las conexiones, que son facturables por peso, por cantidad de bytes enviados y descargados, no por tiempo, por lo que siempre hay que optimizar todo lo posible lo que se vaya a enviar en uno u otro sentido.

Por si no fueran dificultades suficientes, la latencia de la red, es decir, el tiempo de espera entre una peticin de datos y el comienzo de la llegada de la respuesta, es mucho mayor que la de cualquier aplicacin web normal. Por tanto, hay que ser muy cuidadosos a la hora de informar al usuario sobre lo que est ocurriendo en todo momento, si se est en espera de datos, si ya se estn recibiendo, dando siempre, si es posible, estimaciones sobre el tiempo que resta para la terminacin de todas las tareas.

Tampoco se puede suponer que la ejecucin de la aplicacin sea lineal y completa. La funcin bsica de muchos dispositivos es emitir y recibir llamadas telefnicas. Por tanto, nuestra aplicacin debe ser capaz de comportarse adecuadamente al recibir una llamada, entre otras cosas porque la funcin de telfono tiene asignada la prioridad ms alta de todas las del dispositivo, es decir, se va a parar la ejecucin de cualquier aplicacin cuando entre una llamada nueva. Se debe tener prevista una forma de congelar el estado de la aplicacin justo antes de recibir la llamada, para que cuando sta termine, y tras la confirmacin del usuario, se pueda volver a ese estado. Por tanto, si es un juego, todos los elementos del mismo deben permanecer estticos hasta que la llamada termine y el usuario confirme que desea continuar con la aplicacin.

En general, hay que intentar probar las aplicaciones en el dispositivo para el que se vayan a desarrollar cuanto antes. De hecho, hay que probar mucho, y comenzar a probar lo antes posible. Nunca hay que fiarse de emuladores, entre otras cosas, porque se ejecutan en hardware cuya capacidad de procesamiento es superior a la del dispositivo en varios rdenes de magnitud.

Por tanto, al desarrollar para dispositivos mviles, es muy importante comenzar a probar pronto, y probar a menudo, a fin de evitar sorpresas desagradables.Usos actuales.Durante todo este documento hemos estado hablando de las plataformas, los lenguajes de programacin, los sistemas operativos, pero en realidad, para qu sirven? Qu se puede hacer con un mvil? Qu se est haciendo actualmente?.

Actualmente, el desarrollo para dispositivos mviles se puede dividir en dos categoras. Por un lado, el desarrollo web puro y duro (webs hechas para ser navegadas desde mviles), y por otro, la programacin de aplicaciones para ser ejecutadas en el propio mvil.

No hay que olvidar que, actualmente, casi cualquier dispositivo implementa algn protocolo de comunicacin, sea ste WI-FI o Bluetooth, por lo que es sencillo que, si no es capaz de conectar a Internet por s mismo, como hara un telfono, pueda hacerlo emparejndose con algn otro dispositivo que s pueda. Dicho de otra forma, con un telfono se puede uno conectar a Internet. Con un PocketPC o una Palm es probable que no, pero se puede hacer sin muchos problemas emparejndolo con un telfono.

Actualmente hay varios portales de servicios basados en web que proporcionan interfaces especficos para ser navegados desde dispositivos mviles. Compra de entradas para espectculos, consulta de callejeros, de mapas de carreteras, obtencin de informacin sobre restaurantes o farmacias de la zona en la que se encuentra el usuario, son algunos de los servicios ms extendidos.

Metro, un programa multiplataforma con planos de Metro de varias ciudades de todo el mundo

El apartado de las aplicaciones ejecutables en el telfono est sin duda dominado por los microjuegos. Las limitaciones grficas y sonoras, sobre todo de los telfonos, no slo no son un problema sino que ayudan a proporcionar a los juegos cierto aire retro, de mquina recreativa de los 80, que les hace ms atractivos. Su bajo peso, adems, les hace ideales para ser descargados directamente al telfono mediante envo de sms a nmeros especiales, por ejemplo, por lo que su sistema de distribucin tiene todas las ventajas de las distribuciones virales.

Adems de los minijuegos, otro campo en el que estn surgiendo muchas oportunidades para los desarrolladores es en la construccin de aplicaciones basadas en servicios de localizacin, utilizando datos de posicionamiento de unidades GPS, y combinando esos datos con los obtenidos sobre el entorno del usuario desde un servicio web.

Tom Tom Mobile en un Symbian Serie 60

Tambin se est trabajando bastante en aplicaciones que puedan servir como apoyo a personas con minusvala, tanto visual como auditiva. Sistemas de localizacin, de reconocimiento ptico, sistemas de traduccin de y a Braille porttiles

Por otro lado, los telfonos son pequeos terminales con completas capacidades multimedia, e integran cmaras fotogrficas que son capaces de grabar vdeo y reproductores multimedia que no tienen nada que envidiar a los desarrollados para las computadoras de escritorio. De esas cmaras integradas han salido algunas de las fotografas o vdeos ms famosos en los ltimos meses, como los de los atentados de Londres, o los de algunos nios pegando a sus compaeros de clase.

Acceso a flickr.com desde Opera Mobile

Sin embargo, pese al amplio abanico de funcionalidades de los dispositivos, pese a su enorme ndice de penetracin en el mercado, pese a las cantidades de dinero que se alrededor de las descargas de contenidos multimedia o del envo de sms, an no se ha producido el despegue definitivo del desarrollo de aplicaciones. Hablamos mucho de lo cercano que est el despegue definitivo de las aplicaciones mviles, de lo que se ve a poder hacer con los terminales de ltima generacin y las conexiones de banda ancha, pero lo cierto es que ese discurso se lleva escuchando, casi sin alteraciones, desde hace ya varios aos.

Lo cierto es que el mercado mueve millones anualmente en descargas de contenidos multimedia, como tonos o fondos de pantalla. Es muy sencillo descargarse un tono polifnico enviando un sms, y al realizarse el pago no en dinero contante y sonante, sino descontando el importe del saldo o de la prxima factura, tampoco se tiene sensacin de estar realizando un gasto real. Sin embargo, el mismo tono puede editarse en una computadora de sobremesa, convertirlo en un formato compatible con el telfono, y enviarlo a ste por BlueTooth, por ejemplo, con lo que el coste final sera cero. El porqu se gasta tanto dinero en servicios que puede realizar uno mismo con un poco de trabajo a los mandos de su computadora, mientras otros, que han costado millones de euros en desarrollo, como por ejemplo la videoconferencia por 3G, prcticamente no se utilizan, es uno de los misterios ms grandes de este nuevo siglo, al menos para los que han desarrollado esos servicios.

Sin embargo, estudiando con detenimiento las pautas de comportamiento del usuario medio, entendiendo como tal el que no tiene porqu saber lo que quiere decir Symbian, parece evidente que las ltimas novedades tecnolgicas no son ms que soluciones en busca de un problema. Lo que parece demandar el mercado son servicios y aplicaciones que le simplifiquen la vida, que no requieran de mucha intervencin por su parte para funcionar correctamente.

Merece consideracin aparte el caso del iPhone, por mltiples razones. La existencia de un mercado cerrado, controlado por el fabricante y la necesidad de pasar por un proceso de certificacin (de pago), no han impedido que ha da de hoy, haya ms de 15.000 aplicaciones disponibles.

Sin embargo, hay varios riesgos asociados a un crecimiento tan rpido de una plataforma. El riesgo de implosin es muy alto, y dada la gran rapidez con la que aparecen aplicaciones nuevas, es muy difcil que un desarrollador se plantee trabajar en una aplicacin por un tiempo considerable, lo que hace que el porcentaje de aplicaciones que realmente pueden considerarse como killer es mnimo.Perspectiva del futuro.

Es muy difcil predecir el futuro. Ms an cuando estamos intentando predecir el futuro de un campo en el que la innovacin es la mxima, lo que todos los implicados buscan, ya sean fabricantes de terminales, desarrolladores de aplicaciones, u operadoras y proveedores de servicios.

Pero s que tenemos unos cuantos datos con los que atrevernos a aventurar una previsin para el futuro cercano.

En primer lugar, el hardware va a seguir evolucionando. Segn la Ley de Moore, cada 18 meses la potencia de las computadoras se duplica. Esta ley es igual de aplicable para un PC de escritorio, para la supercomputadora Mare Nostrum, para un PocketPC o para un mvil. Como deca Don Hilarin, la ciencia adelanta que es una barbaridad.

Por tanto, podemos esperar un avance considerable en la capacidad de proceso de los dispositivos en un plazo relativamente corto, un avance que adems va a ser constante, se va a seguir produciendo a lo largo del tiempo.

Y a ms capacidad de proceso, mayor calidad de los contenidos. As pues, lo primero que podemos esperar es que los juegos sean ms complejos, con mejores grficos y mejor sonido, por ejemplo, o aplicaciones complejas con integracin de grficos 3D (aplicaciones sobre medicina o astronoma, por ejemplo).

Pero mejor hardware no slo trae consigo aplicaciones de ms calidad, sino mejores posibilidades de comunicacin e interaccin entre dispositivos y por lo tanto entre los dueos de los mismos. Bluetooth de alta velocidad, Wi-Fi, voz ip, comunicaciones por push... son varias las tecnologas que van a servir para mejorar la comunicacin y el intercambio de datos entre dispositivos.Nadie quiere quedarse sin al menos una parte del pastel del futuro. Mientras algunos estn desarrollando pantallas interactivas que se puedan enrollar para transportar, otros estn trabajando en interfaces de usuario que parten de paradigmas totalmente distintos a los que estamos acostumbrados a utilizar y otros estn trabajando en el dispositivo que los una a todos.

Esa ltima rama de investigacin, la ya famosa convergencia, puede ser una de las que ms frutos d en un futuro cercano. La idea detrs de esa lnea de desarrollo es el intentar buscar un dispositivo que pueda realizar las funciones de todos los que habitualmente solemos utilizar: reproductor mp3, telfono, agenda electrnica, incluso navegador GPS. Todo en un nico aparato, de dimensiones reducidas, pero con una pantalla lo suficientemente grande como para ser funcional. El penltimo intento fue el Origami de Microsoft, pero han sido varios los que lo han intentado previamente, sin mucho xito: BenQ, Sony-Ericsson, Apple Sin embargo, s parece que los netbooks, especialmente en Asia, donde es raro ver otra cosa, estn cuajando en el mercado.

Si bien parece claro que los dispositivos, en un futuro cercano, van a tender a converger a un nico super-dispositivo, qu se puede esperar de cmo sern por tanto las aplicaciones del futuro? Siempre es complicado adivinar lo que va a ocurrir, pero puede esperarse un aumento de las aplicaciones con cierto componente social, al igual que est ocurriendo en la web, que permitan interactuar a los usuarios, jugar en grupo, compartir archivos multimedia con facilidad.

Tambin es de suponer que cada vez haya ms aplicaciones especializadas en la gestin y reproduccin de archivos multimedia, sobre todo msica y vdeo, aplicaciones integradas con servicios de descarga a travs del PC de escritorio.

En todo caso, lo que nico que parece seguro es que cada vez va a haber ms dispositivos mviles circulando por las calles en manos de sus dueos, dispositivos con mayores capacidades de proceso y multimedia. Una oportunidad que sera una pena dejar pasar.Actividad 3: Establecimiento de objetivo y tecnologa a utilizar en programacin orientada a mvil

El alumno propone un desarrollo de aplicacin mvil de un caso de la vida real, donde cuestiona cual es el problema a resolver, tomando en cuenta que elementos pueden ser transformados a datos manejables con un dispositivo mvil.

Se apoya tambin en casos de uso con equipo mvil como sigue:

Ventas ambulantes

Inspecciones de proyectos.

Toma de Inventarios.

Empresas de Servicios.

Toma de encuestas o censos.

Consultas de cuentas bancarias.

Navegacin red de Internet.

Definicin de objetivo

Define el objetivo de la aplicacin Web orientada a mvil, de manera concreta e incluyendo los requerimientos especficos del caso en cuestin.

Elabora a detalle una propuesta de proyecto de implantacin de la solucin mvil, incluyendo sus fases:

Planeacin y anlisis de la propuesta.

Diseo de la aplicacin mvil.

Elaboracin de las rutinas de programacin.

Prueba piloto de la solucin.

Puesta a punto y operacin de la aplicacin.

Determinacin de tecnologa a utilizar

Propone en forma detallada la tecnologa a utilizar (arquitectura, plataforma, emulador de dispositivo y equipo mvil), considerando:

El objetivo definido de la propuesta de solucin mvil.

Las caractersticas tcnicas del dispositivo mvil.

Emuladores para equipos mviles que soporta la arquitectura.

Componentes de la plataforma de desarrollo.

Enumera adicionalmente las ventajas que se pueden tener con el desarrollo de esta propuesta y el uso de la tecnologa seleccionada.

Presenta la propuesta establecida y emite un reporte de la actividad.Actividad 4: Elaboracin del plan de trabajo para la implementacin de propuesta de solucin establecida

1. PLAN DE TRABAJO

Un plan de trabajo es un documento donde se en listan las actividades, las fechas en las que se realizarn, los recursos necesarios y las personas responsables.

El primer paso es la definicin de los objetivos, estos son el punto de partida en el proceso de Planeacin, estos nos determinarn las actividades que necesitaremos realizar para lograr los objetivos propuestos.

Las siguientes preguntas te servirn de gua para elaborar tu planeacin:

Cul es el objetivo de mi proyecto?

Qu actividades especficas necesito realizar para alcanzar los objetivos y responder a mis preguntas?

En qu secuencia se llevarn a cabo?

Cundo estar terminada cada actividad?

Qu productos concretos obtendr en cada actividad?

Qu recursos necesito?

El resultado de este proceso es un plan de actividades y tareas a ejecutarse en un periodo determinado.

Realizar tu plan y estar revisndolo constantemente te permite tener retroalimentacin til y permanente de las acciones, as podrs verificar que vas en la direccin indicada para llegar a los resultados esperados y no perders tiempo haciendo actividades secundarias.

Una herramienta til para elaborar un plan de trabajo es el "cronograma".CRONOGRAMA

El cronograma tambin conocido como Grfica de Gantt, es el resumen de un plan de trabajo en forma grfica, que muestra las actividades ms importantes en orden cronolgico, as como la fecha de inicio y termino en que se llevarn a cabo, la persona que es responsable de efectuarlas, los recursos necesarios y los productos esperados.

La presentacin del cronograma puede variar, una opcin es:

ELABORACION DEL PLAN DE TRABAJO Y CRONOGRAMA

Escribe el tema de tu proyecto:

Escribe el objetivo (s):

Elabora una lista con las actividades que necesitas hacer para alcanzar tu objetivo.

Revisa el cronograma del curso revisa fechas y etapas.

En Excel elabora tu formato para cronograma y en base a los tiempos marcados en el cronograma del curso, agrupa tus actividades por etapas y asgnales fecha de inicio y termino as recursos y los productos.

Guarda tu archivo en la carpeta de proyecto como cronograma.

Utiliza las opciones de formato para dar claridad a tu cronograma y que se convierta a una herramienta til para utilizar durante el semestre, permitindote realizar tus actividades en tiempo y lograr los productos de cada.

Coloca en la parte superior del cronograma tu tema y tu(s) objetivo(s) para no perderlos de vista.

Al final del cronograma abre un cuadro de texto y escribe

Qu te aporta esta actividad? Qu utilidad tiene o podr tener?

Imprime tu plan de trabajo, revisa su formato y contenido, realiza los cambios que creas conveniente y vuelve a imprimir 2 copias. Una copia debers entregarla al final de la clase y la otra es para que puedas guiar tus actividades a partir de hoy.

2. Elabora el plan de trabajo o calendario para la implementacin de la propuesta de solucin para equipo mvil, definiendo: orden, tiempos, holgura y actividades tomando en cuenta las fases de: Diseo de la aplicacin mvil.

Elaboracin de las rutinas de programacin.

Prueba piloto de la solucin.

Puesta a punto u operacin de la aplicacin.

3. Grafica las fases de la implementacin de la propuesta de solucin.

4. Presenta la grafica o plan de trabajo elaborado y emite un reporte de la actividad.Actividad 5: Elaboracin de cotizacin para implementacin de solucin mvil

1. Estima costos por cada fase del plan de trabajo del proyecto de implementacin de solucin mvil establecida, mediante dos escenarios de cotizacin. (Apoyarse en el ejemplo anexo).

EJEMPLO DE COTIZACIN

ESCENARIO 1ConceptoDescripcinCosto en m

LicenciamientoIncluye:

Licencia de las herramientas o lenguajes .NET

Instalacin de las de las herramientas o lenguajes .NET$22,300.00 pesos

+ IVA Correspondiente

Desarrollo de la implementacin Planeacin y anlisis de la propuesta.

Diseo de la aplicacin mvil.

Elaboracin de las rutinas de programacin.

Prueba piloto de la solucin.

Puesta en punto y arranque.$30,000.00 pesos

+ IVA Correspondiente

Formacin - CapacitacinCONSULTORIA 200HRS. (100 pesos /HORA)

CURSO EN EL MANEJO DE LA APLICACIN WEB ORIENTADA A MOVIL$5,000.00 pesos

+ IVA Correspondiente

(OPCIONAL)

Opcional. Infraestructura.Incluye:

Servidor dedicado

Instalacin y Soporte tcnico 1 ao.$30,052.00

+ IVA Correspondiente

NESCENARIO 2ConceptoDescripcinCosto en m

LicenciamientoIncluye:

Licencia de las herramientas o lenguajes .NET

Instalacin de las de las herramientas o lenguajes .NET$22,300.00 pesos

+ IVA Correspondiente

Desarrollo de la implementacin Planeacin y anlisis de la propuesta.

Diseo de la aplicacin mvil.

Elaboracin de las rutinas de programacin.

Prueba piloto de la solucin.

Puesta en punto y arranque.$30,000.00 pesos

+ IVA Correspondiente

(OPCIONAL)

Opcional. Infraestructura.Incluye:

Servidor dedicado

Instalacin y Soporte tcnico 1 ao.$30,052.00

+ IVA Correspondiente

FORMA DE PAGOConceptoPorcentaje

Anticipo50%

Al finalizar el servicio50%

VALIDEZ DE LA PROPUESTA

Esta propuesta es vlida por 30 das contados a partir de la fecha de presentacin al cliente. Una vez aprobadas las propuestas de diseo, los cambios tendrn un costo adicional.

ACUERDO DE CONFIDENCIALIDAD

La Empresa, se compromete a mantener en estricta confidencialidad y reserva toda informacin, as como acuerdos promocinales y comerciales establecidos con cualquier empresa o dependencia, incluso previo a la implantacin de la solucin.

2. Elaboracin de Cotizacin

Escenario 1

Establece la estimacin de costos en una tabla incluyendo lo siguiente:

Estimacin de costos por adquisicin y licenciamiento de la plataforma.

Estimacin de costos por servicios por implementacin de la aplicacin. Estimacin de costos por consultora y capacitacin en el uso de la aplicacin.

Escenario 2

Establece la estimacin de costos en una tabla incluyendo lo siguiente:

Estimacin de costos por adquisicin y licenciamiento de la plataforma.

Estimacin de costos por servicios por implementacin de la aplicacin.

3. Planteamiento de escenarios de opcin de financiamiento para el cliente.

4. Presenta la cotizacin elaborada y emite un reporte de la actividad.Unidad 2

Implementacin de la aplicacin para dispositivos mvilesEl alumno realizar la implementacin del desarrollo de soluciones Web y de gestin de datos orientadas a mviles considerando los procesos de diseo, elaboracin y configuracin de sitios Web; que conlleven al acceso de datos e informacin en lnea o tiempo real con mltiples usos.2.1 Construye aplicaciones informticas Web que puedan ejecutarse en un entorno mvil por medio de la plataforma y emuladores de dispositivos mviles especficos, a fin de acceder informacin comercial, de servicios o personal.

Introduccin

Para los dispositivos mviles, como ya se menciona se pueden utilizar Java (J2ME), Flash Lite y Microsoft .Net, por lo que utilizaremos ste ltimo para la realizacin de aplicaciones para dispositivos mviles, por lo que vamos a utilizar el lenguaje C# (C sharp) para ello, por lo que en la unidad primero se dir que es C#, cmo funciona y por ltimo como se crean aplicaciones para mviles mediante este lenguaC# es un lenguaje de programacin de ordenadores. Se trata de un lenguaje moderno, evolucionado a partir de C y C++, y con una sintaxis muy similar a la de Java. Los programas creados con C# no suelen ser tan rpidos como los creados con C, pero a cambio la productividad del programador es mucho mayor.

Se trata de un lenguaje creado por Microsoft para crear programas para su plataforma .NET, pero estandarizado posteriormente por ECMA y por ISO, y del que existe una implementacin alternativa de "cdigo abierto", el "proyecto Mono", que est disponible para Windows, Linux, Mac OS X y otros sistemas operativos.

Los pasos que seguiremos para crear un programa en C# sern:

Escribir el programa en lenguaje C# (fichero fuente), con cualquier editor de textos.

Compilarlo con nuestro compilador. Esto crear un "fichero ejecutable".

Lanzar el fichero ejecutable.

La mayora de los compiladores actuales permiten dar todos estos pasos desde un nico entorno, en el que escribimos nuestros programas, los compilamos, y los depuramos en caso de que exista algn fallo.

Mientras que en lenguaje C se puede escribir un programa de esta manera:

#include

void main()

{

printf("Hola");

}En C# hay que dar todavia mas pasos para conseguir lo mismo:

public class Ejemplo01

{

public static void Main()

{

System.Console.WriteLine("Hola");

}

}Conceptos bsicos de C#Vamos con un primer ejemplo de programa en C#, posiblemente el ms sencillo de los que "hacen algo til". Se trata de escribir un texto en pantalla. Vamos a verlo ahora con ms detalle:

public class Ejemplo01

{ public static void Main() { System.Console.WriteLine("Hola");

}}Esto escribe "Hola" en la pantalla. Pero hay mucho alrededor de ese "Hola", y vamos a comentarlo antes de proseguir, aunque muchos de los detalles se irn aclarando ms adelante. En este primer anlisis, iremos de dentro hacia fuera: WriteLine("Hola"); - "Hola" es el texto que queremos escribir, y WriteLine es la orden encargada de escribir (Write) una lnea (Line) de texto en pantalla.

Console.WriteLine("Hola"); porque WriteLine es una orden de manejo de la "consola" (la pantalla "negra" en modo texto del sistema operativo).

System.Console.WriteLine("Hola"); porque las rdenes relacionadas con el manejo de consola (Console) pertenecen a la categora de sistema (System).

Las llaves { y } se usan para delimitar un bloque de programa. En nuestro caso, se trata del bloque principal del programa.

public static void Main() - Main indica cual es "el cuerpo del programa", la parte principal (un programa puede estar dividido en varios fragmentos, como veremos ms adelante). Todos los programas tienen que tener un bloque "Main". Los detalles de por qu hay que poner delante "public static void" y de por qu se pone despus un parntesis vaco los iremos aclarando ms tarde. De momento, deberemos memorizar que sa ser la forma correcta de escribir "Main".

public class Ejemplo01 - de momento pensaremos que "Ejemplo01" es el nombre de nuestro programa. Una lnea como esa deber existir tambin siempre en nuestros programas, y eso de "public class" ser obligatorio. Nuevamente, aplazamos para ms tarde los detalles sobre qu quiere decir "class" y por qu debe ser "public".

Como se puede ver, mucha parte de este programa todava es casi un "acto de f" para nosotros. Debemos creernos que "se debe hacer as". Poco a poco iremos detallando el por qu de "public", de "static", de "void", de "class"... Por ahora nos limitaremos a "rellenar" el cuerpo del programa para entender los conceptos bsicos de programacin.

Slo un par de cosas ms antes de seguir adelante:

Cada orden de C# debe terminar con un punto y coma (;)

C# es un lenguaje de formato libre, de modo que puede haber varias rdenes en una misma lnea, u rdenes separadas por varias lneas o espacios entre medias. Lo que realmente indica dnde termina una orden y donde empieza la siguiente son los puntos y coma. Por ese motivo, el programa anterior se podra haber escrito tambin as (aunque no es aconsejable, porque puede resultar menos legible):

public class Ejemplo01 {public

static

void Main() { System.Console.WriteLine("Hola"); } }

De hecho, hay dos formas especialmente frecuentes de colocar la llave de comienzo, y yo usar ambas indistintamente. Una es como hemos hecho en el primer ejemplo: situar la llave de apertura en una lnea, sola, y justo encima de la llave de cierre correspondiente. Esto es lo que muchos autores llaman el "estilo C". La segunda forma habitual es situndola a continuacin del nombre del bloque que comienza (el "estilo Java"), as:

public class Ejemplo01 { public static void Main(){ System.Console.WriteLine("Hola");

}}(esta es la forma que yo emplear preferentemente en este texto cuando estemos trabajando con fuentes de mayor tamao, para que ocupe un poco menos de espacio).

La gran mayora de las rdenes que encontraremos en el lenguaje C# son palabras en ingls o abreviaturas de stas. Pero hay que tener en cuenta que C# distingue entre maysculas y minsculas, por lo que "WriteLine" es una palabra reconocida, pero "writeLine", "WRITELINE" o "Writeline" no lo son.

Mostrar nmeros enteros en pantallaCuando queremos escribir un texto "tal cual", como en el ejemplo anterior, lo encerramos entre comillas. Pero no siempre querremos escribir textos prefijados. En muchos casos, se tratar de algo que habr que calcular.

El ejemplo ms sencillo es el de una operacin matemtica. La forma de realizarla es sencilla: no usar comillas en WriteLine. Entonces, C# intentar analizar el contenido para ver qu quiere decir. Por ejemplo, para sumar 3 y 4 bastara hacer:

public class Ejemplo01suma

{ public static void Main() { System.Console.WriteLine(3+4);

}}Ejercicio propuesto: crea un programa que diga el resultado de sumar 118 y 56.

Operaciones aritmticas bsicasEst claro que el smbolo de la suma ser un +, y podemos esperar cual ser el de la resta, pero alguna de las operaciones matemticas habituales tiene smbolos menos intuitivos. Veamos cuales son los ms importantes:

OperadorOperacin

+Suma

-Resta, negacin

*Multiplicacin

/Divisin

%Resto de la divisin ("mdulo")

Orden de prioridad de los operadores

Sencillo:

En primer lugar se realizarn las operaciones indicadas entre parntesis.

Luego la negacin.

Despus las multiplicaciones, divisiones y el resto de la divisin.

Finalmente, las sumas y las restas.

En caso de tener igual prioridad, se analizan de izquierda a derecha.

Introduccin a los problemas de desbordamiento

El espacio del que disponemos para almacenar los nmeros es limitado. Si el resultado de una operacin es un nmero "demasiado grande", obtendremos un mensaje de error o un resultado errneo. Por eso en los primeros ejemplos usaremos nmeros pequeos. Ms adelante veremos a qu se debe realmente este problema y cmo evitarlo. Como anticipo, el siguiente programa ni siquiera compila, porque el compilador sabe que el resultado va a ser "demasiado grande":

public class Ejemplo01multiplic

{ public static void Main() { System.Console.WriteLine(10000000*10000000);

}}Variables.

Introduccin a las variables: int

Las variables son algo que no contiene un valor predeterminado, un espacio de memoria al que nosotros asignamos un nombre y en el que podremos almacenar datos.

El primer ejemplo nos permita escribir "Hola". El segundo nos permita sumar dos nmeros que habamos prefijado en nuestro programa. Pero esto tampoco es "lo habitual", sino que esos nmeros dependern de valores que haya tecleado el usuario o de clculos anteriores.

Por eso necesitaremos usar variables, en las que guardemos los datos con los que vamos a trabajar y tambin los resultados temporales. Vamos a ver como ejemplo lo que haramos para sumar dos nmeros enteros que fijsemos en el programa.

Definicin de variables: nmeros enteros

Para usar una cierta variable primero hay que declararla: indicar su nombre y el tipo de datos que querremos guardar.

El primer tipo de datos que usaremos sern nmeros enteros (sin decimales), que se indican con "int" (abreviatura del ingls "integer"). Despus de esta palabra se indica el nombre que tendr la variable:

int primerNumero;

Esa orden reserva espacio para almacenar un nmero entero, que podr tomar distintos valores, y al que nos referiremos con el nombre "primerNumero".

Asignacin de valores

Podemos darle un valor a esa variable durante el programa haciendo

primerNumero = 234;

O tambin podemos darles un valor inicial ("inicializarlas") antes de que empiece el programa, en el mismo momento en que las definimos:

int primerNumero = 234;

O incluso podemos definir e inicializar ms de una variable a la vez

int primerNumero = 234, segundoNumero = 567;

(esta lnea reserva espacio para dos variables, que usaremos para almacenar nmeros enteros; una de ellas se llama primerNumero y tiene como valor inicial 234 y la otra se llama segundoNumero y tiene como valor inicial 567).

Despus ya podemos hacer operaciones con las variables, igual que las hacamos con los nmeros:

suma = primerNumero + segundoNumero;

Mostrar el valor de una variable en pantalla

Una vez que sabemos cmo mostrar un nmero en pantalla, es sencillo mostrar el valor de una variable. Para un nmero hacamos cosas como

System.Console.WriteLine(3+4);

pero si se trata de una variable es idntico:

System.Console.WriteLine(suma);

O bien, si queremos mostrar un texto adems del valor de la variable, podemos indicar el texto entre comillas, detallando con {0} en qu parte del texto queremos que aparezca el valor de la variable, de la siguiente forma:

System.Console.WriteLine("La suma es {0}", suma);

Si se trata de ms de una variable, indicaremos todas ellas tras el texto, y detallaremos dnde debe aparecer cada una de ellas, usando {0}, {1} y as sucesivamente:

System.Console.WriteLine("La suma de {0} y {1} es {2}",

primerNumero, segundoNumero, suma);

Ya sabemos todo lo suficiente para crear nuestro programa que sume dos nmeros usando variables:

public class Ejemplo02

{ public static void Main() { int primerNumero;

int segundoNumero;

int suma;

primerNumero = 234;

segundoNumero = 567;

suma = primerNumero + segundoNumero;

System.Console.WriteLine("La suma de {0} y {1} es {2}",

primerNumero, segundoNumero, suma);

}}Repasemos lo que hace:

(Nos saltamos todava los detalles de qu quieren decir "public", "class", "static" y "void").

Main() indica donde comienza el cuerpo del programa, que se delimita entre llaves { y }

int primerNumero; reserva espacio para guardar un nmero entero, al que llamaremos primerNumero.

int segundoNumero; reserva espacio para guardar otro nmero entero, al que llamaremos segundoNumero.

int suma; reserva espacio para guardar un tercer nmero entero, al que llamaremos suma.

primerNumero = 234; da el valor del primer nmero que queremos sumar

segundoNumero = 567; da el valor del segundo nmero que queremos sumar

suma = primerNumero + segundoNumero; halla la suma de esos dos nmeros y la guarda en otra variable, en vez de mostrarla directamente en pantalla.

System.Console.WriteLine("La suma de {0} y {1} es {2}", primerNumero, segundoNumero, suma); muestra en pantalla el texto y los valores de las tres variables (los dos nmeros iniciales y su suma).

Ejercicio propuesto:

1. Hacer un programa que realice la siguiente operacin: que sume los dos primeros nmeros de dos variables y el resultado lo multiplique por el tercer nmero de una tercer variable, mostrando el resultado en pantalla mediante una cuarta variable. Nota: la operacin se debe de realizar en una sola lnea.Identificadores

Estos nombres de variable (lo que se conoce como "identificadores") pueden estar formados por letras, nmeros o el smbolo de subrayado (_) y deben comenzar por letra o subrayado. No deben tener espacios entre medias, y hay que recordar que las vocales acentuadas y la ee son problemticas, porque no son letras "estndar" en todos los idiomas.

Por eso, no son nombres de variable vlidos:

1numero (empieza por nmero)

un numero (contiene un espacio)

Ao1 (tiene una ee)

MsDatos (tiene una vocal acentuada)Tampoco podremos usar como identificadores las palabras reservadas de C#. Por ejemplo, la palabra "int" se refiere a que cierta variable guardar un nmero e