domingo, 25 de agosto de 2013

iPhone 5C, realidad o simple Rumor?

Hola amigos, como todos sabéis son muchos los rumores que apuntan a que Apple presentara el dia 10 de Septiembre el tan esperado iPhone 5S y según algunos rumores un iPhone de bajo coste llamado iPhone 5C. 





 Segun algunas informaciones se trataria de un modelo «low cost» que tendrá una carcasa fabricada en plástico, en principio  bastante resistente, y será bastante  ligero, según informan medios chinos, hasta el punto de poder soportar "golpes y caídas".


El iPhone 5C tendría una pantalla de 4 pulgadas y con el mismo formato que el iPhone 5, aunque no contaría con algunas funcionalidades como el asistente virtual Siri.
En cuanto a las medidas de este teléfono, que a me recuerda un poco al iPhone 3G, serían de 123.8 x 58.6 milímetros y un grosor de 12 milímetros frente a los 7.6 del iPhone 5.
Según estos rumores, iPhone 5C va destinado a mercados emergentes y a un público más juvenil, o con menos poder adquisitivo.
El precio que se rumorea que puede costar, es entre 300 € y 400 €.
Que frente a los casi 700€ que cuesta el iPhone 5 estaríamos hablando de casi la mitad.
Los que conocemos a Apple desde hace tiempo sabemos que hasta ahora, Apple no da un paso atras ni para tomar impulso, por ese motivo a mi personalmente me cuesta mucho creerme que este rumor sea cierto.
Mi intuición me dice que posiblemente se trate de una imitación de esas que tan bien se les da a los chinos de hacer, como todos sabemos en el mercado hay imitaciones chinas de casi todos los modelos de teléfonos de fabricantes como Samsung y tambien de Apple, tanto sus telefononos como sus tabletas.
Hay infinidad de testimonios de imitaciones, unas mejores conseguidas que otras pero en definitiva imitaciones.
Mirad este video sobre la imitación de un iPhone 5.



Resumiendo un poco, mi opinión personal es que Apple va a presentar el iPhone 5S y es probable que algún nuevo modelo de iPad, pero siempre en su linea, mas potentes con menos peso y con mejores cámaras, pero en ningún caso con menos prestaciones que los que anteriormente a sacado al mercado, al menos esa a sido su política hasta este momento, a mi personalmente me defraudaría mucho un retroceso así.



viernes, 12 de abril de 2013

El hombre que se quedo si Whatsapp.............

La verdad es que es bastante triste, pero realmente es así, ahora la gente en las terrazas de los bares no habla con los amigos mientras toman una cervezas , solo están sentados juntos, pero cada uno esta con su Movil de ultima generación chateando con otras personas y mirando su Twitter  y Facebook y solo apartas la mirada del móvil para decir al camarero que si, cuando te pregunta:  ¿cerveza para todos?.....que triste ....la familia en casa, la tele puesta y en el sofá cada uno con su teléfono en la mano y Whatsapeando con otras personas...Que a sido de esos tiempos en que mientras se comía o se tomaba unas cervezas aprovechábamos para criticar a los que no estaban presentes o a los jefes o políticos etc... Pero todo a cambiado "Vivimos en la era de la comunicacion" eso gritan algunos a los cuatro vientos, pero yo creo que estamos viviendo la era de la incomunicación personal, muchas redes sociales mucha tecnología y resulta que con las personas que tenemos mas cerca ni hablamos y si lo hacemos es a través de Whatsapp o similares. 
Entre la televisión y ahora los móviles, se esta perdiendo la costumbre de conversar con las personas de nuestro entorno y familiares y nos estamos convirtiendo en seres solitarios y huraños .





domingo, 24 de marzo de 2013

Creación de métodos en Objective-C

Creación de Metodos en Objective-C.



Vamos a repasar un poco la creación de métodos en Objective-C:




Un metodo en Objective-C es lo que en otros lenguajes se suelen llamar funciones.

Los métodos pueden crearse que no devuelven nada :     -(void)nombreMetodo;


Si devuelve algún valor se pone entre paréntesis su tipo : -(NSString *)nombreMetodo;


Si no devuelve nada pero recibe parámetros: -(void)nombreMetodo: (NSString *) parámetro;


Si devuelve un valor y recibe parámetros: -(NSInteger)nombreMetodo:(NSString*)parámetro;


