From the Cucumber wiki:
Failed steps
When a Step Definition’s Proc is executed and raises an error, the step is marked as red. What you return from a Step Definition has no significance what so ever. Returning nil or false will not cause a step definition to fail.
Returning false in the step definition is not sufficient. You need to raise an error if the Home Screen is not being displayed.