martes, 21 de febrero de 2012

Los Diferentes Tipos de Comunicación Inalámbrica

En está entrada hablaremos de los diferentes términos que son usados en la comunicación inalámbrica entre los que se destacan bluetooth, infrarrojo, GSM, CDMA, 3G, 4G, EDGE, TDMA y GPRS.

Para comenzar empecemos todo desde el inicio... recuerdan cuando algunos de ustedes ya sea amigo o familiar tenian un celular y siempre en un tiempo libre estaban entre sus amigos intercambiando archivos ya sea en la escuela o en el trabajo, todo sucedia con solo acercar dichos celulares.


A está tecnología le llamábamos Infrarrojo el cual es un puerto en el telefono que sirve para comunicarse con otro dispositivo con el mismo tipo de puerto y compartir datos, para que haiga dicho intercambio de información se basa en rayos infrarrojos de los que son codificados y decodificados para convertirlos en un archivo, el cual ha sido enviado.


Este puerto no es visto con el ojo humano pero si puede ser visto por las cámaras convencionales.


Después de conocer el Infrarrojo fuimos avanzando hacia el Bluetooth que está es una especificación industrial para redes inalámbricas de área personal(WPAN) que posibilita la transmisión de voz y datos entre diferentes dispositivos mediante un enlace por radiofrecuencia en la banda ISM de los 2,4 GHz.


Su objetivo principal objetivo es facilitar las comunicaciones entre equipos móviles y fijos, eliminar cables y conectores entre éstos y ofrecer la posibilidad de crear pequeñas redes inalámbricas y facilitar la sincronización de datos entre equipos personales.


Entre los dispositivos que frecuentan usar está tecnología se encuentran las netbook, laptop, desktop, iPod, PSP, celulares, smartphones entre muchos otros.


GSM(2G)

Ahora hablaremos del término GSM que este corresponde a las siglas en inglés para "Global System for Mobile Communications", sabiendo esto nos daremos cuenta que cuando hablamos de un teléfono GSM es un teléfono celular que cuenta con tecnología en base a un sistema global de comunicaciones móviles, el cliente GSM puede conectarse a través de su teléfono con su proveedor y enviar y recibir mensajes por correo electrónico, faxes, navegador por internet, acceder con seguridad a la red informática de una compañía(red local/Intranet), así como utilizar otras funciones digitales de transmisión de datos, incluyendo el servicio de mensajes cortos (SMS) o mensajes de texto, por su velocidad de transmisión y otras características, un estándar de segunda generación 2G.

Este sistema tomó cada vez mayor importancia a lo largo del mundo, ya que este fue el más avanzado hasta su momento, dicha tecnología sigue funcionando hoy en día pero tiene sus desventajas ya que pueden ser escuchados los paquetes que son enviados.

Para ver mas sobre el tema de escuchar paquetes o "sniffing" entren a está presentación en pdf debajo.

http://events.ccc.de/congress/2010/Fahrplan/attachments/1783_101228.27C3.GSM-Sniffing.Nohl_Munaut.pdf
ó

Pueden checar este link:


Donde verán algo de sniffing usando una máquina como está.


CDMA

Está tecnología para diferenciar a los distintos usuarios usan códigos digitales únicos, los códigos son conocidos tanto por la estación móvil(teléfono celular) como por la estación base, y se llaman "Secuencias de Código Pseudo-Aleatorio", y por está razón todos los usuarios comparten el mismo rango del espectro radioeléctrico, todo esto sucede gracias a que usa una tecnología de Espectro Ensanchado, esto quiere decir la información se extiende sobre un ancho de banda mucho mayor que el original, conteniendo una señal identificativa, esto empieza con una transmisión a 9600 bits por segundo,por consiguiente la señal es ensanchada para ser transmitida a 1.23 Megabits por segundo aproximadamente.Un ensanchamiento implica que un código digital concreto se aplica a la señal generada por un usuario en una célula.

Posteriormente la señal ensanchada es transmitida junto con el resto de señales generadas por otros usuarios, usando el mismo ancho de banda.Cuando las señales se reciben, las señales de los distintos usuarios se separan haciendo uso de los códigos distintivos y se devuelven las distintas llamadas a una velocidad de 9600 bps.

La gran ventaja de está tecnología comparada con GSM es que este tipo de señales son muy difíciles de bloquear, de interferir y de identificar, por lo tanto está tecnología es muy segura.

