terça-feira, 19 de outubro de 2010

Lendo XML em Objective-C com TBXML


Quem utiliza o iOS SDK sabe o quanto é trabalhoso utilizar a classe NSXMLParser para ler arquivos XML.
NSXMLParser faz parte do framework Foundation que contém diversas classes que não estão presentes na linguagem Objective-C.
O código abaixo mostra a utilização da classe NSXMLParser:
NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:[NSURL URLWithString:@"url_to_xml"]];
[parser setDelegate:self];
[parser parse];
...
Agora precisamos implementar os métodos da classe delegate(NSXMLParserDelegate) para identificar os elementos do XML:

(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict;
//Chamado toda vez que o parser encontrar um elemento de início de tag

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName;
//Chamado quando é encontrado o fim da tag de um elemento

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string;
//chamado quando o parser encontrar uma string entre as tags. Ex. Retonaria Diogo caso estivesse lendo a tag <>Diogo< / nome />

E nesse tal de TBXML, como fazemos isso?
Utilizando o TBXML acessamos os atributos 'diretamente' através de DSLs.
Vejam o código abaixo para um exemplo:

TBXML * tbxml = [[TBXML tbxmlWithURL:[NSURL URLWithString:@"url_to_xml"]] retain];
//Obtendo o o root element do XML
TBXMLElement *rootElement = tbxml.rootXMLElement;
//Obtendo o valor do atributo nome presente no rootElement
NSString *nome = [TBXML valueOfAttributeNamed:@"nome" forElement:
rootElement];

Quem quiser ver exemplos e baixar o projeto TBXML basta acessar esse link.
Abraços,

terça-feira, 13 de julho de 2010

IPhone SDK - Exibindo splash em uma aplicação iPad



Quando uma aplicação iPhone esta carregando, existe a opção de exibir uma imagem(famoso splash) indicando informações sobre o produto/empresa ou mesmo que a aplicação esta sendo carregada.
No iPhone, basta criar uma imagem chamada Default.png e essa imagem será exibida automaticamente antes da aplicação iniciar.
No iPad é um pouco diferente, a aplicação pode iniciar em qualquer orientação, precisamos então criar imagens para todas orientações possíveis.
Abaixo temos os possíveis splashs para iPad:
- Default-PortraitUpsideDown.png (Opcional, substitui a imagem Default-Portrait.png)
- Default-LandscapeLeft.png (Opcional, substitui a imagem Default-Landscape.png)
- Default-LandscapeRight.png (Opcional, substitui a imagem Default-Landscape.png)
- Default-Portrait.png (Obrigatória, imagem genérica para orientação portrail).
- Default-Landscape.png (Obrigatória, imagem genérica para orientação landscape).
- Default.png (Uso não recomendado para iPad, em caso de aplicação iPad e iPhone utilizar essa imagem para o splash padrão exibido no iphone).

Abraços,

segunda-feira, 12 de julho de 2010

Google App Inventor for Android



Não sabe programar e gostaria de desenvolver aplicativos para Android?
Seus problemas acabaram, será lançado o Google App Inventor for Android que permite construir aplicações para android visualmente, sem a necessidade de programar.
O video abaixo mostrar uma demonstração do produto.




O produto será lançado em algumas semanas, para se inscrever e receber informações sobre o produto basta preeencher esse formulário.
Abraços,