Obtener medidas de la pantalla en iOS

En algunas aplicaciones que deseamos crear, es necesario obtener las dimensiones de la pantalla del dispositivo, sobre todo ahora con el iPhone 5, por lo que a veces tendremos que hacer una diferencia con las medidas de los iPhone’s anteriores y este.

Para podere obtener dichas medidas se puede agregar el siguiente código:

CGRect pantalla = [[UIScreen mainScreen] bounds];

Esta asignación nos crea un objeto con la información de la pantalla, para obtener el width o height de la pantalla sólo tenemos que hacer referencia a los atributos de pantalla:

pantalla.size.height

o

pantalla.size.width

Con esto obtendremos las dimensiones de nuestros dispositivos con iOS.

Fijar la orientación de nuestro iPhone, iPod Touch o iPad

Una de las cosas que siempre me ha gustado en Android, es que puedo bloquear la orientación de mi dispositivo y así al momento de girarlo la pantalla no cambia de orientación y cuando empecé a usar iOS no contaba con esta característica, hasta que se agregó dicha opción.

Para activar o desactivar el bloque de orientación, basta con presionar 2 veces el botón Home de dispositivo.

jx_post_159_01

Hecho esto, se mostrarán las apps abiertas.

jx_post_159_02

Ahora sólo deberemos deslizar hacia la derecha para que aparezca la opción la opción de bloqueo de orientación.

jx_post_159_03

Al presionarlo veremos como cambia tanto el botón colocandole un candado además de agregar un ícono al lado del porcentaje de la batería.

jx_post_159_04

jx_post_159_05

Obviamente para desbloquear la orientación de la pantalla, deberemos hacer lo mismo y presionar sobre el mismo botón para que desactive el bloqueo.

Cambiar el modo de hibernación de nuestra MacBook Pro

Por defecto cuando nosotros cerramos la MacBook Pro y tenemos nuestra sesión abierta con varios programas, lo que sucede es que se pone en modo de hibernación pero esto lo hace en memoria RAM y el consumo de energía es muy bajo, así como el foco indicador queda parpadeando de nuestra máquina.

jx_post_133_01

Hay otra manera de ponerlo en modo hibernación la cual nos permite que la información de la sesión se guarde en el disco duro y no consuma nada de energía ya que es como si se apagara la computadora pero con la diferencia que cuando la volvamos a prender, iniciará todo lo que teníamos abierto.

Para configurar esta opción, tendrémos que abrir una Terminal, la cuál pueden encontrar con el finder en /Aplicaciones/Utilidades/Terminal

jx_post_133_02

Esto nos abrirá una pantalla como la siguiente:

jx_post_133_03

Ahora ejecutaremos el siguiente comando:

sudo pmset -a hibernatemode 1

Dicho comando nos pedirá la contraseña de administración de nuestra máquina, la ingresamos y listo, una vez que cierren la pantalla de la computadora tardará un poco más en guardar toda la información pero al finalizar, se apagará la computadora y una vez al volverla a enceder, abrirá todo lo que teníamos abierto antes de cerrar la computadora.

Si en algún momento se desea regresar a la configuración anterior, bastará con realizar el siguiente comando:

sudo pmset -a hibernatemode 3

Con eso finalizo este artículo.

Cerrar una pantalla abierta con el método presentModalViewController

En el post Abrir una nueva pantalla usando presentModalViewController mostré como abrir una pantalla haciendo uso del método presentModalViewController, ahora mostraré como cerrar esa ventana que abrimos.

Dentro del método que desean que cierre la ventana se deberá incluir la siguiente línea:

[self dismissModalViewControllerAnimated:YES];

Con esto se cerrará la ventana abierta.

Abrir una nueva pantalla usando presentModalViewController

Una forma de abrir otra pantalla en una aplicación en iOS, es usando el método presentModalViewController de la pantalla actual.

Lo que se debe de realizar es crear una objeto de la pantalla que se quiere abrir, en mi caso usaré una pantalla llamada JXViewController2:

JXViewController2 *view2 = [[JXViewController2 alloc] initWithNibName:@"JXViewController2" bundle:nil];

Ahora ejecutaré la acción para abrir esta pantalla:

[self presentModalViewController:view2 animated:YES];

Con esto se abrirá la ventana que deseamos.

Cambiar el texto del botón atrás de un UINavigationBar