En México actualmente, solo las compañias UNEFON y IUSACELL manejan esta tecnología, y las demás compañias como TELCEL, Movistar siguen usando la tecnología GSM.


Entonces cuando hablamos que un telefono tiene CDMA significa que dicho telefono tiene capacidad de acceso múltiple digital especificada por la Asociación de Industria de Telecomunicaciones (TIA) como "IS-95" y que hacen estos sistemas llamados "IS-95", bueno estos dividen el espectro radioeléctrico en portadoras de 1.25 MHz de ancho de banda.

3G

3G significa tercera generación en telefonía móvil, entre los servicios que proporcionan son la posibilidad de transferir tanto voz y datos (llamada telefónica) y datos no-voz como la descarga de programas intercambio de email y mensajería instantánea, está tecnología comenzó a utilizarse en Japón, y de a poco la fueron incorporando otros países el proceso fue muy lento debido que hacia el uso de muchas frecuencias diferentes por lo tanto requería una licencia adicional.


Está tecnología es muy buena para la transferencia de datos y se dice que podría alcanzar velocidades de hasta 3 Mbit/s.La desventaja de usar está tecnología es que te consume mucho saldo estando en México, ya sea en plan el internet sigue teniendo desventaja ya que es lento; con esto quiero decir que México no tiene muy buen soporte en este tipo de tecnologías aún sabiendo que el dueño de Telcel es el más rico del mundo.


4G


Al igual que 3G, 4G significa cuarta generación de servicio móvil.Para hacer un reencuentro recordemos que 2G nos trajo voz digital y mensajería de texto, luego apareció el 3G que nos trajo los smartphones, navegación rápida por Internet y aplicaciones.

El 4G está basada totalmente en tecnología IP, alcanzando la convergencia entre las redes por cable e inalámbricas así como en computadoras, dispositivos electrónicos y tecnología de la información para proveer velocidad de acceso de 100 Mbps en movimiento y 5 Gbps en reposo, manteniendo una calidad de servicio (QoS) de punta la punta de alta seguridad para permitir ofrecer servicios de cualquier lugar.

En Japón se inicio la experimentación de la tecnología 4G, con la compañia NTT DOCOMO la cual dicha empresa realizo muchas pruebas con éxito alcanzando 100Mbps a 200km/h.

TDMA


Está tecnología  de segunda generación, distribuye las unidades de información en ranuras alternas de tiempo, dando acceso múltiple a un número reducido de frecuencias, dicha tecnología permite dar servicios de alta calidad de voz y datos.Divide un canal de frecuencia de radio en varias ranuras de tiempo seis de D-AMPS y PCS, ocho en GSM.

A cada usuario que realiza una llamada se le asigna una ranura de tiempo específica para permitir la transmisión y esto permite que múltiples usuarios utilicen un mismo canal de frecuencia al mismo tiempo sin interferirse entre sí.

Está tecnología tuvo grandes problemas ya que cuando se caía la red podías hacer llamadas gratis por eso las compañias optaron por GSM, en la cual TDMA usa satélites mientras que GSM usa antenas.

GPRS



GPRS sus siglas significan Global Packet Radio Service y es una arquitectura para redes de área amplia(WAN) la cual está compuesta de sistemas y protocolos de comunicaciones claramente definidos y estandarizados.Dichos sistemas hacen posible la transmisión de datos en forma de paquetes a través de una red celular, en ellos se encuentra el servicio de WAP, SMS, MMS, Internet.

También es conocida como tecnología 2,5G por que constituye el primer paso de GSM hacia 3G

EDGE

Está es una tecnología de la telefonía móvil celular, que actúa como puente entre las redes 2G y 3G, se considera la evolución del GPRS, dicha tecnología funciona como redes GSM puede ser usado en cualquier transferencia de datos basada en conmutación por paquetes como lo es la conexión a Internet.


Puede alcanzar una velocidad de transmisión de 348 Kbps en modo de paquetes, para ello el operador debe implementar las actualizaciones necesarias, además no todos los teléfonos soportan está tecnología.

Links de referencia:

