martes, 10 de febrero de 2015

¿Cómo crear un disco de arranque en Yosemite?

A todos aquellos que os hayan vendido o tengáis un MAC pensando que nunca os dará un problema, lamento informaos de que algún día os podéis llevar una amarga sorpresa. Hace mucho mucho tiempo (Mountain Lion queda tan lejos), los MAC venían con unos discos de instalación por si queríamos o necesitábamos instalar o restaurar el sistema desde cero. Desde la llegada de Mavericks, los OSx se descargan desde el AppStore, por lo que si necesitáis restaurar el sistema y no tenéis una unidad de disco de arranque tendréis un problema. Para los precavidos, aquí están los pasos a seguir para crear vuestro disco de arranque con Yosemite.

1. Descargar Yosemite desde el AppStore





2. Necesitaremos una memoria externa con al menos 8 gb de capacidad. Desde utilidad de discos tendremos que crear una partición con el formato Mac OS Plus y la opción "Tabla de particiones GUID".






3. Abrimos el terminal e introducimos la siguiente instrucción en la línea de comandos

sudo /Applications/Install\ OS\ X\ Yosemite.app/Contents/Resources/createinstallmedia --volume /Volumes/Recover --applicationpath /Applications/Install\ OS\ X\ Yosemite.app --nointeraction

Y ya tenemos nuestro disco de arranque Yosemite. Espero que os sirva de ayuda.

martes, 3 de febrero de 2015

Fitbit

Tras más de un mes de uso intensivo de fitbit me propongo hacer una lista de pros y otra de contras de este dispositivo que está causando furor. El propósito de las listas es hacer un resumen de mi experiencia con la pulsera para ayudar a otros usuarios a tomar una decisión a la hora de elegir una pulsera cuantificadora y que no les apetezca leer la cantidad de resúmenes y opiniones que invade el universo blogger.

Contras

  • No se puede mojar ni sumergir.
  • Ninguna personalización a la hora de comprar los modelos.
  • Su App no está integrada con el HealthKit de iOS.
  • En ocasiones las mediciones de las calorías quemadas no son adecuadas.
  • Falta de desafíos individuales y personalizados.

Pros

  • El tacto de la pulsera.
  • Volver a la costumbre de mirar la hora en la muñeca.
  • La medición de las pautas del sueño, los pasos dados y los pisos subidos es excelente.
  • La autonomía.
  • La App está muy cuidada.
  • El mail con el resumen semanal.

A la espera del Apple Watch, puedo asegurar que este gadget seguirá en mi muñeca durante mucho tiempo.

 





jueves, 29 de enero de 2015

Añadir un archivo .pch en Xcode 6

Los que hayáis empezado a programar en Xcode 6 os habréis percatado de que a la hora de crear un proyecto nuevo ya no se genera un archivo de pre compilación de cabecera llamado prefix.pch. Estos archivos se compilaban y almacenaban en la caché durante el inicio de la compilación del proyecto añadiendo a todas las clases del proyecto las instrucciones que en prefix.pch se encontrasen. Esto era realmente útil para añadir algunas macros y constantes que normalmente utilizamos en todas nuestras clases. Pues bien para añadir nuestro archivo de precompilación de cabeceras debemos seguir los siguientes pasos.

1. Lo primero es crearlo. Para ello seguimos el siguiente proceso: NewFile > iOS > Other > PCH File

2. A continuación nombramos el archivo de la siguiente manera nombre_del_proyecto-Prefix.pch.

3. Vamos a la sección Project > Build Settings y buscamos User Header Search Paths.

4. Añadimos la ruta del archivo .pch $(SRCROOT)/nombre_del_proyecto-Prefix.pch 

5. Limpiamos y volvemos a ejecutar el proyecto.

Ahora volvemos a tener nuestro archivo .pch operativo.


lunes, 26 de enero de 2015

Breedme App. Tu red social para mascotas hecha App.

Una de las últimas aplicaciones que hemos desarrollado en exoglas es la red social para mascotas Breedme. Esta red social nos permite comprar, vender, dar en adopción, adoptar, cruzar o simplemente conocer las diferentes mascotas que hay en toda España.


Para realizar estas operaciones es necesario un registro, que nunca será utilizado para fines distintos a las necesidades de la App. Aún así, la app está preparada para acceder a ella mediante la opción de invitado. Con esta opción podremos conocer todas las mascotas disponibles, y si nos interesa alguna o simplemente nos gusta la App, podremos registrarnos a posteriori.


El encargo ha sido realizado por una empresa británica Orlanweb. Creemos que han tenido una magnífica idea y les deseamos mucha suerte con este ilusionante proyecto.


La App está disponible tanto para dispositivos iOS como para dispositivos Android. Aquí os dejo los enlace de descarga, así como sus diferentes enlaces a redes sociales.

