RSS

Instalar Xamarin Studio para desarrollo Android/iOS

Problema: Necesito hacer unas pruebas para generar una pequeña aplicación con Xamarin para probar como funciona la herramienta para desarrollo de una app Android y iOS.

 

Solución:

1.- Lo primero que hay que hacer es descargar Xamarin Studio de la página del proyecto:

https://www.xamarin.com/platform

Hay que registrarse, y después se puede bajar e instalar (Hay que recordar que debemos tener en Android SDK instalado y si se necesita desarrollo iOS se debe instalar Xamarin Studio en una máquina con Sistema Operativo OSX, una mac).

DESINSTALAR: Necesitamos revisar esta liga donde podemos encontrar la forma de desinstalar la herramienta:

https://developer.xamarin.com/guides/cross-platform//installation/uninstalling_xamarin/

HolaMundo en Xamarin.iOS

1.- Primero necesitamos varias cosas para comenzar:

  • Tener una Mac con al menos SO 10.10.
  • Tener última versión de XCode y iOS SDK instalado.
  • Última versión de Xamarin Studio
  • EN caso de Windows, tener la última versión de Visual Studio.

2.- Iniciamos el Xamarin Studio, veremos algo asÍ

xamarin_1

3.- Damos click en:  Archivo>Nuevo>Solución y en la ventana de dialogo: iOS>App>C# y Next.

4.- En la siguiente pantalla ponemos como nombre “HolaMundo_ios” y en Organization ponemos: com.companyname.holamundoios y ponemos en Next.

5.- Elegimos un directorio de trabajo, en este caso yo voy a crear llamado uno Workspace_Xamarin_ios, y ponemos en “Crear”.

Tendremos una pantalla como al siguiente:

xamarin_2

6.- Ahora tenemos que abrir el archivo: Main.storyboard para crear la interfaz de usuario. Cuando cargue por completo, necesitamos agregar un componente del tipo “label” desde la “Barra de Herramientas”.

Vamos a modificar el texto por “Hola Mundo” desde el menú de propiedades, y también vamos a agregar otros componentes para que al final quede así:

xamarin_3

En el componente campo de texto debemos poner el nombre del componente, lo pondremos como: PhoneNumberText y cambiamos en título por: 1-855-XAMARIN.

El botón se llamara: TranslateButton y tendrá como texto “Generar numérico” .

También se generó un botón que se llamará: CallButton, y tendrá el texto “Hacer llamada”.

Los datos se guardan con ⌘ + s.

7.- Ahora hay que crear un nuevo archivo, en el nombre del proyecto> Añadir > Nuevo archivo > Clase Vacía, y ponemos como nombre: PhoneTranslator 

8.- Reemplaza el código con el siguiente:

using System.Text;
using System;

namespace Phoneword_iOS
{
    public static class PhoneTranslator
    {
        public static string ToNumber(string raw)
        {
            if (string.IsNullOrWhiteSpace(raw)) {
                return "";
            } else {
                raw = raw.ToUpperInvariant();
            }

            var newNumber = new StringBuilder();
            foreach (var c in raw)
            {
                if (" -0123456789".Contains(c)) {
                    newNumber.Append(c);
                } else {
                    var result = TranslateToNumber(c);
                    if (result != null) {
                        newNumber.Append(result);
          }
                }
                // otherwise we've skipped a non-numeric char
            }
            return newNumber.ToString();
        }

        static bool Contains (this string keyString, char c)
        {
            return keyString.IndexOf(c) >= 0;
        }

        static int? TranslateToNumber(char c)
        {
            if ("ABC".Contains(c)) {
                return 2;
            } else if ("DEF".Contains(c)) {
                return 3;
            } else if ("GHI".Contains(c)) {
                return 4;
            } else if ("JKL".Contains(c)) {
                return 5;
            } else if ("MNO".Contains(c)) {
                return 6;
            } else if ("PQRS".Contains(c)) {
                return 7;
            } else if ("TUV".Contains(c)) {
                return 8;
            } else if ("WXYZ".Contains(c)) {
                return 9;
            }
      return null;
        }
    }
}

Guardamos el archivo.