Infrarrojo + Imagenes
http://legacy.spitzer.caltech.edu/espanol/edu/learn_ir/
Bluetooth + Imagenes
http://es.wikipedia.org/wiki/Bluetooth
http://tecnyo.com
http://grupogeek.com
GSM + Imagenes
http://www.misrespuestas.com/que-es-un-telefono-gsm.html
http://es.wikipedia.org/wiki/Sistema_global_para_las_comunicaciones_m%C3%B3viles
http://tec.nologia.com/2009/12/29/descifran-el-codigo-que-protege-las-llamadas-de-telefonos-moviles-gsm/
http://blog.gold-lock.com/page/4/
CDMA + Imagenes
http://www.upv.es/satelite/trabajos/Grupo3_99.00/GlobalStar8.htm
3G + Imagenes
http://sincelular.com/1001/%C2%BFque-es-3g/
http://telecomnewspk.com/
http://www.newser.com/story/113780/carlos-slim-tops-forbes-billionaires-list.html
4G + Imagenes
http://www.informatica-hoy.com.ar/aprender-informatica/Que-es-4G.php
TDMA + Imagenes
http://www.alegsa.com.ar/Dic/tdma.php
http://dmrassociation.org/?page_id=710&lang=es
GPRS + Imagenes
http://trastoteca.blogspot.com/2011/12/que-es-gprs.html
http://www.guardmagic.com/03-spain/1spa-solution/00spa-short/1spa-shortly-12.htm
EDGE + Imagenes
http://www.lambdasi.com.ar/textocomp.asp?id=900
http://churmura.com/technology/internet/edge-technology/30747/

jueves, 16 de febrero de 2012

Colectores en Xcode

En esta entrada hablaremos de los diferentes colectores que existen en Xcode, veremos varios ejemplos para saber para cuando usarlos y para que nos sirven, esto le tomó mucha importancia ya que la mayoría de los programadores tienden a almacenar en un solo tipo de colector para no complicarse la vida al programar algo.Para ello tienes que contar con algún conocimiento básico de Objective-C, si no tienes alguna idea de que es este lenguaje de programación te recomiendo que pases a mi blog de lenguajes de programación en la cual tengo una introducción de programación orientada a objetos con Objective-C, pueden entrar con el link que dejaré debajo.


Los colectores son algo fundamental al momento de aprender Objective-C, algunas veces también son referidos como contenedores.Los colectores son un tipo de clase que pueden guardar y manejar varios objetos, en sí el proposito de estos es proveer una manera en la que puedas guardar y recuperar varios objetos de una manera eficiente.

Hay diferentes tipos de colectores pero de los más comunes que veremos en está entrada serán los siguientes:

  • NSSet

  • NSArray

  • NSDictionary

  • NSMutableSet

  • NSMutableArray

  • NSMutableDictionary

Como verán en la lista hay unos tipos de colectores que se les agrego la palabra clave Mutable, en Objective-C existen dos tipos los que son Mutables y No Mutables lo que estos dos tipos tienen en común es que pueden agregarse elementos y removerlos después de aver sido creados, ya que definimos que tienen en común ahora mencionaremos que es lo que los diferencia uno de otro, Mutable significa que puede ser modificado,por lo tanto, desde el inicio hasta el final puede ser modificado.No Mutables significa que después de aver sido inicializados con algunos valores no puede ser modificado.

Ahora empezaremos a definir cada uno de los colectores:

NSSet

En está clase es usada para almacenar una lista de objetos desordenada, lo que significa que los objetos pueden ser almacenados sin considerar su orden, la ventaja de está clase es que es el colector más rápido.

Ahora veremos un ejemplo de como se inicializa NSSet :

NSSet *lista = [NSSet setWithObjects:@"Algo", @"Genetico", @"Don Pedro", nil];

Como verán este es un ejemplo de una lista de strings, en donde la ultimo objeto tiene que ser nil y esto indica que la lista de objetos a sido finalizada.Este ejemplo no implica que tiene que ser solamente utilizado solo para strings, este puede estar compuesto por diferentes tipos de objetos.

Aquí tenemos un ejemplo muy común utilizado con la clase NSSet que se utiliza especialmente cuando se intenta capturar las veces que haz tocado la pantalla normalmente les dicen touches.

NSSet *lista [NSSet setWithObjects: @"Algo", @"Genetico", @"Don Pedro", nil];

NSString *valor = [lista anyObject];

Lo que vemos en la tercer linea un método que llamamos llamado anyObject que básicamente toma cualquier objeto que está dentro de lista, esto es sumamente necesario ya que en algunos casos algunas aplicaciones con solo tocar la pantalla, con al menos un dedo hacen algo en consecuencia.