Si recibe varios parámetros:
-(NSString*)nombreMetodo:(NSString*)datoUno otroDatoMas:(NSInteger)datoDos yOtroDatoMas:(BOOL)datoTres; 


Así se podría crear un método que recibiese múltiples datos, notese que entre:  datoUno y otroDatoMas hay un espacio.


los métodos que empiezan por el signo  - son métodos de instancia y los que empiezan por el signo + son métodos de clase.

Aqui pongo un ejemplo del uso de métodos y su forma de llamarlos.





Contenido del archivo de encabezado ViewController.h:


//
//  ViewController.h
//  Metodos
//
//  Created by Francisco on 24/03/13.
//  Copyright (c) 2013 Francisco. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
@property NSInteger numeroUno,numeroDos,numeroTres,total;
@property (nonatomic,strong) NSString * nombreUno,* nombreDos,* nombreTres,* nombreCuatro;
@property (strong, nonatomic) IBOutlet UILabel *mostrarTexto;

-(NSInteger)metodoQueRecibeDosVariablesNumericas:(NSInteger)valorUno segundoParametro:(NSInteger)valorDos;
-(void)metodoQueNoDevuelveNada;
-(void)metodoQueRecibeUnParametro:(NSString*)parametro;
-(NSInteger)metodoQueDevuelveUnParametro;
-(void)metodoQueRecibeVariosParametros:(NSString*)parametroUno aquiVaElParametroDos:(NSInteger)parametroEnteroDos aquiVaElTercerParametro:(NSString*)tercerParametroTexto;

- (IBAction)verMetodoUno:(id)sender;
- (IBAction)verMetodoDos:(id)sender;
- (IBAction)verMetodoTres:(id)sender;
- (IBAction)verMetodoCuatro:(id)sender;

@end


Contenido del archivo de implementación ViewController.m


//  ViewController.m
//  Metodos
//
//  Created by Francisco on 24/03/13.
//  Copyright (c) 2013 Francisco. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

-(NSInteger)metodoQueRecibeDosVariablesNumericas:(NSInteger)valorUno segundoParametro:(NSInteger)valorDos
{
    //Este metodo recibe dos parametros numericos tipo NSInteger y los multiplica devolviendo con el return el valor de la multiplicacion.
    // Y asigna los valores recibidos a dos variables enteras, para poder usarlas fuera del metodo.
    _total= valorUno * valorDos;
    _numeroDos = valorUno;
    _numeroTres = valorDos;
   
    return _total;

}

- (void)metodoQueNoDevuelveNada
{
   //Este metodo, hace algo, pero no devuelve ningun valor.
    
    _mostrarTexto.text = @"Este texto es de el metodo que no devuelve nada";
}

- (void)metodoQueRecibeUnParametro:(NSString *)parametro
{
    //Este metodo recibe un parametro de texto y lo muestra en la etiqueta.
    _mostrarTexto.text = parametro;
}
-(NSInteger)metodoQueDevuelveUnParametro
{
    //En este metodo vamos a devolver un valor NSInteger que es un valor numerico
    //Para ello llama al metodo que recibe dos parametros numerico y que nos devuelve el resultado multiplicado. 
    [self metodoQueRecibeDosVariablesNumericas:154 segundoParametro:43];
    _numeroUno = _total;
   
    return _numeroUno;
}
-(void)metodoQueRecibeVariosParametros:(NSString *)parametroUno aquiVaElParametroDos:(NSInteger)parametroEnteroDos aquiVaElTercerParametro:(NSString *)tercerParametroTexto
{
    //Este metodo recibe varios parametros dos de texto y uno numerico.
    _mostrarTexto.text = [NSString stringWithFormat:@"%@ ,Parametro Numerico: %i , %@",parametroUno,parametroEnteroDos,tercerParametroTexto];
}

 //aqui podemos ver las llamadas a los metodos al pulsar cada boton.

- (IBAction)verMetodoUno:(id)sender
{
    [self metodoQueNoDevuelveNada];
}

- (IBAction)verMetodoDos:(id)sender
{
    [self metodoQueDevuelveUnParametro];
     _mostrarTexto.text = [NSString stringWithFormat:@"Valor de multiplicar: %i x %i %i",_numeroDos,_numeroTres,_numeroUno];
}

