Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Whole Enchilada

The Whole Enchilada

The Whole Enchilada
Inception to delivery in just 2 weeks

* Agility & Collaboration
* Test Driven Development
* Tools of the trade
* Delivery / Open Source

We could have built a simple "hello world app" to demonstrate how we do things. That would be lame. Instead, we decided to find a local customer and demonstrate on a small scale how we rock out apps @LeanDog We will take you through the entire process from the initial planning, to testing, building, and deploying a native Android application for our local lunch favorite - Ohio City Burrito.

stevenjackson

June 01, 2013
Tweet

More Decks by stevenjackson

Other Decks in Programming

Transcript

  1. We write code... and we write it well Oh... And

    we’re ON A BOAT! Friday, June 14, 13
  2. WE WROTE A CUKE... 10 Feature: Getting directions to Ohio

    City Burrito As a hungry burrito lover I want to drive to OCB So I can get a Brother’s Burrito Scenario: Directions button should take us to Google Maps Given I'm hungry for some OCB When I touch the map icon Then Google maps should provide me with directions Friday, June 14, 13
  3. WHAT’S A CUKE?... 11 Feature: As a hungry burrito lover

    I want to drive to OCB So I can get a Brother’s Scenario: Directions butt take us to Google Maps Given I'm hungry for som When I touch the map ico Then Google maps should with directions Friday, June 14, 13
  4. WHAT’S A CUKE?... 11 Feature: As a hungry burrito lover

    I want to drive to OCB So I can get a Brother’s Scenario: Directions butt take us to Google Maps Given I'm hungry for som When I touch the map ico Then Google maps should with directions CUKES ARE TESTS! Friday, June 14, 13
  5. ATDD 13 Define Fail Fail Refactor Pass Pass Acceptance Test

    Developer Test TDD Friday, June 14, 13
  6. THREE AMIGOS 14 Knows what to build Knows how to

    build it Knows how to verify it Friday, June 14, 13
  7. OUR FIRST CUKE 15 Feature: Getting directions to Ohio City

    Burrito As a hungry burrito lover I want to drive to OCB So I can get a Brother’s Burrito Scenario: Directions button should take us to Google Maps Given I'm hungry for some OCB When I touch the map icon Then Google maps should provide me with directions Friday, June 14, 13
  8. @Override protected void onStart() { super.onStart(); ListView menuListView = (ListView)

    findViewById(id.menu_list_view); menuListView.setAdapter(new ArrayAdapter<String>( this,android.R.layout.simple_list_item_1, Arrays.asList("Burritos","Tacos","Choices and Additions"))); } Friday, June 14, 13
  9. 20 Scenario: Checking prices Given I want to see what

    Ohio City Burrito serves When I touch the menu sign Then I should see the prices: | Brother’s Burrito | $6.15 | | Baby Burrito | $1.85 | Friday, June 14, 13
  10. 20 Scenario: Checking prices Given I want to see what

    Ohio City Burrito serves When I touch the menu sign Then I should see the prices: | Brother’s Burrito | $6.15 | | Baby Burrito | $1.85 | Friday, June 14, 13
  11. 21 Then /^I should see the prices:$/ do |expected_items| actual_items

    = [] expected_items.raw.each do |item, expected_price| price = on(MenuScreen).price item actual_items << [item, price] end expected_items.diff! actual_items end Friday, June 14, 13
  12. 21 Then /^I should see the prices:$/ do |expected_items| actual_items

    = [] expected_items.raw.each do |item, expected_price| price = on(MenuScreen).price item actual_items << [item, price] end expected_items.diff! actual_items end Friday, June 14, 13
  13. 22 class MenuScreen include Gametel ITEM = 0 DESCRIPTION =

    1 PRICE = 2 button(:directions, :id => "directions_button") button(:call, :id => "call_button") def price(item) Gametel::Views::ListItem.new(platform, :text => item).text[PRICE] end end Friday, June 14, 13
  14. 22 class MenuScreen include Gametel ITEM = 0 DESCRIPTION =

    1 PRICE = 2 button(:directions, :id => "directions_button") button(:call, :id => "call_button") def price(item) Gametel::Views::ListItem.new(platform, :text => item).text[PRICE] end end Friday, June 14, 13
  15. 26 SO WE MENTIONED SCIENCE... 12 Define Fail Fail Refactor

    Pass Pass Acceptance Test Developer Test TDD Friday, June 14, 13
  16. 27 SO WE MENTIONED SCIENCE... 12 Hypothesis Fail Refactor Pass

    Write a Test == Experiment Results Conclusion Repeat Friday, June 14, 13