NSArray

A diferencia de NSSet, NSArray te permite recuperar los objetos por un index que están en un arreglo en donde el index está enumerado con la posición en el cual el objeto ocupa.

Para ello veremos un ejemplo de usando NSArray donde asignaremos varios strings y los llamaremos con un index.

NSArray *Arreglo = [NSArray arrayWithObjects: @"Algo", @"Malo", @"Telefono",nil];

NSLog (@"%@", [Arreglo objectAtIndex:0]);
NSLog (@"%@", [Arreglo objectAtIndex:1]);
NSLog (@"%@", [Arreglo objectAtIndex:2]);

Impresión de resultado:


Esto es sencillo de explicar prácticamente el método objectAtIndex seguido del número de la posición del objeto es el que será tomado e imprimido por medio de NSLog.

Para saber el tamaño de un array o arreglo puede ser calculado de una manera muy sencilla por medio de esta manera:

int contador = [Arreglo count];

Impresión de resultado donde se logra apreciar en el debugger:


Como podrán observar para tener el tamaño primero debemos darle el nombre en este caso lo llamamos Arreglo y luego count que significa que contará el tamaño del Arreglo.

NSDictionary

La clase de NSDictionary en diferencia de NSArray y NSSet es que pueden crear una lista de objetos con index en el cual puede ser compuesta por otra lista que comúnmente las llamamos keys, el problema aquí es que no podemos repetir ninguna key.Dentro de la lista de objetos pueden ser agregados mas listas de objetos.

Ahora veremos un ejemplo:

NSDictionary *zoologico = [NSDictionary dictionaryWithObjectsAndKeys:
                               @"elefante", miObjetoElefante,
                               @"jirafa", miObjetoJirafa,
                               @"mono", [NSDictionary dictionaryWithObjectsAndKeys:
                                         @"Araña", miMonoAraña,
                                         @"Capuchino", miMonoCapuchino,
                                         @"Orangutan", miMonoOrangutan,nil]
                               @"zebra", miObjetoZebra, nil];

Este es un ejemplo de como se usa NSDictionary donde le estamos dando el objeto que en este caso colocamos un String  y después nuestra key para identificarla, con la condición de que no se repita.

Y la gran pregunta como manejarlos, o como identificarlos  tal ves creas que es algo mitico pero no lo es primero tenemos que identificar de que clase son para hacer esto mas didáctico supongamos que zebra, mono, elefante y jirafa son objetos de la clase NSDictionary y que la lista de monos son objetos de la clase Animal, ahora veremos el ejemplo para identificarlos uno de otro.

      for(id element in [zoologico allValues]){
         if ([element isKindOfClass:[Animal class]]){
             NSLog(@"Eres de la clase Animal");
       }
       if([element isKindOfClass:[NSDictionary class]]) {
             NSLog(@"Eres de la clase NSDictionary");
       }
     }
             

Primero que nada definamos por que usamos id, bueno id se utiliza cuando realmente no sabemos que clases están almacenadas en el colector.Como se observa toma todo lo que contenga zoologico con la palabra clave allValues y hace una iteración por cada elemento en el, luego dentro del if pregunta si dicho elemento es de la clase Animal si es así imprime Eres de la clase Animal y lo mismo sucede con el otro if.Esto funciona gracias al metodo llamado isKindOfClass que regresa un valor boleano si es la clase que estamos buscando nos retornara un True en caso contrario un False.

Hasta aquí hemos visto nadamas clases No Mutables, como lo habíamos comentado una vez que inicializan no podrán ser cambiadas, ahora veremos clases Mutables que estas si pueden ser modificadas una vez que han sido inicializadas.

NSMutableSet

Este contenedor puede ser inicializado de igual manera que el NSSet o puede ser inicializado sin ningún valor para posteriormente agregar algunos objetos.

Ahora veremos un ejemplo de ello:

NSMutableSet *lista = [[NSMutableSet alloc] init];
 [lista addObject:@"Algo"];
 [lista addObject:@"Genetico"];
 [lista addObject:@"Don Pedro"];

 for (id valor in lista) {
 NSLog(@"%@", valor);
 }

