Sexy Specs on XCode with MacRuby and Rspec (Lightning Talk)
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Sexy Specs on XCode with MacRuby and Rspec (Lightning Talk)

  • 1,770 views
Uploaded on

How to use RSpec to write specs on your Objective-C code, and integrate this with XCode's build process.

How to use RSpec to write specs on your Objective-C code, and integrate this with XCode's build process.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,770
On Slideshare
1,744
From Embeds
26
Number of Embeds
3

Actions

Shares
Downloads
11
Comments
0
Likes
1

Embeds 26

http://gurusp.org 21
http://www.linkedin.com 3
http://www.gurusp.org 2

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • Talk sobre MacRuby, Sexy Specs e, dando tempo, um gostinho de HotCocoa.
  • Trabalho na Labone, recentemento desenvolvimento aplicações para iPad, iPhone e Android.

  • Existem algumas semelhanças entre as duas linguagens...
  • Mas com certeza essas semelhanças não estão na sintaxe.
    Ruby tem esse “problema”, após ele toda syntaxe parece estranha, e não se expressar direito.
  • Mas com certeza essas semelhanças não estão na sintaxe.
    Ruby tem esse “problema”, após ele toda syntaxe parece estranha, e não se expressar direito.
  • Mas com certeza essas semelhanças não estão na sintaxe.
    Ruby tem esse “problema”, após ele toda syntaxe parece estranha, e não se expressar direito.
  • Mas com certeza essas semelhanças não estão na sintaxe.
    Ruby tem esse “problema”, após ele toda syntaxe parece estranha, e não se expressar direito.
  • Algum código objective-c comparado com código Ruby
    Breve visão sobre semelhanças/diferenças
  • O MacRuby é uma implementação da linguagem Ruby 1.9 sobre o Objective-C runtime.
    A versão 0.6 é considerada estável, a princípio permite construir aplicações cocoa totalmente funcionais.
    O projeto é liderado pela própria Apple.
  • O objetivo principal do projeto é a construção de aplicações para mac OS X
  • No site do macruby, existe alguma documentação e também o “instalador” que adiciona funcionalidade (templates de projeto) ao Xcode.
    Também é possível a instação via rvm.
  • No site do macruby, existe alguma documentação e também o “instalador” que adiciona funcionalidade (templates de projeto) ao Xcode.
    Também é possível a instação via rvm.
  • No macirb, é possível ver que as classes do Ruby são na verdade classes Objective-C.
    Os métodos de ruby são acessíveis e também os de Objective-C.
  • Também é possível invocar as classes/métodos Objective-C a partir do Ruby.
  • Também é possível invocar as classes/métodos Objective-C a partir do Ruby.
  • Também é possível invocar as classes/métodos Objective-C a partir do Ruby.
  • Cocoa é um “ambiente” de programação baseado em Objective-C,
    um conjunto de apis, frameworks...
    para desenvolvimento Mac OS X. O MacRuby é “integrado” com Cocoa.
    E quanto ao iOS, o s.o. que roda no iPhone no iPad?
  • Ainda não é possível construir aplicações para iOS usando MacRuby.
    Mas os rumores já são muitos de que vem algo por aí.
  • Recentemente um engenheiro da apple comentou algo sobre, no twitter...
  • RSpec.
    Existem soluções “nativas” no xcode para TDD, mas o RSpec é “outro nível”.
    Vamos ver então como fazer para criar as specs executáveis “contra” nosso código Objective-C.
  • Instalação do RSpec via macirb.
    Por enquanto ainda não me aventurei com o RSpec2, shame on me.
  • passos:
    criar novo projeto no xcode
    criar uma classe
    setar as propriedades do projeto (garbage collection supported)
    alterar o script de building do teste (aqui é um script ruby)

    O que vou fazer é usar a automação do build que o xcode permite para executar minhas specs.
  • passos:
    criar novo projeto no xcode
    criar uma classe
    setar as propriedades do projeto (garbage collection supported)
    alterar o script de building do teste (aqui é um script ruby)

    O que vou fazer é usar a automação do build que o xcode permite para executar minhas specs.
  • passos:
    criar novo projeto no xcode
    criar uma classe
    setar as propriedades do projeto (garbage collection supported)
    alterar o script de building do teste (aqui é um script ruby)

    O que vou fazer é usar a automação do build que o xcode permite para executar minhas specs.
  • passos:
    criar novo projeto no xcode
    criar uma classe
    setar as propriedades do projeto (garbage collection supported)
    alterar o script de building do teste (aqui é um script ruby)

    O que vou fazer é usar a automação do build que o xcode permite para executar minhas specs.
  • No diretório /specs/criei um arquivo my_twitter_spec.rb
    Vejam que para escrever minhas specs posso usar meu editor favorito.
  • E então no X Code, ao executar o build, ele falha.
  • Crio uma classe MyTwitter
  • E o teste passa.
  • Agora crio um “should” para uma funcionalidade que minha classe
    ainda não tem.
    Notem que estou chamando uma classe que foi criada no xcode, em Objective-C (MyTwitter)
  • E como o esperado o teste falha.
    Vejam que agora ele dá os detalhes (que nada mais é que a execução padrão do RSpec).
  • Implemento meu método.
  • E meu build fica verdinho novamente.
  • Testei meu “domínio” criado em objective-c usando somente RSpec! #FTW

  • Obrigado senhores, já podem vaiar agora.

Transcript

  • 1. MacRuby & Sexy Specs 1
  • 2. Ricardo Valeriano (eu) (Web? Mobile?) Developer PHP ¬¬, Java, C#, JavaScript =), Ruby #FTW github.com/ricardovaleriano @ricardolho
  • 3. Reflective Object-Oriented Dynamic Smalltalk Inspiration...
  • 4. NSMutableArray *array = [[NSMutableArray alloc] init]; [array addObject:@"Objective-C"];
  • 5. NSMutableArray *array = [[NSMutableArray alloc] init]; [array addObject:@"Objective-C"];
  • 6. NSMutableArray *array = [[NSMutableArray alloc] init]; [array addObject:@"Objective-C"]; “Depois de Ruby tudo é feio,
  • 7. NSMutableArray *array = [[NSMutableArray alloc] init]; [array addObject:@"Objective-C"]; “Depois de Ruby tudo é feio, máno
  • 8. NSMutableArray *array = [[NSMutableArray alloc] init]; [array addObject:@"Objective-C"]; “Depois de Ruby tudo é feio, máno .“
  • 9. NSMutableArray *array = [[NSMutableArray alloc] init]; [array addObject:@"Objective-C"]; array = [] array << “ruby”
  • 10. MacRuby Ruby 1.9 v 0.6 - “Stable” Mac OS X applications Liderado pela Apple
  • 11. http://www.macruby.org
  • 12. http://www.macruby.org
  • 13. http://www.macruby.org
  • 14. =[
  • 15. Recapitulando Usei MacRuby para instalar gems Usei o XCode para criar código Objective -C Para iOS, bastaria usar os ‘retain’ e ‘releases’ Criei specs no editor que já uso com Ruby Usei a automação de Build para rodar as Specs
  • 16. Obrigado Buuuuhhhhh @ricardolho