MosaicLayout: a Mosaic view using UICollectionView

This weekend I’ve been working on a new layout for iOS, very similar to MosaicUI.

This time I’m using the Lightbox algorithm described in @vjeux’s blog and taking advantage of UICollectionView. I’m not fully satisfied with the implementation and the code itself yet but I hope polishing it in the next weeks.

If you are curious and want to check out the code, you can go to https://github.com/betzerra/MosaicLayout

Photo Feb 17, 6 29 14 PM

MosaicUI: primer semana, excelentes noticias

Desde su publicación en GitHub la semana pasada, las cosas no podrían haber salido mejor: el repositorio tiene más de 250 stars y 25 forks, apareció en la lista de Objective-C’s Most Starred This Week y ahora está en Most Starred This Month.

Además, el feedback fue genial: @F_ZG encontró un bug que sucedía en iOS 5 y me dio una mano tanto para arreglar ese bug como para testear otros commits en la misma versión. Es genial encontrar gente que colabora de manera desinteresada y que se entusiasme con lo que hacés.

Pueden bajar el código fuente de https://github.com/betzerra/MosaicUI

MosaicUI: grillas para iOS

MosaicUI es un componente visual que permite crear una grilla de imágenes irregulares como la que aparece en el screenshot de abajo.

mosaic_screenshot_001

MosaicUI nace como producto de otro proyecto (secreto) que estoy haciendo con otra persona. Espero poder contárselos dentro de poco tiempo :-)

Pueden descargar el código fuente de Github y leer el Readme adjunto con instrucciones de cómo implementarlo.

3 maneras distintas de ordenar un NSArray

Encontré esta respuesta en StackOverflow y, a pesar de que es un problema bastante básico, me pareció interesante compartirla por lo completa que es.

Usando un método para ordenar

- (NSComparisonResult)compare:(Person *)otherObject {
    return [self.birthDate compare:otherObject.birthDate];
}

NSArray *sortedArray;
sortedArray = [drinkDetails sortedArrayUsingSelector:@selector(compare:)];

Usando NSSortDescriptor

NSSortDescriptor *sortDescriptor;
sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"birthDate"
                                              ascending:YES] autorelease];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSArray *sortedArray;
sortedArray = [drinkDetails sortedArrayUsingDescriptors:sortDescriptors];

Usando un bloque
Disponible a partir de iOS 4 y Mac OS X 10.6

NSArray *sortedArray;
sortedArray = [drinkDetails sortedArrayUsingComparator:^NSComparisonResult(id a, id b) {
    NSDate *first = [(Person*)a birthDate];
    NSDate *second = [(Person*)b birthDate];
    return [first compare:second];
}];

Mophie Juice Pack Plus para iPhone 4 / 4S

Mophie Juicepack Plus es un case que contiene una batería, otorgando un 100% más de carga. En mi caso, me permite tener el celular sin necesidad de cargarlo durante un día y medio (en días normales, la batería no supera las 8 horas)

8334002331_35b8e3792b_b

Estéticamente me gusta mucho, el diseño me recuerda a los bumpers que vende Apple y, si bien le agrega medio centímetro de espesor y unos cuantos gramos, se siente muy bien al tacto. En la parte inferior tiene 4 luces que indican el estado de la batería, muy parecido al indicador que tienen las MacBook Pro.

Mophie afirma que el case ayuda a la acústica del device, mejorando la experiencia de escuchar música con el altavoz. Esto no sabría confirmarlo, se escucha bien pero… también se escuchaba bien antes :-)

Otra cosa que me llamó mucho la atención es que sigue siendo posible sincronizar el iPhone con la computadora: en vez de usar el conector de 30 pines se conecta un mini-usb al mismo case. Así que no hay necesidad de quitarle el case nunca.

El único incoveniente es que el tiempo de carga ahora es el doble, lo cual es lógico porque la capacidad es el doble también.

El case/batería cuesta USD 100 y hay una versión para iPhone 5 en camino. También existe una versión para el Samsung S3.