Como veremos inicializamos nuestro contenedor con el nombre de lista, luego agregamos en cada línea un objeto diferente con el método addObject, después para imprimirlo por medio de un for donde tomará todo el contenido de lista y gracias a id mostrara cada uno de ellos y será imprimido por NSLog.Ahora veremos una captura de la consola.



Ahora si queremos eliminar todos los objetos haremos lo siguiente por el método llamado removeAllObjects.

[lista removeAllObjects];

Ahora que pasa si queremos eliminar un objeto en especifico, bueno lo que tenemos que hacer es lo siguiente:

NSString *Cosa =@"Cosa";

 [lista addObject: Cosa];
 [lista addObject: Cosa];
 
 for (id valor in lista){
     NSLog(@"%@",valor);
  }
 
 [lista removeObject: Cosa];

 for (id valor in lista){
     NSLog(@"%@", valor);
 }

Ahora como observamos creamos una variable Cosa tipo String en la cual posteriormente la agregamos a lista, se agregó dos veces para demostrar que no podemos repetir el mismo objeto mas de dos veces, luego utilizamos el for para demostrar que se agregaro el objeto, después usaremos el método removeObject seguido del objeto que queremos eliminar para luego pasar al otro for para comprobar que se haya eliminado si todo salió bien verás algo como esto.


NSMutableArray

Este contenedor es lo mismo a usar un NSArray con diferencia de que pueden ser agregadas, modificadas y eliminadas, algo interesante que agregar es que podemos utilizar los métodos anteriores que utilizamos con NSMutableSet.

Ahora veremos un ejemplo agregando e insertando objetos:

 NSMutableArray *Arreglo = [[NSMutableArray alloc] init];
    
    [Arreglo addObject:@"Algo"];
    [Arreglo addObject:@"Pasa"];
    [Arreglo addObject:@"Siempre"];
     
     for(id valor in Arreglo){
     NSLog(@"%@", valor);
     }
     
     [Arreglo insertObject:@"Inserte algo entre Algo y Pasa"];
    
    for(id valor in Arreglo){
        NSLog(@"%@", valor);
    }

Lo que hicimos fue agregar el objeto(lo mismo que en NSSet) luego demostramos que han sido agregados en el for, después insertamos un objeto en el index 1 esto quiere decir que se posicionará en la posición 1 y se recorrerán los demás hacia abajo, como podrán observar debajo.

Los métodos mas usamos son removeAllObjects que quita todos los objetos que esten dentro del contenedor, removeLastObject que quita el último objeto agregado del contenedor, removeObjectAtIndex que este remueve un objeto dependiendo del index que haya sido dado.

NSMutableDictionary

Este contenedor no es muy diferente a NSDictionary, ya que este te provee de los mismo con la diferencia que poder agregar y remover elementos.

A continuación veremos un ejemplo agregando objetos:


 NSMutableDictionary *dic = [[NSMutableDictionary alloc]init];
 
 [dic setObject:@"Primero" forKey:@"1"];
 [dic setObject:@"Segundo" forKey:@"2"];
 [dic setObject:@"Tercero" forKey:@"3"];

 for(id valor in dic){
    NSLog(@"%@", valor);
 }
 
 [dic setObject:@"Primero y Segundo" forKey:@"1.5"];
 
 for(id valor in dic){
    NSLog(@"%@", valor);
 }

Agregamos tres objetos con ciertas keys, luego comprobamos que están, ya comprobadas agregamos un objeto, usamos el for para verificar lo que sucedió:


Como podrán ver se agregó un nuevo objeto con que no puede ser insertada en una posición en especifico como NSArray.

Libro de referencia:
Objective-C for Absolute Beginners, Excelente libro se los recomiendo

lunes, 13 de febrero de 2012

Introducción a Titanium

Existen varias maneras de crear aplicaciones móviles ya sea por eclipse para Android o ya sea para Xcode para iOS, esto algunas veces sea vuelto complicado ya que esto conlleva tiempo tener que entender y aprender los dos ambientes de desarrollo.Afortunadamente existen algunas plataformas como Titanium que nos permiten hacer una aplicación  de manera nativa en Android e iOS con un lenguaje de programación muy conocido y práctico, para ello les mencionare una introducción para que se enteren de que trata muy bien Titanium.


Titanium es una herramienta open source lo que significa que es gratis, es fácil de usar ya que tiene una IDE similar a la de eclipse.


Este puede ser descargado por medio del link que está debajo.


