Tag Archives: Desarollo para iPhone y/o Android

Crear una ingeniosa herramienta de notificación en Titanium

En este post, les mostraré como crear una herramienta de notificación para aquellos que están usando Titanium para desarrollar sus aplicaciones para iPhone.

Algunas veces, cuando colocamos un botón con un icono – digamos en una barra de navegación – un simple icono no es suficiente para hacer que el usuario entienda lo que se supone que debe hacer el botón.

Por ejemplo en este:

Que haría el botón de la derecha (rightNavButton)? La aplicación es un lector de libros electrónicos – si es que esto ayuda, pero estoy seguro de que no lo hará…

Que hay acerca de esto:

Ahora usted sabe que al presionar el botón podrá continuar su lectura – en caso de que algo lo haya sacado del capítulo, como cambiar la configuración, o contestar el teléfono o lo que sea…

Asi que comencemos.

La herramienta es una vista simple con la imagen colocada como fondo.

var lasttipView =  Titanium.UI.createView({
width:205,
height:57,
backgroundImage:"img/bubble.png",
top:0,
right:3
});

El “Continuar leyendo” es una simple etiqueta añadida a la vista.

var lasttipLabel =  Titanium.UI.createLabel({
text:'Continue reading',
color:'#fff',
width:205,
height:34,
top:16,
font:{
fontFamily:'Helvetica Neue',
fontSize:13,
fontWeight:'bold'
},
textAlign:'center'
});
 
lasttipView.add(lasttipLabel);

y la ventana de índice contiene la vista de la herramienta de notificación.

index_win.add(lasttipView);

Yo supongo que ya tenemos la ventana de inicio (index_win) creada

Ahora cuando abrimos la ventana de inicio, el cuadro de diálogo estará ahí y el usuario sabrá lo que hace el rightNavButton. Pero si el cuadro de diálogo permanece ahí se convierte en un fastidio, así que necesitamos conseguir la manera de ocultarlo. Elijo ocultarlo cuando el usuario presione el botón usando un suave desvanecimiento.

El siguiente código crea una animación y lo añade al evento “click”.

var anim_out = Titanium.UI.createAnimation();
anim_out.opacity=0;
anim_out.duration = 250;
});
 
last_read =  Titanium.UI.createButton({
image:"img/tag1.png"
});
 
last_read.addEventListener('click', function() {
lasttipView.animate(anim_out);
});

Ok, aquí se encuentra el código del botón también pero por simplicidad he removido algunas partes que muestran el capítulo e inician otras funciones.

Esto es todo, bastante simple no?

PS. Ustedes pueden usar una imagen de burbuja en sus aplicaciones si lo desean, sólo háganmelo saber – y si sienten curiosidad por la aplicación, aquí está:

Youth, by Isaac Asimov iPhone ebook.

Como crear filas personalizadas para TableViews usando Titanium Móvil

En este post trataré de explicar wholesale NFL jerseys cómo Supply//Demand crear de filas personalizadas para TableViews usando Titanium Appcelerator.

Si usted no sabe acerca de wholesale NFL jerseys Titanium mire aquí.  Yo supongo que ya sabe cómo configurar e iniciar un proyecto en Titanium, así que sólo le mostraré como crear una fila personalizada.

De manera predeterminada, un TableView le permitirá crear una fila que puede tener: una imagen a la izquierda, un titulo y el conjunto decorador del tipo de la fila.  El siguiente código es un ejemplo de los datos estándar que necesitan ser pasados al TableView.

var RegData = [
{ leftImage:'es.png', title:"Spain", hasChild:true },
{ leftImage:'gb.png', title:"United Kingdom", hasChild:true },
{ leftImage:'us.png', title:"United States", hasChild:true },
{ leftImage:'fr.png', title:"France", hasChild:true }
];

var TheTable = Titanium.UI.createTableView({
data:RegData
});

Y el resultado en Iphone es éste:

wholesale Cleveland Browns jerseys

Bien, nos gustaría añadir mas datos a una fila, quizás algo como esto:

Esto requerirá construir la fila “a mano”. Así que necesitamos añadir 2 imageViews, la bandera y la tendencia, y labelViews para el país y el porcentaje. Además necesitamos cambiar el arreglo Miami Dolphins Jerseys de datos desde luego.

var CustomData = [
{ flag:'es.png', country:"Spain", trend:'up.png', percent:'28%' ,hasChild:true },
{ flag:'gb.png', country:"United Kingdom", trend:'down.png', percent:'-3%', hasChild:true },
{ flag:'us.png', country:"United States", trend:'up.png', percent:'8%', hasChild:true },
{ flag:'fr.png', country:"France", trend:'down.png', percent:'-40%', hasChild:true }
];

Creamos una variable “data” como un arreglo que mantendrá los objetos de la fila generada.

var data=[];

entonces recorremos el arreglo “CustomData”, creamos una nueva fila, las vistas de imagen (imageViews) y etiquetas y las añadimos a la fila.

for (var i = CustomData.length - 1; i >= 0;    i--) {
var row = Titanium.UI.createTableViewRow();

var flag =  Titanium.UI.createImageView({
url:CustomData[i].flag,
width:32,
height:32,
left:4,
top:2
});

var country = Titanium.UI.createLabel({
text:CustomData[i].country,
font:{fontSize:16,fontWeight:'bold'},
width:'auto',
textAlign:'left',
top:2,
left:40,
height:16
});

var percent =  Titanium.UI.createLabel({
text:CustomData[i].percent,
font:{fontSize:12,fontWeight:'bold'},
width:'auto',
textAlign:'left',
bottom:0,
left:60,
height:12
});

var trend =  Titanium.UI.createImageView({
url:CustomData[i].trend,
width:16,
height:16,
right:10
});

row.add(flag);
row.add(country);
row.add(percent);
row.add(trend);
row.hasChild=CustomData[i].hasChild; 

row.className = 'coutry_row'; 
data.push(row);
};

Como puede ver, first además, añadimos un nombre de clase (className) a la fila para mejorar el rendimiento del renderizado, ya que el iPhone reusará la plantilla de la fila con cada nuevo dato cuando renderice la tabla.

El resultado obtenido es:

Puede bajar el proyecto Titanium desde aquí. Tendrá que cheap jerseys crear un nuevo proyecto en Titanium y reemplazar la carpeta de recursos con el que se encuentra en el fichero.

Déjeme saber que piensas.