AppStore https://itunes.apple.com/es/app/breedme/id933172692?mt=8
GooglePlay https://play.google.com/store/apps/details?id=com.exoglas.orlanweb.breedme
Twitter https://twitter.com/BreedmeApp
Facebook https://www.facebook.com/pages/Breedme/726668337397357
Instagram http://instagram.com/breedmeapp




lunes, 19 de enero de 2015

Integración de HealthKit en iOS 8

Una de las novedades que nos trajo iOS8 fue el framework de HealthKit. Este framework nos permite la integración y la interacción entre los datos de nuestra App y la App nativa de Salud. Para integrarlo en nuestra App tendremos que seguir los siguientes pasos:


  1. Debemos habilitar el uso del framework desde el portal de desarrollo https://developer.apple.com


     2. En nuestro proyecto en la sección "Capabilities" debemos tener activo HealtKit


     3. Comprobamos si el dispositivo tiene disponible el HelathKit y configuramos los parámetros de lectura y escritura que queremos utilizar con las siguientes líneas de código

if ([HKHealthStore isHealthDataAvailable])
    {
        NSSet *writeDataTypes = [self dataTypesToWrite];
        NSSet *readDataTypes = [self dataTypesToRead];
    
        healthStore = [[HKHealthStore alloc] init];
    
        [self.healthStore requestAuthorizationToShareTypes:writeDataTypes readTypes:readDataTypes completion:^(BOOL success, NSError *error) {
        if (!success)
        {
            NSLog(@"%@",error);
            return;
        }
        if(error)
        {
            NSLog(@"%@",error.description);
        }
        
        dispatch_async(dispatch_get_main_queue(), ^{
            // Aquí podremos utilizar los datos que hemos obtenido
            
        });
        }];
    }
    else
    {
        NSLog(@"Health Kit Not authorized");
    }

     4. En el código anterior vemos las llamadas a los métodos dataTypesToWrite y dataTypesToRead . En estos métodos configuramos los parámetros de Healthkit que utilizaremos. Si por ejemplo sólo necesitamos la altura y el peso, los métodos deberían contener

#pragma mark - HealthKit Permissions

- (NSSet *)dataTypesToWrite
{
    HKQuantityType *heightType = [HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierHeight];
    HKQuantityType *weightType = [HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierBodyMass];
    
    return [NSSet setWithObjects:heightType,weightType,nil];
}

- (NSSet *)dataTypesToRead
{
    HKQuantityType *heightType = [HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierHeight];
    HKQuantityType *weightType = [HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierBodyMass];
    

    
    return [NSSet setWithObjects: heightType, weightType, nil];

}

A partir de aquí, ya podríamos integrar HealthKit en nuestra App. Aunque lamentablemente, si queremos publicar nuestra App con Healthkit, debemos tener una url por cada idioma que contenga nuestra app con una política de privacidad.

martes, 13 de enero de 2015

Localización en iOS 8

Como cada enero, me propongo continuar con el blog un año más. En este artículo voy a explicar cómo habilitar la localización en iOS 8. Si tenéis un desarrollo anterior a iOS 8 y ejecutáis vuestra App, os daréis cuenta de que lamentablemente no toma vuestra localización.

Para solventarlo tendremos que seguir los pasos siguientes:

1- Añadir estas dos líneas de código

if(([[[ UIDevice currentDevice ] systemVersion ] floatValue ] >= 8.0 ))
        [manager requestWhenInUseAuthorization]; //Sólo se utilizará durante el uso de la App

o las siguientes para el uso incluido en segundo plano

if(([[[ UIDevice currentDevice ] systemVersion ] floatValue ] >= 8.0 ))
        [manager requestAlwaysAuthorization];

donde el manager es 

manager = [[CLLocationManager alloc] init];

 2- Tendremos que añadir una fila en el .plist de la aplicación cuya key sea NSLocationWhenInUseUsageDescription de tipo String y cuyo valor sea el texto que acompañe al mensaje de autorización de localización.






lunes, 7 de julio de 2014

Colaboración iOSMac

Desde hace una semana comencé a colaborar con el blog iOSMac donde pretendo ir publicando artículos para que la gente se inicie o aprenda más acerca de la programación en iOS. Todos los artículos interesantes los iré publicando aquí también con una semana de retraso.

Para los que no conozcan iOSMac, os recomiendo que visitéis el blog. En él se trata todo lo relacionado con el mundo de la empresa de Cupertino, noticias, análisis de aplicaciones, etc.

Para todos los que como yo, cada vez utilizamos menos la navegación web también está disponible la App iOSMac en el siguiente enlace https://itunes.apple.com/es/app/blog-im/id850291554?mt=8.

Además de una interfaz muy cuidada con unos colores que hacen que la lectura de los posts no provoque ataques epilépticos, nos ofrece notificaciones cada vez que se publica un nuevo artículo.

Aquí os dejo el enlace de mi primer artículo http://iosmac.es/que-necesitas-para-ser-un-ios-developer.html