El único requisito es registrarse ya que con ello, podrás descargar algunos modulos que podrás implementarlos en el desarrollo de app y dichos modulos serán enviados a tu cuenta.

Por el momento pasaremos por alto la instalación ya que esto no es complicado y tambien la instalación de  el simulador de Android ya que estamos suponiendo que has programado una app de Android en eclipse alguna vez.

Unos de los componentes que mas son usados en una aplicación son los botones con eventos, secciones que son llamados tabs, ventanas, alertas entre otros aquí les explicaré algunos ejemplos sencillos sobre como usar algunos componentes para ello les pondré dos capturas de un Android y de un iOS para que puedan ver los resultados.

Para comenzar crearemos un nuevo proyecto File/New/Titanium mobile project después le daremos nombre a nuestro proyecto como Ejemplo1 luego observaran en App Id esto com.gsgv.Ejemplo1, donde com significa company que es compañía en ingles y después de eso verán gsgv que esas son mis iniciales comúnmente ahi va el nombre de la compañía luego de eso, veremos que dice Ejemplo1 que es el nombre del proyecto.Si les quedó alguna duda dejaré una captura de pantalla de esto.


Ahora nos centraremos dentro de la carpeta Resources en el archivo app.js en el copiaremos y pegaremos el siguiente código, en el cual se hicieron dos secciones diferentes donde cada sección está compuesto de una ventana que contiene una etiqueta y un botón, dicho botón tiene un evento que al momento de dar click en el envia un mensaje de alerta.Todo está comentado para que esto sea entendible.

// Creamos el grupo de tabs
var tabGroup = Titanium.UI.createTabGroup();


//
// Creamos una ventana en la que agregaremos un label y un boton.Y la misma ventana será agregada a un tab que es una sección de la app.
//

//Creamos ventana
var win1 = Titanium.UI.createWindow({  
    title:'Tab 1',                        //Titulo de la ventana
    backgroundColor:'#fff'               //Color de fondo blanco
});
//Creamos el tab donde sera agregada la ventana
var tab1 = Titanium.UI.createTab({  
    icon:'KS_nav_views.png',             //Imagen que sera puesta en el tab
    title:'Soy Tab 1',                   //Titulo del Tab
    window:win1                          //Ventana que sera agregada
});

//Creamos una etiqueta
var label1 = Titanium.UI.createLabel({
 color:'#999',                        //Color del label
 text:'Yo soy la ventana 1',          //Texto dentro de la ventana
 font:{fontSize:20,fontFamily:'Helvetica Neue'},//Tamanio de letra y tipo de letra 
 textAlign:'center',                  //Texto alineado en el centro
 width:'auto'                         //Esta en auto lo ancho, esto significa que tomara el tamanio necesario nadamas
});
//Creamos un boton
var boton1 = Titanium.UI.createButton({
 title:'Boton 1',                     //Texto dentro del boton
 top:200,        //Posicion del boton
 width:300,        //Ancho del boton
 height:100        //Altura del boton
});
//Creamos un evento del boton
boton1.addEventListener('click', function(e){ //click significa que en caso de dar click una vez hacer lo siguiente
 alert('Hola desde el botón 1');           //Aparecera una alerta con el mensaje que tiene dentro
});
//Agregamos los componentes a la ventana
win1.add(label1);
win1.add(boton1);
//
// Creamos una ventana en la que agregaremos un label y un boton.Y la misma ventana será agregada a un tab que es una sección de la app.
//

//Creamos ventana
var win2 = Titanium.UI.createWindow({  
    title:'Tab 2',                       //Titulo de la ventana
    backgroundColor:'#fff'               //Color de fondo blanco
});
//Creamos el tab donde sera agregada la ventana
var tab2 = Titanium.UI.createTab({  
    icon:'KS_nav_ui.png',
    title:'Soy Tab 2',
    window:win2
});
//Creamos una etiqueta
var label2 = Titanium.UI.createLabel({
 color:'#999',
 text:'Yo soy la ventana 2',
 font:{fontSize:20,fontFamily:'Helvetica Neue'},
 textAlign:'center',
 width:'auto'
});
//Creamos boton
var boton2 = Titanium.UI.createButton({
 title:'Boton 2',
 top:200,
 width:300,
 height:100
});
//Creamos el evento del boton
boton2.addEventListener('click', function(e){
 alert('Hola desde el botón 2');
});
//Agregamos elementos a la ventana
win2.add(label2);
win2.add(boton2);



