terça-feira, 22 de setembro de 2015

iOS 9 Novas regras de segurança obrigam webservices somente em https (TLS)

21 de setembro de 2015 




Com a chegada do iOS9 a Apple tomou várias medidas para aprimorar a segurança em seu sistema operacional móvel, chamada de App Transport Security , essa feature força seu aplicativo a manter conexões seguras quando consumir webservices. Todas as conexões que utilizam as classes NSURLConnectionCFURL, or NSURLSession   
 são obrigadas a utilizar HTTPS (TLS) , e se não o fizer, o seu executável irá lançar uma exceção. 

Agora, para continuar utilizando sua conexão em http normal, você deverá lançar uma propriedade específica no seu arquivo Info.plist para que seu aplicativo não entre nesta validação de segurança, ou por domínio,ou para a app inteira. 

Ao compilar o projeto no novo XCode 7, seu projeto já deverá contar com isso. Caso seu aplicativo esteja na loja esse comportamento não irá comprometê-lo, a menos que você envie uma nova atualização que foi compilada pelo XCode 7. 

Para utilizar conexões seguras  sem problemas, você deverá verificar os certificados HTTPS do seu servidor. A Apple considera alguns padrões mínimos de segurança que seu certificado deve fornecer para atender essas exigências. Isto é muito sério, já tivemos graves problemas quando certificados que não possuem as cadeias completas não atendiam no iOS e simplesmente não efetuada a conexão.

Para validar o certificado do seu servidor HTTPS, acesse este site https://cryptoreport.websecurity.symantec.com/checker/views/certCheck.jsp e confira se o resultado do teste da sua url atende as exigências da documentação da Apple, que você encontrará aqui : https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/


Considere seriamente no ciclo de vida da sua aplicação que muito em breve a Apple pode tornar isso um padrão, sem caminho para remover essa validação,forçando seu webservice ser obrigatóriamente em HTTPS. 

quarta-feira, 9 de setembro de 2015

iOS : Como ajustar o Auto Layout de uma view dinamicamente para sobrepor um outro que foi escondido (hidden).




Aplicar o autolayout  costuma ser algo delicado, há diversas formas de criar as regras de restrições conforme os espaçamentos entre os objetos.  Uma das coisas que acontece com frequencia é a necessidade de atualizar a distancia de um objeto em relação a um outro, quando este não precisa aparecer por não ter um conteúdo. Veja por exemplo a célula abaixo : 





Estou aplicando as regras de auto layout na imagem no objeto UIImageView , note a definição de largura e altura. 

Essa minha célula, poderá ou não vir com esta imagem, ou seja, o objeto ora estará visível ou ora estará escondido (hidden). 

O resultado que espero no tempo de execução, é que a label se estique até o final, caso o conteúdo de nossa UIImageView esteja escondido, para isso, vamos usar uma classe que é uma categoria que auxilia a definir dinamicamente as regras de constrain do autolayout de qualquer view : https://github.com/damienromito/UIView-UpdateAutoLayoutConstraints

Agora , basta importar a categoria e usar o método para mudar a propriedade desejada do auto layout da view, que em nosso exemplo, é a constante de largura, quando o objeto não aparecer : 
          [imageView setConstraintConstant:0 forAttribute:NSLayoutAttributeWidth];

Com isso, toda vez que uma imagem não estiver disponível, o autolayout da nossa label vai estivcar até o limite da célula sobrepondo a área vazia deixada pela nossa UIImageView


O resultado acima simula o que acontecerá em tempo de execução. Uma observação importante, se o compilador mostrar diversos warning’s, é porque a regra da constante para o campo que você estará alterando, deve ser flexível, ou seja, permitir um valor entre 0 até o máximo definido, veja na imagem, que o <= mostra que nossa restrição pode estar de 0 até o máximo definido, que anteriormente foi de 64. 

Essa técnica é muito útil na hora de construir as views, reduzindo a necessidade de fazer células diferentes para layout diversos. 


quarta-feira, 26 de agosto de 2015

Canvas iOS : Faça elementos animados apenas configurando seu UIView via Interface Builder


Quando falamos em animações no desenvolvimento iOS, há uma diversidade de técnicas que foram evoluindo desde a versão inicial do iOS e posteriormente no iOS 6, iOS 7 iOS8 e agora mais recentemente no iOS9.  São transições diversas, e formas de criar animações cada vez mais complexas. 

Essa dica é de um componente que tem a proposta de fazer o animações de forma simples e prática, apenas configurando seu elemento de UI via Interface Builder.

Ela é muito útil quando você precisa de uma implementação rápida e simples de animações em sua UIVIew.

Clique no link do projeto : http://canvaspod.io/

quinta-feira, 20 de agosto de 2015

iOS : 5 dicas para começar a estudar de graça!






Já com tantos materiais e cursos de desenvolvimento IOS no mercado e agora com duas linguagens Objective-C e Swift,  vou apresentar 5 dicas para você começar a a aprender iOS de graça na internet.  

Como requisito básico você deve saber inglês, ao menos técnico e já possuir um Mac com XCode instalado. 

1 - Blogs internacionais 

2 - iTunesU - Stanford 
[ATUALIZADO]

3 - Apple WWDC

4 - Em português 

 5 - Originais da Apple 



Espero que com estas dicas você possa iniciar seus estudos em IOS, e claro, se tiver muita dificuldade no inglês, há muito mais cursos em português com conteúdo pago na web.