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

lunes, 2 de junio de 2014

Eliminar la barra de estado

En el artículo de hoy os mostraré diferentes opciones de la barra de estado o cómo ocultarla.

En iOS 7 para modificar diferentes parámetros de la barra de estado es necesario añadir una línea al info.plist. Añadimos la línea "View controller-based status bar appearance" de tipo booleano y le ponemos el valor "NO".




Ahora desde la vista "General" podemos empezar a configurar nuestra barra de estado. Contamos con un checkbox para indicar si queremos que se muestre en la vista de precarga, y cómo queremos que aparezca a lo largo de la Aplicación. En modo "default" donde los textos e imágenes de la barra de estado aparecerán en negro o en "light content" donde aparecerán en blanco. También podemos indicar si queremos que sea translúcida (con un alpha de 0.5) u opaca.




Si trabajamos con storyboard o con .xib (archivos de interfaz) podemos modificar la barra de estado desde la siguiente pestaña.





Ahora 0s explicaré como trabajo yo, al más puro estilo ninja. Para los que no utilicéis ningún editor de interfaz y programéis todas las vistas por código aquí os dejo como trabajar con la barra de estado. Si la barra de estado no va a sufrir modificaciones en el ciclo de vida de la aplicación, os recomiendo añadir las opciones en el siguiente método del delegado.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    ////// ****** Si NO quermos barra de estado descomentar  ******//////
    //[[UIApplication sharedApplication] setStatusBarHidden:YES];
    
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
    return YES;
}

Si queremos ocultar la barra de estado en un ViewController en concreto

- (void)viewWillAppear:(BOOL)animated
{
    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
}

- (void)viewWillDisappear:(BOOL)animated
{
    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];

}

Finalmente si los viewcontroller se encuentran dentro de un navigationcontroller podemos modificar la barra de estado añadiendo el siguiente método

-(UIStatusBarStyle) preferredStatusBarStyle
{
    return UIStatusBarStyleDefault;
}

Como anexo os adjunto una sencilla línea de código que yo siempre utilizo cuando hay cualquier conexión y transferencia de datos. Con ella podréis añadir y quitar el indicador de actividad en la barra de estado.

[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];





Como siempre espero que os resulte útil. Saludos.

martes, 29 de abril de 2014

Aplicaciones específicas, OnCalc.

Esta aplicación es una prueba evidente de como el smartphone puede ser una gran herramienta para el campo profesional. En este caso, OnCalc, es una aplicación destinada al sector médico, concretamente a la oncología, que hemos desarrollado en exoglas.



Para cualquier oncólogo resulta muy cómodo introducir una serie de datos en su dispositivo, y directamente obtener una serie de resultados, ahorrándose el incómodo proceso de calcularlo ellos mismos y pensar en las diferentes variables y posibilidades para todas las condiciones posibles.




Para el público en general, resulta de gran utilidad la sección del cálculo de superficie corporal y el índice de masa corporal.


A continuación os dejo los enlaces de descarga de la App en las diferentes tiendas.

Android https://play.google.com/store/apps/details?id=com.exoglas.oncalc
iOS https://itunes.apple.com/es/app/oncalc/id525394256?mt=8