//
//  Agregamos los tabs que usaremos al tab group
//
tabGroup.addTab(tab1);  
tabGroup.addTab(tab2);  


// Abre el tabGroup esto significa que abrira todas las tabs que han sido agregadas
tabGroup.open();


Y como prometí colocare dos capturas de pantalla la primera con Android y la segunda con iOS.

Android


iOS



Links de referencia:

Logotipo de Titanium


Smartphones y Computadoras Portátiles


Comparación de algunos smartphone's


iPhone 4s


Características sobresalientes 
  • Procesador Apple A5 de doble núcleo
  • Sistema operativo iOS 5
  • Memoria RAM 1GB
  • GSM/CDMA
  • Batería de duración de hasta 8 horas en conversación vía 3G, 9 navegación web vía Wifi, 10 horas con vídeo y hasta 40 en modo música.
  • Camara 8 megapíxeles retroiluminado
  • Graba 1080p
  • Asistente personal Siri
  • Disponible en 16, 32 y 64 GB
  • GPS
  • Cámara frontal de 2.0 megapíxeles.
  • Precio en contrato entre los $3,899.00 hasta $8,669.00
  • Resolución de pantalla 960x640.
Ventajas
  • Puedes tomar fotografías de manera profesional.
  • Tiene una gran velocidad de booteo, no hay lags, o freeze’s
  • Buen smartphone para gente.
  • Gracias a su procesador puedes disfrutar de juegos en HD con una calidad comparable a las de una consola de videojuegos.
  • Su asistente Siri te ayuda en cualquier problema que tengas y gracias esto complementa su accesibilidad.
  • Tiene servicio iCloud dicho servicio es como una memoria USB pero en la red virtualmente sincronizada a todos tus dispositivos de Apple.
Desventajas
  • Tiene problemas de batería, debido a que se calientan demasiado por gran tiempo de usó.
  • Siri no esta disponible para todos los idiomas.
  • Su precio es muy caro.
  • Su sistema operativo no permite instalar aplicaciones externas.
  • iCloud está limitado hasta 5GB y para almacenar mas tienes que pagar.

Conclusión

Nos permite correr muchas aplicaciones de manera rápida, tiene gran accesibilidad muy bueno para personas con alguna discapacidad visual, buen telefono para los fotografos ya que toma fotos casi perfectas, es excelente para un profesionista que regularmente usa mucho el mail, y se mantiene siempre en contacto con la gent,ya que con su antena GSM/CDMA puede ser usado alrededor del mundo.


HTC Evo 4G


Características sobresalientes
  • Procesador Snapdragon de 1 GHz.
  • Sistema operativo Android 2.3 Gingerbread
  • 1GB RAM
  • Memoria RAM 512 MB.
  • Cámara de 8 megapixeles.
  • Salida HDMI
  • Cámara frontal de 1.3 megapixeles.
  • Tarjeta microSD hasta 32GB, 8 GB incluida.
  • Antena CDMA, WiMAX y soporte para redes 3G.
  • Duración de pila hasta 9 h 20 min (2G) Y hasta 7 h 45 min (3G)
  • Resolución de pantalla 540 x 960 pixels
  • Precio en contrato entre los $1,899.00 hasta $5,669.00
Ventajas
  • Puedes hacer video llamadas.
  • Tiene la capacidad de compartir su acceso a internet hasta con 8 dispositivos.
  • Conector HDMI para reproducir su contenido en televisores.
  • Delgado comparandolo con las características que tiene, con otros equipos.
Desventajas
  • Tiene una batería con muy poca vida.
Conclusión

Este smartphone consta de unas características peculiares ya que su velocidad de 4G y la opción de manejar múltiples ventanas en internet le da ventaja a sus usuarios de estar enterados de todo en todo momento.Al igual que el iPhone 4s tiene una antena CDMA que nos permite ser usado alrededor de mundo.
Comparación de computadoras portatiles


Samsung ChromeBook