9.- Ahora escribimos el código para manejar los componentes de la interfaz gráfica, abrimos el archivo llamado ViewController.class, agregamos el siguiente código debajo de la llamada base.ViewDidLoad();

string translatedNumber = "";

    TranslateButton.TouchUpInside += (object sender, EventArgs e) => {
    // Convert the phone number with text to a number
    // using PhoneTranslator.cs
    translatedNumber = PhoneTranslator.ToNumber(
        PhoneNumberText.Text);

    // Dismiss the keyboard if text field was tapped
    PhoneNumberText.ResignFirstResponder ();

    if (translatedNumber == "") {
        CallButton.SetTitle ("Call ", UIControlState.Normal);
        CallButton.Enabled = false;
    } else {
        CallButton.SetTitle ("Call " + translatedNumber,
            UIControlState.Normal);
        CallButton.Enabled = true;
    }

Ahora agregamos el código para el segundo botón, pero antes agregamos al inicio del archivo una llamada a Foundation, agregamos esta línea hasta arriba junto a las demás:

      using Foundation;

Y abajo del código del botón anterior, agregamos lo siguiente:

CallButton.TouchUpInside += (object sender, EventArgs e) => {
    // Use URL handler with tel: prefix to invoke Apple's Phone app...
    var url = new NSUrl ("tel:" + translatedNumber);

    // ...otherwise show an alert dialog
    if (!UIApplication.SharedApplication.OpenUrl (url)) {
        var alert = UIAlertController.Create ("Not supported", "Scheme 'tel:' is not supported on this device", UIAlertControllerStyle.Alert);
        alert.AddAction (UIAlertAction.Create ("Ok", UIAlertActionStyle.Default, null));
        PresentViewController (alert, true, null);
    }
};

Guardamos el archivo y compilamos con,  ⌘ + B  si la aplicación compila sin errores el IDE mostrar un mensaje.

10.- Ahora vamos a configurar algunos elementos de la aplicación, abrimos el archivo info.plist:

xamarin_4

Vamos a dejar el nombre de Application Name como:  HolaMundo_ios.

11.- En la sección de iPhone Launch Images, se pueden cambiar las imágenes de los proyectos, según las medidas de imágenes para la app y diferentes resoluciones. Para esto hay que descargar los archivos necesarios:

https://developer.xamarin.com/guides/ios/getting_started/hello,_iOS/hello,iOS_quickstart/Resources/Xamarin%20App%20Icons%20and%20Launch%20Images.zip

Después de bajar los archivos se asignan dentro del IDE en Nombre Proyectos>Resources>images.xcassets>AppIcons.appiconset> Contents.json y en esta vista se pueden asignar las imágenes según las medidas requeridas

xamarin_5

12.- Al final debemos probar la aplicación en el simulador, presionar el botón Start y se puede seleccionar el dispositivo, en el IDE. Y debería mostrar la siguiente pantalla:

xamarin_6

Si se oprime el botón de hacer llamada, mostrará un aviso de que el simulador no tiene soporte para emular una llamada telefónica.

 

.

 

 

 

 

 

 

 
Deja un comentario

Publicado por en 20 abril, 2016 en Uncategorized

 

Generar número aleatorio en Objective C, Spritekit, iOS

Pues ahora trabajando con iOS, tuve que generar un número aleatorio para simular unas calificaciones:

PROBLEMA: Quería generar calificaciones desde 1 a 10.

SOLUCIÓN:

Hay que hacer un método que regrese un entero, del 1 al 10 y que reciba dos enteros, que es un rango entre los números que quiero obtener, por ejemplo si quisiera números del 104 al 206.

-(int)getRandomNumberBetween:(int)from to:(int)to {
return (int)from + arc4random() % (to-from+1);
}

 

Y eso es todo … para utilizarlo: 

 

 int calificacion = [self getRandomnumberBetween:1 to10];

 

Saludos. 

 

 

 

 

 
Deja un comentario

Publicado por en 23 agosto, 2014 en Uncategorized

 

Instalar BIBLIOTECA SlidingMenu y el ejemplo,

Problema:

ver como funciona la biblioteca SlidingMenu que sirve para tener menús laterales en las aplicaciones y todo eso que seguramente ya saben … El problema viene cuando tratan de ver los ejemplos porque no es tan sencillo como instalarlo y ya .. y en la página del autor no explica tan bien como para hacer funcionar el ejemplo a la primera.

Errores en la biblioteca y en la aplicación de ejemplo.

Solución:

Una vez que has descargado el archivo .. debes tambén descargar la biblioteca ActionBarSherlock una vez descargados ambos proyectos tenemos que importarlos desde eclipse.

File > Import , elegimos el directorio “library” del directorio que descomprimes al bajar la biblioteca SlidingMenu

De la misma manera hay que importar el ejemplo y la biblioteca ActionBarSherlock.

Ahora que ya están importadas hay otras cosasa que debes hacer:

Para el proyecto de biblioteca de SlidingMenu:

  1. Lo primero es que debes cambiar la versión de android del proyecto, ponemos sobre le proyecto y después en propiedades. debes elegir una versión Google API.
  2. Después debes incluir como biblioteca al proyecto ActionBarSherlock en el proyecto SlidingMenu, haciendo click en propiedades y en la parte de abajo donde dice “Library” seleccionar Add y elegir el proyecto ActionBarSherlock.
  3. Por último, en la clase SlidingFragmentActivity debes incluir el siguiente import:import com.actionbarsherlock.app.SherlockFragmentActivity;
  4. Y en la declaración de la clase, cambiar  “FragmentActivity” y reemplazarla por “SherlockFragmentActivity“.

Para el proyecto de ejemplo de SlidingMenu:

  1. Lo primero que debes hacer es verificar la versión más reciente de la biblioteca de soporte de android, el archivo android-support-v4.jar debe ser el mismo(es decir, debes copiar el mismo archivo en ambos directorios después de eso hacer un Clean desde el menú Proyecto) en la biblioteca SlidingMenu y en AndroidBarSherlock. De esta manera se arregla el siguiente error:Found 2 versions of android-support-v4.jar in the dependency list,but not all the versions are identical (check is based on SHA-1 only at this time). Jar mismatch! Fix your dependencies
  2. Después de hacer ésto, debes seleccionar el proyecto y en el menú contextual seleccionar preferencias. Allí debes borrar las referencias anteriores: “../library” y “../ABS” y debes incluir las referencias de las dos bibliotecas al proyecto, el proyecto SlidingMenu y el ActionBarSherlock.

De esta manera ya no debe marcar ningún error en las bibliotecas y tampoco en el proyecto.

Revisé:

https://github.com/jfeinstein10/SlidingMenu

http://boroniatechnologies.com/installing-slidingmenu-android-library-and-example/

 
2 comentarios

Publicado por en 15 febrero, 2013 en Android, configuración, Eclipse

 

La huella dactilar que has ingresado no es válida, Google Maps API Key

Problema

Necesitaba generar una API Key para utilizar google maps API en Android, pero cuando utilizaba el comando :

$ keytool -list -keystore ~/.android/debug.keystore
...
Certificate fingerprint (MD5): 94:1E:43:49:87:73:BB:E6:A6:88:D7:20:F1:8E:B5:98

En la página para obtener la clave que es:  https://developers.google.com/android/maps-api-signup?hl=es-419

Si se utiliza de esta manera al menos con la versión 7 de java, la huella la regresa en SHA1,  y como se requiere que sea en MD5, sale el mensaje de huella no válida,.

SOLUCIÓN

Para obtener la API KEY solo es necesario agregar la opción -v para que nos muestre el MD5 del certificado, y este es lo que tenemos que poner en la página de obtención de la API KEY:

$ keytool -v -list -keystore ~/.android/debug.keystore
...
 
3 comentarios

Publicado por en 22 agosto, 2012 en Android, Código, configuración, google maps

 

Instalación y Configuración

Instalación y configuración

Se puede consultar una guía para cada plataforma en la siguente dirección:
http://developer.appcelerator.com/blog/2010/08/introducing-new-getting-started-guides.html

Se muestra en detalle la preparación del entorno para el desarrollo de aplicaciones Android
sobre el sistema operativo Ubuntu 10.04.

Para poder desarrollar para Android se necesitan 2 herramientas principalmente:

  •     Titanium Studio
  •     Android SDK o iOS SDK

En caso de requerir crear aplicaciones para iOS es necesario contar con el SDK para el desarrollo
sobre este sistema operativo.

Instalación de Android SDK

Descargar el archivo del android SDK, en nuestro caso tenemos que elegir la plataforma Linux(i386), descargar el paquete
android-sdk_r20.0.1-linux.tgz y extraerlo en un directorio que se defina para el desarrollo en Appcelerator.

Una vez instalado debemos entrar en el directorio de instalación e iniciar el “Android SDK Manager”, como se muestra:

$ cd DEV_HOME/android-sdk-linux/tools
$ ./android

 

Fig 1 – Android SDK Manager

Marcamos los componentes que queremos descargar e instalar, por ejemplo, las plataformas, ejemplos o documentación.

Fig 2 – Descarga de plataforma 2.2

Descargamos los componentes para desarrollar aplicaciónes para Android 2.2

Para verficar que se ha instalado correctamente utilizamos los siguientes comandos:

$ cd DEV_HOME/android-sdk-linux/platforms-tools/
$ ./aapt v

Salida: Android Asset Packaging Tool, v0.2

$ cd DEV_HOME/android-sdk-linux/tools
$ ./android list

Salida:
        Available Android targets:
        ----------
        id: 1 or "android-7"
             Name: Android 2.1
             Type: Platform
             API level: 7
             Revision: 3
             Skins: WVGA800 (default), HVGA, QVGA, WQVGA400, WQVGA432, WVGA854
             ABIs : armeabi
        ----------
        id: 2 or "Google Inc.:Google APIs:7"
             Name: Google APIs
             Type: Add-On
             Vendor: Google Inc

.
.
.

Esto signfica que todo ha sido instalado correctamente y que podemos comenzar a  trabajar con el SDK de Android.

Instalación de Titanium Appcelerator

Hay que registrarse en la página de appcelerator, escribir los datos que se solicitan y esperar una liga de activación.

https://my.appcelerator.com/auth/signup

Una vez que se identifique en la página se mostrará el siguiente enlace https://my.appcelerator.com/resources en donde podrá acceder a la descarga de Titanium, en nuestro caso Linux (32 bits).

Si se tiene una máquina de 64-bits se deben instalar las bibliotecas para poder ejecutar aplicaciones de 32-bits, esto se hace de la siguiente manera:

$ sudo apt-get install ia32-libs

Se debe extraer el contenido del archivo y mover el directorio a la ubicación correspondiente, por ejemplo a un directorio que llamaremos DEV_HOME.

Para comenzar se deben ejecutar los siguientes comandos:

$ cd DEV_HOME/Titanium_Studio/
$ ./TitaniumStudio

Se debe definir el workspace para la herramienta, tal como se hace en el IDE Eclipse.

Fig 3 – Inicio de Titanium Studio

La primera vez que se ejecuta Titanium Studio se pide el usuario y contraseña. Cuando se inicia por primera vez se instala el Titanium SDK, se puede ejecutar el siguiente comando para comprobar si hay actualizaciones:

en el menú:  Help > Check for Titanium SDK Updates


Configurar Titanium Studio

En el IDE de Appcelerator abrir el Dashboard y elegir Configure. SI no se muestra DashBoard, podemos abrir la perspectiva Web y de esta manera
se mostrará automáticamente. Una vez en la pestaña Configure en el segundo bloque podemos ver Configure Native SDKs, como se muestra en la siguente imagen:

Fig 4 – Configurar SDK

Después solo se elige la ruta donde se ha instalado anteriormente el Android SDK

Fig 5 – Definir Android SDK

De esta manera se ha configurado el Android SDK para utilizarlo en Titanium Studio.

Fig 6 – Android en Titanium Studio

Primera Aplicación

Seleccionamos New Titanium Mobile Project y definimos los valores como se muestra en la imagen:

Fig 7 – Nuevo proyecto

Elegimos el template llamado Single Window Application.

El sistema de archivos del proyecto tiene los siguientes archivos:

  •     Directorio Resources, contiene archivos del proyecto, archivos de código e imágenes
  •     app.js, Cada proyecto tiene uno, este archivo es el primero en cargarcuando la aplicación es ejecutada
  •     tiapp.xml, los datos que se definen en la definición del proyecto,

Se generan también directorios específicos de la plataforma, pueden ser:

  •         iphone
  •         android
  •         mobileweb

 

Fig 8 – Sistema de archivos

Se debe seleccionar algún archivo para que se habilite la opción Run en la pestaña App Explorer, después Android Emulator

Fig 9 – Emulador
 
Deja un comentario

Publicado por en 21 julio, 2012 en Android, Appcelerator

 

Sección 0 – Introducción a Javascript

Javascript es un lenguaje de programación que se utiliza para crear páginas web dinámicas.
Es un lenguaje de programación interpretado, es decir, no es necesario compilar el código fuente.

Sintaxis

  • No se tienen en cuenta los espacios en blanco y las nuevas líneas
  • Se distinguen las mayúsculas y minúsculas
  • No se define el tipo de las variables
  • No es necesario terminar cada sentencia con el carácter de punto y coma (se recomienda hacerlo)
  • Se pueden incluir comentarios:
 // una línea


 /* varias
    líneas
 */

Variables

Declarar una variable explícitamente:

 var resultado = 1 + 2 ;

ó

var num1 = 1;
var num2 = 2;
var resultado = num1 + num2;

Si no se utiliza la palabra var se crea una variable global.

Identificadores

Pueden incluir letras. números, y los símbolos $ y _ . Además el primer carácter no puede ser un número.

Tipos de variables

  • Variables numéricas:  var costo = 16;
  • Variables de texto:    var mensaje = “Hola”;
/* El contenido de texto1 tiene comillas simples, por lo que
        se encierra con comillas dobles */
    var texto1 = "Una frase con 'comillas simples' dentro";
 
/* El contenido de texto2 tiene comillas dobles, por lo que
        se encierra con comillas simples */
    var texto2 = 'Una frase con "comillas dobles" dentro';

Si se quiere incluir…         Se debe incluir…
Una nueva línea                     \n
Un tabulador                          \t
Una comilla simple                 \’
Una comilla doble                   \”
Una barra inclinada                 \\

Booleanos

Son variables de tipo lógico que pueden tomar los valores falso o verdadero, se declarar de la siguiente manera:

var encendido = true;
var apagado = false;

Arreglos

Se le llaman también vectores. Los arreglos pueden almacenar una colección de variables.

var numeros = [1,2,3,4,5,6,7,8,9,10];var primero = numeros[0];
var tercero = numeros[2];


Operadores


Asignación

La asignación siempre se realiza a una variable.

var num 1 = 2;
var texto = "Hola";


Incremento y decremento

Estos operadores son válidos para variables numéricas:

var num = 5;
++num; // num = 6
--num; // num = 5


Lógicos

  • Negación
var visible = true;
    !visible; // false
  • Conjunción
var si = true;
    var no = false;
    resultado = si && no; // resultado = false
  • Disyunción
var si = true;
    var no = false;
    resultado = si || no; // resultado = true

Numéricos

  • Suma +
  • Resta –
  • Multiplicación *
  • División /


Relacionales

  • Mayor que  >
  • Menor que <
  • Mayor o igual >=
  • Menor o igual <=
  • Igual         ==
  • Distinto      !=


Estructuras de control de Flujo

Las estructuras de control en Javascript se utilizan de la siguiente manera:

If

if(condición){
    ...
}


If-else

if(condicion) {
  ...
}
else {
  ...
}


For

for(inicializacion; condicion; actualizacion) {
  ...
}

For-in

for(indice in array) {
  ...
}

ejemplo:

var dias = ["Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"];
 
    for(i in dias) {
      alert(dias[i]);
    }


Funciones básicas

Transforma caracteres a mayúsculas

var mensaje1 = "Hola";
    var mensaje2 = mensaje1.toUpperCase(); // mensaje2 = "HOLA"

Transforma caracteres a minúsculas

var mensaje1 = "HolA";
    var mensaje2 = mensaje1.toLowerCase(); // mensaje2 = "hola"

Obtiene carácter en la posición indicada:

  var mensaje = "Hola";
    var letra = mensaje.charAt(0); // letra = H
    letra = mensaje.charAt(2);     // letra = l

indexOf(caracter), calcula la posición en la que se encuentra el carácter indicado dentro de la cadena de texto.

var mensaje = "Hola";
    var posicion = mensaje.indexOf('a'); // posicion = 3
    posicion = mensaje.indexOf('b');     // posicion = -1

Su función análoga es lastIndexOf():

var mensaje = "Hola";
    var posicion = mensaje.lastIndexOf('a'); // posicion = 3
    posicion = mensaje.lastIndexOf('b');     // posicion = -1

substring(inicio, final), extrae una porción de una cadena de texto.

var mensaje = "Hola Mundo";
    var porcion = mensaje.substring(2); // porcion = "la Mundo"
    porcion = mensaje.substring(5);     // porcion = "Mundo"
    porcion = mensaje.substring(7);     // porcion = "ndo"

split(separador), convierte una cadena de texto en un array de cadenas de texto. La función parte la cadena de texto determinando sus trozos a partir del carácter separador indicado:

var palabra = "Hola";
    var letras = palabra.split(""); // letras = ["H", "o", "l", "a"]

length, calcula el número de elementos de un array

var vocales = ["a", "e", "i", "o", "u"];
    var numeroVocales = vocales.length; // numeroVocales = 5

concat(), se emplea para concatenar los elementos de varios arrays

var array1 = [1, 2, 3];
    array2 = array1.concat(4, 5, 6);   // array2 = [1, 2, 3, 4, 5, 6]
    array3 = array1.concat([4, 5, 6]); // array3 = [1, 2, 3, 4, 5, 6]

join(separador), es la función contraria a split(). Une todos los elementos de un array para formar una cadena de texto. Para unir los elementos se utiliza el carácter separador indicado

var array = ["hola", "mundo"];
    var mensaje = array.join(""); // mensaje = "holamundo"
    mensaje = array.join(" ");    // mensaje = "hola mundo"

pop(), elimina el último elemento del array y lo devuelve. El array original se modifica y su longitud disminuye en 1 elemento.

var array = [1, 2, 3];
    var ultimo = array.pop();
    // ahora array = [1, 2], ultimo = 3

push(), añade un elemento al final del array. El array original se modifica y aumenta su longitud en 1 elemento. (También es posible añadir más de un elemento a la vez)

var array = [1, 2, 3];
    array.push(4);
    // ahora array = [1, 2, 3, 4]

shift(), elimina el primer elemento del array y lo devuelve. El array original se ve modificado y su longitud disminuida en 1 elemento.

  var array = [1, 2, 3];
    var primero = array.shift();
    // ahora array = [2, 3], primero = 1

unshift(), añade un elemento al principio del array. El array original se modifica y aumenta su longitud en 1 elemento. (También es posible añadir más de un elemento a la vez)

var array = [1, 2, 3];
    array.unshift(0);
    // ahora array = [0, 1, 2, 3]

reverse(), modifica un array colocando sus elementos en el orden inverso a su posición original:

var array = [1, 2, 3];
    array.reverse();
    // ahora array = [3, 2, 1]

Las siguientes instrucciones permiten controlar la ejecución de los ciclos for, deteniendo o saltándose algunas ejecuciones.

Uso de break

    var cadena = "Hola Uno Dos Tres Cuatro Cinco Seies Siete ...";
    var letras = cadena.split("");
    var resultado = "";
     
    for(i in letras) {
      if(letras[i] == 'a') {
        break;
      }
      else {
        resultado += letras[i];
      }
    }
    alert(resultado);


Uso de continue

    var cadena = "Hola Uno Dos Tres Cuatro Cinco Seis Siete ...";
    var letras = cadena.split("");
    var resultado = "";
     
    for(i in letras) {
      if(letras[i] == 'a') {
        continue;
      }
      else {
        resultado += letras[i];
      }
    }
    alert(resultado);
    // muestra "Hol Uno Dos Tres Cuatro Cinco Seis Siete ..."

While

   while(condicion) {
      ...
   }


do – While

    do {
      ...
    } while(condicion);


Switch

   switch(variable) {
      case valor_1:
        ...
        break;
      case valor_2:
        ...
        break;
      ...
      case valor_n:
        ...
        break;
      default:
        ...
        break;
    }


Funciones

Una función es un conjunto de instrucciones que se pueden utilizar para realizar una tarea concreta, de tal modo que
no es necesario escribir dos veces el mismo código dentro del mismo programa.

Una función se define de la siguiente manera:

    function nombre_funcion() {
      ...
    }

Ejemplo:

   function suma() {
      resultado = numero1 + numero2;
    }

y usando la función:

    var resultado;   
    var numero1 = 3;
    var numero2 = 5;
    resultado = suma_y_muestra();

Argumentos y valores de retorno:

function calcula(precio) {
      var impuestos = 1.16;
      var gastosEnvio = 10;
      var precioTotal = ( precio * impuestos ) + gastosEnvio;
    }

con valor de retorno:

function calcula(precio) {
      var impuestos = 1.16;
      var gastosEnvio = 10;
      var precioTotal = ( precio * impuestos ) + gastosEnvio;
      return precioTotal;
    }

Ámbito de las variables

En la variable local, no se muestra el mensaje porque la variable mensaje está definida dentro de la función.

    function creaMensaje() {
      var mensaje = “Mensaje de prueba”;
    }

creaMensaje();

    alert(mensaje);

Variable globales se pueden definir en cualquier parte del programa:

var mensaje = “Mensaje de prueba”;
function muestraMensaje() {
    alert(mensaje);
}

Si una variable es declarada dentro de una función sin la palabra var, entonces será una variable global.


Clases y objetos

Para definir clases en Javascript se hace por medio de funciones como se muestra en el siguiente ejemplo:

       function Persona(nombre) {
           this.nombre = nombre;
           this.peso = 75;
           this.altura = 165;
           this.sexo = 'Hombre';
           this.edad= 26;
       }

A esta función se le llama constructor de la clase. Hay dos formas para crear esta función constructora:

function Funcion( parametros )
    {
        // Codigo
    };

o también así:

var Funcion = function (parametros) {
    /* Codigo*/
}

Para definir un objeto de la clase, se deber hacer de la siguiente manera:

var hombre = new Persona('Isma');

Para cambiar las propiedades de un objeto:

    var mujer = new Persona('Ana');
    mujer.peso = 67;
    mujer.sexo = 'mujer';

Para crear una función miembro, es decir, una función que forma parte del objeto, se debe declarar e inicializar dentro de
la función constructor de la clase, de la siguiente manera:

function Persona(nombre) {
            this.nombre = nombre;
            this.peso = "75kg";
            this.altura = 165;
            this.dormir = dormir; // Nueva función miembro
 } function dormir() {
            alert(this.nombre + ' está durmiendo');
 }

Para utilizar la función se hace de la siguiente manera, por ejemplo:

     mujer.dormir();

Los objetos están compuestos de prototipos en Javascript, esto permite agregar métodos al prototipo del objeto directamente
de la siguiente manera:

//No tocamos la funcion constructora
Persona.prototype.comer = function() {
     alert(this.nombre + ' está comiendo');
}//[...]

mujer.comer();

Herencia

Podemos heredar de una clase de la siguiente manera:

   var Trabajador = function(){
        this.numero = 12;
        this.antiguedad = 5;   
   }   // heredamos de persona
   Trabajador.prototype = new Persona();

   
   var empleado1 = new Trabajador();
   alert(empleado1.peso);

Una variable de una clase puede hacerse privada si se define como local, en el siguiente ejemplo se puede ver esta característica:

var Gato = function (nombre) {
        //Creamos una variable privada sin asignarle "this" a esta
        this.nombre = nombre;
        // Creamos un metodo privado en muchos aspectos (XD) definiendo una funcion normal
        var frecuencia = "moderada";
        function irAlBano(frecuencia) {
            alert("El gato va al baño con frecuencia "+frecuencia);
        }
        irAlBano(frecuencia);
    }
    var Michin = new Gato("Michifu");

El código anterior crea la variable privada “frecuencia”, y la función privada “irAlBano”. Para comprobar que la variable sea privada, ejecutemos alert(Michin.frecuencia), lo que devuelve undefined

var Gato = function (nombre) {
        this.nombre = nombre;
        //Creamos una variable privada sin asignarle "this" a esta
        var frecuencia = "moderada";
        // Creamos un metodo privado
        function irAlBano(frecuencia) {
            alert("El gato va al baño con frecuencia "+frecuencia);
        }
        this.leerFrec = function() {
            irAlBano(frecuencia);
        }
    }
    var Michin = new Gato("Michifu");
    Michin.leerFrec();
    //Nos retorna "El gato va al baño con frecuencia moderada" ;)


Clases predeterminadas en JavaScript

  • Array
var famname = new Array(3);
       famname[0] = "Jani";
       famname[1] = "Tove";
       famname[2] = "Hege";
  
       famname.length;
       famname.join(".");
       famname.reverse();
       famname.push("Ola","Jon");
       famname.pop();
       famname.shift();

-length sirve para conocer la cantidad de elementos que contiene la matriz propiamente dicha.
-join permite unir todos los elementos separados por una cádena de caracteres que pasamos como parámetro, en este caso, “.”.
-reverse posiciona los elementos actuales de forma inversa.
-push nos permite añadir un nuevo elemento dentro de la matriz (en realidad, podemos añadir cualquier cantidad de ellos).
-pop extrae el último elemento de la matriz y lo devuelve.
-shift extrae y devuelve el primer elemento de la lista.

  • Date
var d = new Date();
       d.getDate();
       d.getMonth() + 1;
       d.getFullYear();
  • Math
Math.round(7.25);
       Math.random();
       no = Math.random()*10;
       Math.round(no);
       Math.max(2,4);
       Math.min(2,4);
  • String

Propiedades

  •     length
  •     prototype
  •     constructor

Métodos

anchor()     big()    blink()     bold()     charAt()     charCodeAt()     concat()     fixed()
fontcolor()     fontsize()     fromCharCode()     indexOf()     italics()     lastIndexOf()     link()
localeCompare()     match()     replace()     search()     slice()     small()     split()     strike()
sub()     substr()     substring()     sup()     toLocaleLowerCase()     toLocaleUpperCase()
toLowerCase()     toString()     toUpperCase()     valueOf()

 

😄

http://www.librosweb.es/javascript/
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_JavaScript/OOP
http://www.krispytech.com/blog/?p=304
http://www.cristalab.com/tutoriales/programacion-orientada-a-objetos-oop-con-javascript-c232l/

 
Deja un comentario

Publicado por en 21 julio, 2012 en Uncategorized

 

Instalar aplicaciones Android en Windows

Aunque en el emulador del SDK android se pueden ejecutar aplicaciones, existe una herramienta llamada YouWave que permite instalar las aplicaciones de manera muy fácil y sencilla.

Primero hay que descargar la aplicación desde su página:

http://youwave.com/download.html

Es importante decir que es una herramienta de paga, por lo que solo se podrá usar por un periodo de prueba,
si te gusta puedes comprarla para usarla por más tiempo. Por el momento podremos ver algunas de las  aplicaciones funcionando, si es que aún no se deciden a comprarse un teléfono con Sistema Operativo Android.

Un precio razonable es el costo de la activación, 15 dólares.

Una vez que se descarga el archivo .exe, solo tenemos que ejecutarlo y seguir las instrucciones.

Al terminar la instalación tenemos la ventana de la aplicación que se divide en dos, del lado derecho se ejecuta
el emulador de android y en el izquierdo vemos los archivos que podemos instalar.

Para instalar una aplicación de forma local tenemos que agregar el archivo .apk en el directorio que muestra
YouWave en la parte superior, en este ejemplo sería:

Después de agregar el archivo .apk ya aparece la aplicación del lado izquierdo del panel para ser instalada.

Haciendo doble click sobre la aplicación ya comienza a instalarse en el dispositivo. Y eso es todo, ya se ve la aplicación funcionando .. = 3

Para instalar aplicaciones desde el market, se pone en el menú principal la opción View > Online Content y se elige el android market, después de bajar la aplicación del market ponemos View > Apps y se instala para poder descargar el contenido desde el market.

Podemos descargar la aplicación e instalarla:

Ejecución de la aplicación en YouWave:

 
Deja un comentario

Publicado por en 18 junio, 2012 en Android, configuración, Uso