Posts

  • Preventing package upgrade with Homebrew

    These days at work a collegue came with a question about Homebrew. He had a package installed with Homebrew, and he didn’t want it to be upgraded. He asked me how to prevent it from being upgraded. The answer was quite obvious to me, well as a package manager Homebrew like anyother package manager should be able to prevent a package from being upgraded if you want to do so, but at same time I realize I haven’t seem many people doing this on macOS with Homebrew compared to Linux Super Users.

  • macOS disable/enable DarkMode for specific Apps

    I’ve been disappointed with macOS for quite some time. I’m still using Mac daily because I still need to deal with iOS and Mac development. I’ll not go into all problems in this post, but DarkMode, for example, Console App and TextEdit, every time I need to open a log file using Console or deal with some text file using TextEdit, It’s a pain, in special TextEdit when the file is RTF (Rich Text Format).

  • Alacritty, Fish, tmux, moving forward with my dev environment

    I have been using the combination of ZSH + iTerm2 on my command line environment even before Apple adopted ZSH on macOS Catalina. My first experience with ZSH was utilizing a collection of plugins and configs from oh-my-zsh. After some time, I decided to change to another group of plugins and configurations called YADR (Yet Another Dotfile Repo). I also created my customization on top of YADR expired by my friend Panachi, who also did the same. I had no problem with these combinations, although the YADR project became outdated, and iTerm2 didn’t evolve much in the latest updates, so I decided to change my environment to try and learn something new.

  • Software development vocabulary in Japanese

    I decided to put together a list of vocabulary of software development in Japanese, this is just a small list of things I know, and I’ll keep updating this from time to time.

  • Binary Search, algorithms, Ruby

    Binary Search with Sorted Array

  • Back to the basics!

    I’m going to start a series of posts about some basic computer science stuff, specially related to algorithms, data structure and possible visit some of the most common interviews tests, the idea is to use this is as a guide to myself and possible it could help other people to learn or remember those concepts.

  • GPG Key, generate, setting up, backup and restore

    GPG Key, generate, set up, backup, and restore

  • AppleScript ref links

    AppleScript ref links

  • Weekly Update 02/28~03/06 2021

    Current Status

  • Weekly Update 02/21~02/27 2021

    Here a quick update from last week of February 2021

  • Weekly Update 02/14~02/20 2021

  • That does not compute!

    https://media.tenor.com/images/a1e62c29a5d23c5e979b94e8bad8beea/tenor.gif

  • Replace your RSA by ED25519

    RSA was a standard for asymmetric SSH keys for years, but if you are using keys below 2048-bit length you are not safe these days. But don’t worry, say hello to your new elliptic curve algorithm, ED25519 which is faster, more secure, and shorter in bytes.

  • Dynamic Type

    A partir do iOS 7 novas opções de usabilidade chegaram ao OS e uma delas é o Dynamic Type, onde o usuário pode ajustar o tamanho padrão da fonte do sistema para melhor leitura. Essas opções podem ser vistas em: Ajustes > Acessibilidade > Texto Maior

  • Curso de iOS online no Edukee

    Fala galera estou aqui para divulgar mais um curso que vou ministrar no Edukee.

  • Novo projeto iOSDevSpot

    Fala galera, mais um vez venho aqui trazer novidades para vocês, na semana passada lancei um novo projeto chamado iOSDevSpot, o intuito do projeto e espalhar o conhecimento que tenho sobre desenvolvimento iOS de forma mais pratica e dinâmica através de screencasts. Não vou me alongar muito sobre o projeto aqui no blog, mas quem quiser conhecer mais sobre o projeto acesse o link iOSDevSpot e saiba mais.

  • [Off-topic] Palestras e eventos

    Fala galera, o último mês foi bem agitado em relação a eventos e palestras para mim e gostaria de fazer um breve resumo aqui no Blog de tudo que rolou.

    Encontro dos 7masters no iMasters

    O encontro dos 7masters é realizado pelo iMasters e é uma ideia bem bacana, onde são 7 palestrantes e cada 1 tem 7 minutos para falar sobre o assunto, nessa edição foi especificamente sobre Mobile. Tivemos 7 apresentações sobre iOS, Android e WindowsMobile, foi bem bacana, vale apena ver todas as apresentações nesse link 7Masters. Na minha apresentação eu falei sobre como trabalhar com Apps universais para iPad e iPhone tratando as resoluções Retina e normal, a baixo vocês podem ver os Slides e o Video.

  • [iOS] Dicas, dicas e mais dicas

    Fala galera, resolvi fazer esse post para mostrar algumas ferramentas, bibliotecas e outras coisas que utilizo durante o meu dia-a-dia desenvolvendo Apps para iOS.
  • [Off-Topic] O que tenho feito

    Fala galera, gostaria de compartilhar minhas ultimas experiências profissionais e o que isso tem mudado na minha vida nos últimos meses.
  • [iOS] in-App Purchase

    Fala galera no último encontro do [self SP] fiz uma apresentação improvisada de última hora falando sobre o in-App Purchase, na verdade foi um live coding. No video vou mostrar todos os passos para se trabalhar com in-App Purchase e testar sua aplicação. A apresentação é bem simples e a galera que estava presente ajudou bastante, espero que gostem do video
    Depois que subi o video achei um erro de português na frase "Bem improvisado meso" deveria ser "Bem improvisado mesmo", vou subir outra versão corrigindo isso :) abraço
  • [Objective-C] Leituras recomendadas

    Fala galera, sempre me deparo tweets perguntando quais livros eu recomendo para aprender Objective-C e desenvolvimento iOS/MAC. Pensando nisso resolvi escrever esse post com os materiais de referencia que utilizo no meu dia-a-dia.
  • iPhone 4S - Problemas com o sinal

    Fala galera, tenho visto muitas pessoas reclamando do sinal do iPhone 4S, até eu mesmo tenho reclamado de problemas com o sinal do aparelho.

  • Workshops Objective-C ONLINE

    Fala galera, Como muitos já sabem em dezembro a PoisonLabs fechou parceria com a Hellobits para Workshops online, e sábado (11/01) será nosso primeiro workshop Conhecendo Objective-C Esse workshop vai ser o primeiro de uma serie e talvez um dos mais importantes, pois ele será a base de tudo que veremos nos próximos workshops. Mas não se preocupe, se você não puder participar desse primeiro, haverão outras datas para o workshop de Objective-C. Planos Futuros Como falei esse é apenas o inicio, temos muito mais vindo por ai. SIM, JÁ ESTOU MONTANDO AS GRADES!!!! Da só uma olhada no que vem pela frente
    • Desenvolvimento para iOS
    • CoreAnimation
    • Quartz2D
    • CoreData
    • AVFoundation
    • Desenvolvimento para MAC OS X
    ....e muito outros. E respondendo a muitas perguntas que eu recebo no Twitter. SIM, TEREMOS WORKSHOPS PRESENCIAIS =) Sobre os workshops presenciais começaremos as turmas em Abril, em breve será anunciado com detalhes. É isso ai galera, um post curto só para levantar os ânimos e se você se interessou pelo treinamento de Objective-C ainda da tempo de se escrever, o pagamento pode ser feito parcelado por boleto ou cartão de credito através do PagSeguro, para mais detalhes acessem http://howtocode.com.br/workshops/objective-c Abraço a todos
  • Primeiro encontro oficial @selfsp

    Fala galera, Bom muitos já sabem mas quero reforçar, em Janeiro teremos o primeiro encontro oficial do @selfsp. Para quem não conhece o grupo, o @selfsp foi um iniciativa do @lucascaton e @talesp junto comigo para criar um grupo de discussão de Objective-C em São Paulo. Todas as segundas-feiras o pessoal costuma se reunir no Starbucks da Alameda Santos em SP próximo a Av. Paulista, para um papo descontraído e sem compromisso. Mas agora chegou a hora de termos nosso primeiro encontro oficial \o/\o/ Sim, o primeiro encontro oficial do @selfsp vai acontecer e o melhor de tudo com apoio da @caelum , @poisonlabs e @agaelebe . Em uma rápida conversa e sem cerimonias por intermédio do @qmx a @caelum está apoiando o encontro emprestando seu auditório para que possamos realizar o encontro. A @poisonlabs por sua vez está patrocinando o CoffeeBreak para o encontro, e quem sabe em um próximo encontro não role um Drinkup? :) E como de costume nos encontros do @guru_sp nosso amigo @agaelebe vai fazer a filmagem e publicação dos videos do evento. Nesse primeiro encontro vamos ter 4 palestras de 30 minutos cada uma com temas bem variados, para conhecer e votar nas palestras basta acessar o Call4Paperz e se quiser enviar uma proposta também pode ficar a vontade :) Quando e onde? Segunda feira dia 23 de janeiro. Local: Auditório Caelum – 2° andar. Rua Vergueiro, 3169 – Vila Mariana, próximo ao metrô Vila Mariana. Horário: das 20h00 às 23h00. Para participar do encontro basta acessar a página do evento no AgendaTech e clicar no botão "Eu Vou!". É muito importante cadastrar-se na AgendaTech pois uma lista será deixada na recepção da Caleum para controlar a entrada. Espero a presença de todos vocês. Abraços
  • Parceria @hellobits e @poisonlabs para treinamentos online

    Fala Galera
  • iPhone 4S aquecimento e duração da bateria

    Fala pessoal, depois de muito tempo sem postar vamos falar um pouco aqui sobre o recém lançado no Brasil o iPhone 4S. Estou vendo muitas pessoas reclamando do aquecimento do device, duração de bateria e etc. Não vou falar sobre o que todo mundo já sabe que foi o que rolou durante o lançamento nos blogs e sites gringos pois especificação técnica todo mundo já sabe.
  • Curso de iOS básico em SP

    Fala galera, como eu havia anunciado no twitter hoje na parte da tarde, estou começando turmas para desenvolvimento iOS presencial em SP (por enquanto). O curso terá 16 horas de duração divido em 2 sábados. Conteúdo abordado:
      Introdução ao Objective-C
    • Classes
    • Propriedades
    • Envio de Mensagens
    • Gerenciamento Memória
      Intrudução ao iOS
    • Arquitetura
    • Ferramentas de desenvolvimento
    • Cocoa Touch / UIKit
    • Views
    • Navegação
    • TableView
    • Dados (sql e web)
    O curso será inteiramente pratico e ao final cada aluno terá uma aplicação pronta para publicação na AppStore. Pré-requisitos MacBook intel (cada aluno deve levar seu próprio equipamento) Conhecimentos em OO (orientação a objeto) Conhecer pelo menos uma linguagem de programação Local: Ainda não definido, mas está certo que será na Av. Paulista. A estrutura ira contar com sala com ar-condicionado, internet, projetor, lousa e coffee break. Material: Apostila em PDF, exemplos prontos para estudo e videos. Valor : R$ 700,00 que poderá ser pago em 2x através do PagSeguro. A turma terá no máximo 12 alunos e no minimo 8. A primeira turma está prevista para o dia 24/09 para que isso seja possível preciso que os interessados preencham uma lista de interesse para o curso, assim consigo fechar a localização. Link para a lista de interesse http://goo.gl/FsyGj Para quem não está em SP e tem interesse ao curso podem preencher a lista também, estou preparando novidades para treinamento online. Qualquer duvida deixem comentários ou envie um e-mail para treinamento@ferbass.com Abraço
  • [iOS5] Automatic Reference Counting (ARC)

    Após a WWDC11 umas das features mais comentadas no Twitter e Blogs que tenho encontrado na web é sobre o Automatic Reference Counting ou o ARC como tem sido chamado. Mas o que realmente ele faz? Será que ele é o Garbage Collector do iOS? Bom valos lá.
  • [iOS5] Integrando o Twitter em sua aplicação usando o Twitter.framework

    Como todos sabem no dia 06/06/2011 foi anunciado pela Apple no WWDC o novo iOS 5 e dentre as features apresentadas uma das grandes novidades é a integração nativa com o Twitter. Agora no Settings de nossos devices temos a opção de configurar a conta do Twitter a ser usada em nosso dispositivo. Bem simples né? Agora vamos ver um pouco de código. Crie um projeto do tipo SingleViewApplication como na imagem abaixo: Feito isso agora devemos importar o framework do Twitter em nossa aplicação: Estamos quase lá, agora basta criar um botão em seu Xib principal e adicionarmos uma Action para esse botão: Agora ficou facil, basta importar o framework em nosso arquivo .h da viewController principal
    #import 
    
    Agora adicionamos o evento para chamar a view nativa para fazer share no twitter:
    - (IBAction)shareOnTwitter:(id)sender {
        TWTweetComposeViewController *twitter = [[TWTweetComposeViewController alloc] init];
        [self presentViewController:twitter animated:YES completion:nil];
    }
    
    O resultado final: Esse é apenas um exemplo basico de como compartilharmos texto, ainda temos a opção de compartilhar URLS e Imagens da mesma maneira. Com esse novo framework podemos esquecer bibliotecas como ShareKit que tem muita coisa que mutas vezes não usamos e agora também não temos o trabalho de criar API Keys no Twitter para nossas aplicações. Quem quiser pode baixar o código de exemplo no GitHub https://github.com/ferbass/Twitter_IOS5_sample Espero que tenham gostado
  • [Dica] Removendo o Xcode

    Fala galera vamos para uma dica bem rápida. Muitas pessoas quando querem remover o Xcode de seu Mac normalmente removem a pasta Developer que esta localizada no "/" (Macintosh HD). Ok isso também funciona mas para evitar futuros problemas recomendo que na de remover o Xcode do seu Mac use a command line e com um simples comando vamos remover tudo sem dor de cabeça.
  • [cocos2d] Using Particles

    In this post i'm show how to create a simple particle effects using cocos2d and Particle Designer app. Particle Designer is a software produced by 71Squared, with him you can create a visual effects for games, you can buy for only US$7,99. That's a simple way to use a Particle Designer: 1 - Double click for select a effect 2 - Configure a effect attributes (image2) 3 - Save with plist file format (image3) Now we implement the particle in an example application Create a default cocos2d application template Import a Particle Designer plist file to project Now on the HelloWorld Scene overwrite method init
    -(id) init
    {
    	if( (self=[super init] )) {
    		CCParticleSystemQuad *fire = [CCParticleSystemQuad particleWithFile:@"fire.plist"];
    		CGSize size = [[CCDirector sharedDirector] winSize];
    		fire.position =  ccp( size.width /2 , size.height/2 );
    		[self addChild:fire];
    	}
    	return self;
    }
    
    and the final result Download and fork github lighter project https://github.com/ferbass/lighter I hope you enjoy the article Particle Designer cocos2d
  • [Objective-C] Memory management

    Managing object memory is a matter of performance; if an application doesn’t free unneeded objects, its memory footprint grows and performance suffers and sometimes your application crash. THAT'S BAD:( Memory management in a Cocoa application that doesn’t use garbage collection is based on a reference counting model. OK lets see a sample
  • [Objective-C] Singletons

    Some days ago i'm read at @CocoaSamurai blog a post intitled "Singletons: You're doing them wrong" Ok, but what is Singleton and for whats is needed?
  • [Fast hint] Objective-C string replace

    Thats a simple way to replace string in Objective-C
  • [Objective-C] Trabalhando com Arrays

    Uma array é um objeto que contém coleções de outros objetos. Array em Objective-C são tratados com NSArray. A classe NSArray contém uma série de métodos especificamente projetados para facilitar a criação e manipulação de matrizes. Ao contrário de algumas linguagens de programação orientada a objetos (C # sendo um exemplo), os objetos contidos em uma matriz não têm todos de ser do mesmo tipo.
  • Calculo de Bhaskara com Objective-C

    Na verdade esse post é uma "tradução" do post "Calculo de Bhaskara via Python" escrito por @avelino0
  • [Fast hint] Resize height of UITextView to its content

    That's a common problem, many people ask to me how to make it simple Ok, let's go to more one fast hint let's go coding in your - (void)viewDidLoad create a UITextField and set a text
    - (void)viewDidLoad
    {
        UITextView *myTextView = [[UITextView alloc] initWithFrame:CGRectMake(10, 10, 300, 50)];
        [myTextView set:@"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus pellentesque orci ac quam cursus semper."];
        [self.view addSubview:myTextView];
        [super viewDidLoad];
    }
    
    execute... and result got like this Ok, but the text can be a bigger, and a UITextView get a scrollbar it's strange for user experience Ok, let's add a little code to solve that problem
    - (void)viewDidLoad
    {
        UITextView *myTextView = [[UITextView alloc] initWithFrame:CGRectMake(10, 10, 300, 50)];
        [myTextView setText:@"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi eleifend urna non velit vulputate porttitor. Aenean odio enim, consequat at euismod sed, congue in massa. Fusce volutpat laoreet elementum. Nam purus nisi, tristique et adipiscing sed, egestas vel libero. Nam iaculis placerat lectus at lacinia. Proin aliquet arcu eu leo."];
        CGRect frame = myTextView.frame;
        frame.size.height = myTextView.contentSize.height;
        myTextView.frame = frame;
        [self.view addSubview:myTextView];
        [super viewDidLoad];
    }
    
    and now... UITextView resize auto, test with differents size of text For this hint is all up to the next Thanks
  • [Fast hint] "Click to call" feature, iOS development

    Now we do a little example of how do make call into your app we need only one line of code for this feature
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithString:@"tel://55555555"];
    
    OK, it's simple, but.... We need to do a verify if the user wants to make the call ok, let's change a code First step create a IBAction with a UIAlertView to verify user decision
    -(IBAction)clickToCall{
             UIAlertView *msg = [[UIAlertView alloc] initWithTitle:@"Aviso" message:[NSString stringWithFormat:@"You really want to make a call to
     %@", phoneNumber.text] delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Call", nil];
    	[msg show];
    	[msg release];
    }
    
    And finally, verify a user decision and make a call
    - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
    	if (buttonIndex == 1) {
    		[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"tel://%@",phoneNumber.text]]];
    	}else{
    		[super alertView:alertView clickedButtonAtIndex:buttonIndex];
    	}
    }
    
    Yeah, we made a click to call feature :) For this hint is all up to the next Thanks
  • [Fast hint] Customize UINavigationBar with background image

    Ok, it’s really really simple for example we have a application like that and we want to set that image to background from navigation bar ok let's show a little the code in the end of file appDelegate.m file, after @end put bellow code
    @implementation UINavigationBar (CustomImage)
    - (void)drawRect:(CGRect)rect
    {
    	UIImage *image = [UIImage imageNamed: @"navbar-iphone.png"];
    	[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
    }
    @end
    
    and now... let's see the result For this hint is all up to the next Thanks
  • [Fast hint] UIWebView load html string

    Now let's do a simple example to load a htmlString in the UIWebView it's really simple
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
        NSString *htmlString =  [NSString stringWithString:@"

    WebView html String Example

    My first paragraph.

    "]; [webView loadHTMLString:htmlString baseURL:nil]; [self.view addSubview:webView]; }
    For this hint is all up to the next
  • [Fast hint] Simple animation with CoreAnimation

    Let's create a simple animation to flip UIImageView and change your image First Step create a UIImageView object
    @interface MyClass : UIViewController{
         UIImageView *myImageVIew;
    }
    @end
    
    set a default image
    - (void)viewDidLoad {
           [myImageView setImage:[UIImage imageNamed:@"image1.png"]];
    }
    
    Now let's to create the animation
    -(void)flipAndChangeImage{
    [UIView transitionWithView:myImageView duration:1 options:UIViewAnimationOptionTransitionFlipFromLeft 
    	animations:^{  
                  [myImageView setImage:[UIImage imageNamed:@"image2.png"]];
            }
    	completion:NULL]; 
    }
    
    Now we call function flipAndChangeImage in a action for example
    -(IBAction)callAnimation{
        [self flipAndChangeImage];
    }
    
    We have done a little animation We can use others effects for example
        UIViewAnimationOptionTransitionFlipFromLeft
        UIViewAnimationOptionTransitionFlipFromRight
        UIViewAnimationOptionTransitionCurlUp
        UIViewAnimationOptionTransitionCurlDown
    
    For this hint is all up to the next
  • Propriedades em Objective-C

    Propriedades apareceram em Objective-C na versão 2.0. Eles são o tipo de variáveis ​​de membro virtual. Se você pensar sobre isso, só há duas coisas que você pode fazer para uma variável: atribuir um valor e extrair um valor . Você pode fazer uma variável constante para evitar que ele seja definido, ou escondê-lo, tornando-privadas ou protegidas, mas em nada a definição de valor de uma variável membro afeta o comportamento de um objeto. Propriedades não precisa fazer isso, mas eles podem. Em linguagens orientada a objeto, variáveis ​​de membro descrever o estado de um objeto, enquanto as funções (métodos, mensagens) descrever seu comportamento. Propriedades nos permitem transformar em conjunto de estado e do comportamento.
  • [Fast hint] Simple way to collect disk attributes with Objective-c

    Thats a simple way to collect disk attributes
        NSDictionary* fileAttributes = [[NSFileManager defaultManager] attributesOfFileSystemForPath:@"/" error:nil];
        unsigned long long freeSpace = [[fileAttributes objectForKey:NSFileSystemFreeSize] longLongValue];
        unsigned long long diskSpace = [[fileAttributes objectForKey:NSFileSystemSize] longLongValue];
        // fileAttributtes return value in bytes to convert in GB we need divide result by 1073741824
        NSLog(@"Disk Space: %dGB", (int)(diskSpace / 1073741824));
        NSLog(@"Free Space: %dGB", (int)(freeSpace / 1073741824));
    
    We can get to many others attributes See in class reference NSFileManager
  • Desenvolvimento para iOS - Entendendo o simulador

    A Apple permite que nós executemos nossas aplicações iOS em nosso Mac com o uso do simulador. O principal objetivo do simulador é para testarmos mais rapidamente a nossa aplicação, pois a implantação de um dispositivo IOS pode demorar dependendo do tamanho de nossa aplicação. Em particular o uso de um monte de imagens e outros ativos que precisam ser transferidos, retardando a implantação. No entanto, existem várias advertências ao uso do simulador. Não podemos avaliar o desempenho O desempenho do aplicativo sendo executado no simulador depende inteiramente da CPU do seu computador. É por isso que o aplicativo rodando no simulador não tem nenhum significado em tudo. Sempre faça o seu teste de desempenho do dispositivo, utilizando a configuração de compilação de lançamento. Não é possível avaliar a utilização da memória O simulador é capaz de usar toda a memória disponível no seu computador, ou seja há muito mais memória disponível no simulador do que em seu dispositivo. Isto significa que você não irá receber avisos de memória e seu aplicativo vai rodar bem no simulador, mas você pode estar cometendo um grande erro quando você rodar o aplicativo pela primeira vez em um dispositivo IOS. Você pode, entretanto, avaliar a quantidade de memória é usado atualmente por seu aplicativo usando o simulador. Não é possível usar todos os recursos do dispositivo IOS Algumas características, como a orientação do dispositivo que pode ser simulada usando itens de menu ou atalhos de teclado, mas isso não esta perto da experiência em dispositivo real. E alguns recursos de hardware, como o multitouch, acelerômetro, vibração, ou obter informações sobre a localização não pode ser testada em seu simulador, pois o hardware do computador não pode simular esses recursos. E que fique avisado: Não adianta sacudir o seu Mac ou tocar na tela. Tente se você não acredita em mim. :) O Runtime do aplicativo pode diferir Acredito que essa é a situação que eu mais tenho passado. De vez em quando você pode encontrar situações desagradáveis, onde o aplicativo roda muito bem no simulador, mas falhas no aparelho, ou o aplicativo fica mais lento sem qualquer razão aparente. Também pode haver falhas que aparecem apenas no simulador ou apenas no dispositivo. Em caso de dúvida, e antes de mergulhar em uma busca prolongada para descobrir o que está errado, sempre tento executar o seu aplicativo no dispositivo se você está tendo problemas no simulador, ou vice-versa. Às vezes, o problema pode simplesmente ir embora, mas se não, você pode receber uma dica sobre o que está acontecendo. Por todas estas razões, é recomendado que você teste o seu aplicativo muitas vezes em um dispositivo. Pelo menos a cada mudança importante ou perto do fim do dia, você deve executar um teste em seu dispositivo IOS para verificar que o aplicativo se comporta exatamente como planejado.
  • Conhecendo Objective-C

    Um pouco de história O Objective-C é basicamente a mistura de 2 linguagens C e SmallTalk, a linguagem foi desenvolvida por Brad Cox e Tom Love no início da década de 1980. Hoje em dia, é utilizada principalmente no Mac OS X e GNUstep, dois ambientes baseados no padrão OpenStep e é a principal linguagem utilizada nos aplicativos estruturais NeXTSTEP, OPENSTEP e Cocoa. Programas genéricos em Objective-C que não façam uso destas bibliotecas também podem ser compilados por qualquer sistema suportado pelo gcc, que inclui um compilador Objective-C.
  • Criando uma animação simples com cocos2d

    Neste post vou criar uma animção simples com cocos2d Para começar é so criar um novo projeto com o template cocos2d Application
  • Conhecendo cocos2d

    A pouco tempo comecei a estudar cocos2d, para quem não conhece cocos2d é um framework para construção de jogos 2D, demonstrações e aplicações interativas. É baseado no design cocos2d Python ele usa os mesmos conceitos, mas em vez de usar Python usa Objective-C. O framework é bem completo e combinado com outros frameworks como por exemplo ChipMunk , Box2d e SpaceManager o que vai faltar é apenas imaginação para criar uma aplicação ou game de sucesso.
  • Meu ambiente de desenvolvimento em 7 items

    A brincadeira chegou até mim através do @abstractj então vamos lá.
  • BDD para IPad e IPhone com Kiwi

    Quero apresentar uma biblioteca para testes unitarios em Objective-c chamada Kiwi. Esta lib é bem simples de ser usada e para quem vem do Ruby vai perceber que ela é bem parecida com o Rspec como vocês podem ver no código abaixo
  • Os seis chapéus do pensamento

    Semana passada, no 8º encontro do Guru-SP, tivemos um lighting talk muito interessante de Rafael Rosa, o tema era como ter uma reunião de equipe produtiva usando uma técnica chamada Bono Hats ou também conhecida como "Os seis chapéus do pensamento" ou em inglês "Six Thinking Hats". A técnica foi desenvolvida pelo Dr. Edward de Bono e é tema de um de seus livros. Após ouvir sobre a técnica procurei conhecer um pouco mais sobre o assunto e percebi que é um modelo muito usado e muito simples de ser aplicado.
  • Lighting Talk com Guilherme Silveira sobre RESTful no Guru-sp

    No 8º encontro do Guru-SP realizado na Caelum tivemos 2 palestras muito interessantes de @cassiomarques e Felipe da Boo-Box falando sobre problemas que enfrentaram e qual a solução que encontraram. Tivemos também alguns Lighting Talk um deles foi do @guilhermecaelum falando um pouco sobre RESTful.
  • Mini Curso Scrum + XP na Global Code com Wagner

    Fala pessoal, Ontem dia 05/04, assisti o mini curso de Scrum + XP na Global Code com Wagner Robero dos Santos. Como o nome já diz MINI CURSO, então tivemos pouco tempo apenas 3 horas de curso mas o Wagner conseguiu abordar bem o assunto, o tempo foi muito bem aproveitado por ele e pelos participantes. Cada vez mais estou participando de mini cursos e palestras sobre o assunto e cada vez mais tenho certeza, essas metodologias são simples a primeira vista, mas devemos tomar muito cuidado ao querer implementar essas metodologias em nosso ambiente de trabalho, deve haver uma aceitação de toda equipe e dos superiores, essas metodologias não vão funcionar se ouver sempre aquela pessoa do contra, que não aceita mudanças. Acredito que o primeiro passo para começar aplicar esse tipo de metodologia é a aceitação de mudanças, a primeira vez que pessoas que trabalham com metodologias convencionais se deparam com metodologias ágeis é um choque como as coisas podem funcionar daquela maneira, parece até uma bagunça..rs Outra coisa que ainda vejo muita resistência é fazer o desenvolvimento a partir dos testes, as pessoas ainda não consegue ver o ganho sobre isso, ainda existe aquela filosofia que estaremos fazendo o dobro do trabalho e estaríamos desperdiçando tempo, sendo que na verdade nas metodologias tradicionais perdemos muito e muito tempo planejando e documentando antes de começarmos a desenvolver. Infelismente ainda não consegui editar os videos do mini curso para disponibilizar na web, assim que o fizer vou colocar aqui no blog. Mas uma vez parabéns ao Wagner e a Global Code por esse evento, quem quiser saber mais sobre o trabalho do Wagner e da segue o link para o blog e o Twitter dele. Abraço a todos Contatos do Wagner blog - http://netfeijao.blogspot.com/ Twitter @wrsantos Global Code blog - http://www.globalcode.com.br Twitter - @globalcode
  • Testes

    Vamos falar um pouco de testes mas de uma maneira geral. Por que devemos fazer testes nos nossos códigos? Muitas pessoas dizem que programadores que faz teste não tem segurança no próprio código ou até mesmo que ao fazer testes você perde muito tempo no desenvolvimento de certa atividade. Fato realmente fazer testes pode tomar um pouco de tempo mas você tem um ganho maior conforme sua aplicação vai crescendo ou até mesmo a equipe vai crescendo, quem garante que em uma nova versão da aplicação todos os metodos, funções, classes e telas estarão funcionando? Quantas vezes após alguma modificação no sistema perdemos algumas funcionalidades sem perceber e quando percebemos já esta em produção as vezes isso pode ser tarde de mais. Pois é quem nunca passou por essa situação? Atualmente muitos desenvolvedores estão mais exigentes em relação aos testes de suas aplicações, como eu estava lendo hoje em um artigo da InfoQ "Não apenas com o intuito de garantir que as coisas funcionam ou de garantir que o desenvolvedor é um profissional de verdade, mas também de garantir que num futuro próximo pessoas novas na equipe tenham a capacidade de entender como as coisas funcionam a partir dos testes.". Outra coisa importante que foi abordado no artigo da InfoQ é que os testes devem ter nomes bem definidos e não utilização de nomes genéricos. Todos sabemos que em tempo de produção o usuário é imprevisível, então não devemos testar apenas o que queremos que aconteça devemos ir mais além e ver nossos testes falharem obter a informação para que podemos entender o que está acontecendo. Então fica a dica, devemos criar o costume de fazer testes em nossas aplicações mesmo que percamos um pouco de tempo no desenvolvimento mas isso nos poupara muitas horas no futuro.
  • [Off-Topic] First

    Fala galera, primeiro post aqui, ainda estou montando um material legal para colocar aqui para vocês, vou estar montando alguns screencast, algo bem legal e interativo para estarmos trabalhando aqui. Meu foco vai ser Ruby e seus frameworks Rails um pouco de Sinatra, Testes na minha opnião uma das coisas mais importantes e também um pouco do mercado de trabalho para quem quer trabalhar com Ruby no mercado brasileiro, vamos ver também muita coisa de Metodologia Ágil e muito mais ai que um programador Ruby deve saber para se dar bem no dia-a-dia.

subscribe via RSS