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

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

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

1,243
views

Published 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.

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,243
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
11
Comments
0
Likes
1
Embeds 0
No embeds

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