- (IBAction)verMetodoTres:(id)sender
{
    [self metodoQueRecibeUnParametro:@"Parametro recibido de texto"];
}

- (IBAction)verMetodoCuatro:(id)sender
{
    [self metodoQueRecibeVariosParametros:@"Parametro de Texto" aquiVaElParametroDos:108 aquiVaElTercerParametro:@"Tercer Parametro tambien de texto"];
}

- (void)viewDidLoad
{
    [super viewDidLoad];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end


Hay que recordar que la UILabel o etiqueta donde se muestra el texto la he llamado: mostrarTexto y que hay que conectar la etiqueta y los botones con su correspondiente IBOutlet e IBAction para que funcione en tu XCode.















Espero les guste y les sirva para algo si alguien queiere que esplique algo determinado que me ponga un comentario con su petición.
Saludos.

sábado, 2 de marzo de 2013

Reutilizar metodos para reproducir varios sonidos o mostrar alertas diferentes.

Tutoriales XCode.



En este pequeño tutorial vamos a ver como usar un metodo para reproducir varios sonidos diferentes y tambien otro metodo para mostrar varias alertas diferentes.

Al hacer la llamada al método le pasamos en una variable el texto que queremos que nos muestre y en el otro caso el nombre del archivo de audio que queremos que reproduzca.











Archivo de cabecera ViewController.h.


//
//  ViewController.h
//  PruebasVarias
//
//  Created by Francisco on 02/03/13.
//  Copyright (c) 2013 Francisco. All rights reserved.
//

#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h> //Hay que importar el Framework de sonido

@interface ViewController : UIViewController
@property (strong,nonatomic) AVAudioPlayer *reproductor;
@property (strong,nonatomic) NSString * idAudio;
@property (strong,nonatomic) UIAlertView * alerta;
@property (strong,nonatomic) NSString * idAlerta;
@property (strong,nonatomic) NSString * sonido;
- (IBAction)mostrarAlerta:(id)sender;
- (IBAction)reproducirSonido:(id)sender;


-(void)nombreSonido: (NSString *)recibeDatos;
-(void)textoAlertas: (NSString*)textoQueMuestra;

- (IBAction)alerta2:(id)sender;
- (IBAction)alerta3:(id)sender;
- (IBAction)sonido2:(id)sender;
- (IBAction)sonido3:(id)sender;


@end



Archivo de implementación ViewController.m.

//
//  ViewController.m
//  PruebasVarias
//
//  Created by Francisco on 02/03/13.
//  Copyright (c) 2013 Francisco. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController
@synthesize reproductor,idAlerta,idAudio,alerta,sonido;

- (void)viewDidLoad
{
    [super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (IBAction)mostrarAlerta:(id)sender
{
    [self textoAlertas:@"Alerta Uno"];
}

- (IBAction)reproducirSonido:(id)sender {
    [self nombreSonido:@"Alerta"];
    
    
}

-(void)nombreSonido: (NSString *)recibeDatos
{
  
    NSError *error;
    NSString *ruta =[[NSBundle mainBundle]pathForResource:recibeDatos ofType:@"mp3"];
    NSURL *url =[[NSURL alloc]initFileURLWithPath:ruta];
    self.reproductor=[[AVAudioPlayer alloc]initWithContentsOfURL:url error:&error];
        
       [self.reproductor prepareToPlay];
        [self.reproductor play];
}
-(void)textoAlertas: (NSString*)textoQueMuestra
{
    alerta =[[UIAlertView alloc]initWithTitle:textoQueMuestra message:@"Texto Mostrado" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
    [alerta show];
}

- (IBAction)alerta2:(id)sender
{
    [self textoAlertas:@"Alerta Dos"];
}

- (IBAction)alerta3:(id)sender
{
    [self textoAlertas:@"Alerta Tres"];
}

- (IBAction)sonido2:(id)sender
{
    
    [self nombreSonido:@"Alerta2"];
}

- (IBAction)sonido3:(id)sender
{
    [self nombreSonido:@"Tap"];
}

@end



Bueno espero les guste y les sirva para algo, para cualquier duda o sugerencia dejen sus comentarios.

gracias.

lunes, 11 de febrero de 2013

Un lenguaje de programacion para empezar en este mundo.

Scratch es un sistema grafico de programación bastante básico pero muy interesante para iniciarse en el mundo de la programación y muy divertido, hay miles de tutoriales y mucha información al respecto.
Para todo aquel que quiera iniciarse en este mundo es un buen modo de empezar para comprender el complejo mundo de la programacion.

Desde aqui se peude descargar el entorno de programacion que es totalmente gratis y esta para Mac, Windows y linux.

http://info.scratch.mit.edu/es/Scratch_1.4_Download









Bueno espero les guste y empiecen a hacer pruebas, y quizas algun dia se conviertan en unos grandes programadores.
Varios enlaces muy interesantes: 

           http://www.scribd.com/doc/35299373/Scratch-Manual

            http://www.scribd.com/doc/23081518/ManualdeScratch

Para cualquier duda ya sabeis que solo teneis que preguntar.
Saludos.





martes, 5 de febrero de 2013

S4A Una sencilla y facil forma de programar nuestro Arduino.




Scratch for Arduino (S4A) Es un proyecto creado por Marina Conde, Víctor Casado, Joan Güell, José García y Jordi Delgado con la ayuda del Grupo de Programación Smalltalk del Citilab.

 Aqui teneis  su página web: http://seaside.citilab.eu/scratch/arduino.


La forma de usarlo es bastante sencilla, tenemos que descargar el firmware y una vez descargado abrimos el IDE oficial de Arduino:


Pegamos en el IDE el FirmWare descargado y con nuestro Arduino conectado lo verificamos y cargamos en el Arduino, recordad que tenéis que tener cerrado el S4A para que no entren en conflicto ambos programas, una vez cargado el " firmware" en nuestro Arduino ya podemos cerrar el IDE oficial y abrir el S4A.

Y ya podeis crear vuestros proyectos con el S4A es muy secillo pues esta en Español y una vez sepamos lo que queremos hacer solo es cuestión de ir arrastrando instrucciones al entorno.


Este es el programa mas basico en Arduino y que enciende un LED pinchado en la salida digital nº 13, lo enciende durante un segundo y lo apaga un segundo y así sucesivamente.

Su equivalente en S4A seria esto:


Como se puede apreciar la forma gráfica de S4A es mucho mas sencilla y fácil de aprender.
Dentro del propio programa hay un montón de ejemplos incluso podemos utilizar el Arduino para crear juegos y muchísimas cosas mas, creo que esto abre un abanico de nuevas posibilidades para nuestro Arduino.


Bueno, en internet hay mucha información al respecto sobre este apasionante mundo del Arduino y sus aplicaciones y sobre el S4A.





Un saludo y espero les guste, para cualquier duda dejen sus comentarios y preguntas y les responderé lo antes posible.
Gracias.


jueves, 24 de enero de 2013

Proyecto Coche Fantastico con Arduino.

 Luces tipo "Coche Fantastico" con Arduino.



Hacer que seis LEDs se enciendan progresivamente, consiguiendo el efecto que todos recordamos de la peli "El coche Fantastico".


Material Empleado:


-Una Placa Arduino UNO R3 (en mi caso).
- 6 LEDs Rojos.
- 6 Resistencias de 220 Ohm.
- Varios cables para hacer los puentes.
- Una Placa de prototipos.


Este es el cableado:

Este es el Código necesario para hacer funcionar el Arduino:





int timer = 50;// Este es el retardo de encendido de un led a otro.

void setup() {
  
  for (int thisPin = 2; thisPin < 8; thisPin++)  {
//Aqui le estamos diciendo que los pines del 2 al 8 son de salida 
 pinMode(thisPin, OUTPUT);     
  }
}
void loop() {
  
  for (int thisPin = 2; thisPin < 8; thisPin++) { 
    // Aqui le decimos que encienda los pines del 2 al 8
    digitalWrite(thisPin, HIGH);   
    delay(timer);                  
    // delay es la pausa entre encendidos.
    digitalWrite(thisPin, LOW);    
  }
  //Cuando termina de encender todos los pines empieza al contrario
  for (int thisPin = 7; thisPin >= 2; thisPin--) { 
    // Ahora los enciende del 7 al 2
    digitalWrite(thisPin, HIGH);
    delay(timer);
    // tambien realiza la pausa o retraso con delay
    digitalWrite(thisPin, LOW);
  }
}