Características sobresalientes  
  • Peso de 3.26 libras.
  • Pantalla de 12.1 pulgadas.
  • Batería Li-ion con más de 8.5 horas de uso continuo.
  • Procesador Intel AtomTM Dual-Core.
  • Wi-Fi con banda doble y 3G World-mode (opcional) integrados.
  • Webcam de alta definición con micrófono con cancelación de ruido.
  • 2 puertos USB 2.0.
  • Ranura para tarjeta de memoria 4 en 1.
  • Minipuerto VGA.
  • Teclado Chrome de tamaño estándar.
  • Panel táctil completamente interactivo de gran tamaño.
  • 2 GB de memoria RAM.
  • Memoria interna SSD de 16 GB.
La Samsung Series 5 ChromeBook puede ser comprada desde Amazon, Best Buy, Ebay entre otros a un precio de $429.00 dólares para la versión WiFi y $499.00 dólares para la versión 3G.


Ventajas

Debido a la combinación del sistema operativo Chrome OS y la memoria principal SSD conforman una combinación que permite arrancar la ChromeBook en menos de 10 segundos.La batería nos permite una navegación web de un aproximado de 8.5 horas y con reproducción de video bajaría hasta las cinco horas.Todos los logs, historial entre otras podrá ser almacenada en tu cuenta de Google con este gran beneficio no perderíamos nuestros datos.


Desventajas

Una de las principales desventajas es el precio de la Samsung Series 5 ChromeBook ya que con ello te podrías comprar un iPad, una tablet Android, una laptop e incluso una Mac, realmente este nuevo producto es una mala apuesta por parte de Samsung y también por parte de Google porque por un lado Samsung no vende sus productos ya que la competencia tiene otros y con mejores características y por parte de Google la mayoría de la gente no conocerá su sistema operativo ya que no es muy factible el precio de los portadores de dicho sistema operativo.

Conclusión 

No es una buena inversión ya que puedes comprar con el mismo dinero un smartphone y tener las mismas funciones pero con la opción de tenerlo en tu bolsillo, aunque es muy rápido.






MacBook Pro 13,3 edición 2011




Características sobresalientes
  • Procesador Intel Core i5 (Sandy Bridge) con dos núcleos a 2,3 GHz.
  • 4 Gbytes de memoria SDRAM DDR3 1333 MHz.
  • Disco duro SATA con 500 Gbytes de capacidad.
  • Gráficos integrados Intel HD 3000 con 384 Mbytes de memoria compartida.
  • Pantalla de 13,3 pulgadas con resolución 1280 x 800 píxeles.
  • Webcam FaceTime HD.
  • Unidad SuperDrive 8x.
  • Slot para tarjetas de memoria con soporte SDXC.
  • Puerto FireWire 800.
  • 2 puertos USB 2.0.
  • Puerto Thunderbolt: Mini DisplayPort (Light Peak)
Esta Mac puede ser comprada en Amazon, Best Buy, iStore,Walmart, Sams su precio ronda dentro de los $1,199.99 dólares y en $1,499.99 con un disco duro de 750GB.

Ventajas

  • Hay descuentos para estudiantes tales descuentos pueden ser de 30%.
  • Son fáciles de usar si no se tienen conocimiento sobre computadoras gracias a su gran sistema operativo que tiene.
  • No existen virus en Mac, posiblemente hay uno que otro pero esto regularmente se tratan de evitar mediante updates.
  • Son duraderas, gracias a su estructura de unibody.
  • Tiene un gran consumo eficiente de memoria.

Desventajas

Tienen un alto precio ya que si la comparamos con algunas laptops con exactamente las mismas características veremos que están mas baratas las que tienen Windows, pero como dice el dicho hay veces que lo barato sale caro por eso es una gran inversión, invertir en una ya que dura mas que esas laptops con Windows.Son incompatibles con gran variedad de software ya que casi el 80% de las personas usa Windows.Repararlas sale muy caro y solamente los hacen en los centros mac.

Conclusión

Macs son bonitas, PCs son feas.Las desventajas no son malas ya que es muy difícil que una Mac se te descomponga.

Viendo los diferentes dispositivos se llega a la conclusión de que para tener una computadora portatil tienes que ser una persona tiene que dedicar tiempo y concentrarse en un trabajo especifico en el cual puedes observar las cosas de manera agradable que a diferencia de un smartphone que es algo incomodo, ya que en el solo observarias una pequeña parte.Un smartphone es un dispositivo que regularmente se usa para estar en contacto con personas mediante redes sociales, algún tipo de mensajería instantanea, mail y algunas aplicaciones útiles al usuario, con esto ahorra el usuario tener que cargar con una computadora portátil y tiempo.

Links de referencia: