What schemes actually do
Basically, schemes are way to control many of the things that happen when you hit the Run button. There are a whole host of options that we may wish to change when running an app under different circumstances (whether real or simulated), and Xcode exposes to us dozens of settings that are brought together as schemes. Each scheme we create will have something set differently, which in turn will be picked up during the build and applied to the app.
Many of the changes are achieved through the choice of build configurations, which we will get to shortly, but before we go there, let's take a look at some of the simplest ways to feed different information into our apps, without continually commenting and uncommenting sections of code, which is both risky and irritating.