Hay ocasiones en las que nuestra aplicación cuenta con un UINavigationController y una UITableView.

jx_post_100_01

Cuando presionamos en alguno de los items de la tabla hacemos cambio a otra pantalla y en el NavigationBar de esta muestra un botón con el texto “atrás” o “back”.

jx_post_100_02Lo que deseamos hacer es cambiar ese texto a algo que nosotros deseamos. Para lograr ésto, haremos lo siguiente:

Crearemos un UIBarButtonItem y asignarlo al NavigationItem:

UIBarButtonItem *barButtonItemAtras = [[UIBarButtonItem alloc] initWithTitle:@"Regresar..." style:UIBarButtonItemStyleBordered target:nil action:nil];
[self.navigationItem setBackBarButtonItem:barButtonItemAtras];

jx_post_100_03

Eso es todo.

 

Obtener la versión de nuestra app en iOS

En ocasiones para nuestra aplicación en iOS queremos o necesitamos obtener el número de versión que le asignamos para mostrarla en alguna parte de dicha app.

Para realizar esto podemos hacer lo siguiente:

NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];

Con esto ya tenemos en la versión en nuestra variable y la podremos usar para lo que necesitemos.

Usar NSURL con URLs con acentos

Me ha llegado a suceder que hay URLs que cuantan con acentos y cuando a NSURL le paso  este URL termina por devolverme un NULL.

Para poder resolver esto he usado el método stringByAddingPercentEscapesUsingEncoding de un objeto de tipo NSString de la siguiente manera:

NSURL *urlImagen = [[NSURL alloc] initWithString:[url stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];

Esto convertirá la cadena correctamente y se obtendrá la información deseada.

Cambiar el nombre de una app iOS

En algunas ocasiones suele ocurrir que el proyecto en iOS que comenzamos a desarrollar en Xcode sufre un cambio y requiere que se llame de otra manera, en algunos casos se recomienda renombrar el nombre de todo el proyecto, pero a veces manda error o si trabajan con sistemas de versiones como svn o git, esto suele causar problemas. Por tal motivo a veces solamente lo que se necesita cambiar es el nombre que se muestra en el dispositivo.

Supongamos que tenemos una app llamada “Proyecto1” como se ve en la imagen siguiente:

app nombre original
Pero ahora queremos que se llame “MiProy1”, para eso se realizará lo siguiente:

Vamos a: Project Navigator -> Proyecto1 -> TARGETS -> Proyecto1 -> Info -> Bundle display name presionamos en la columa Value  y cambiamos el nombre a “MiProy1” como se ve en la imagen.

Xcode renombrar nombre
Ahora seleccionamos cualquier otro elemento para que termine el modo edición del campo.

Lo que resta es volver a ejecutar la app y veremos el cambio de nombre.

App nuevo nombre

Optimizar imágenes para web con Gimp en Mac

Cuando publicamos en nuestro blog o publicar algo en web, queremos optimizar nuestras imágenes como lo haríamos con Photoshop para que no pesen tanto. Para ello existen un plugin de Gimp llamado gimp-save-for-web con el cual se puede realizar ésto.
En el caso para Mac podemos descargar el archivo ya compilado desde aquí aunque deberán registrarse para poder descargarlo.

Una vez descargado se deberá descomprimir el archivo webexport-intel.tar.bz2 el cual generará un archivo llamado webexport.

Ahora dicho archivo deberá moverse al directorio plugin donde se instaló Gimp, en mi caso es en:

/Applications/Gimp/Gimp.app/Contents/Resources/lib/gimp/2.0/plug-ins

Aunque en la mayoría está instalado en:

/Applications/Gimp.app/Contents/Resources/lib/gimp/2.0/plug-ins

Con esto ya está instalado el plugin, ahora solo basta arrancar Gimp y veremos la opción de “Save for Web…”.

save for web

imagen gimp

Descomprimir archivo 7z en Mac OS X

Como a mi, seguramente a muchos les ha pasado que descargan un archivo en formato 7-zip o 7z y desean descomprimirlo en su Mac y no se los permite.

Buscando en el App Store me encontré con la herramienta The Unarchiver, es gratuita y permite descomprimir los siguientes formatos: Zip, RAR, 7-zip, Tar, Gzip and Bzip2

Aquí dejo la dirección del App Store para descargarla:

https://itunes.apple.com/app/the-unarchiver/id425424353?mt=12&ls=1