This was my first ever iPhone app.
The app turned on GPS, sent pings to 127.0.0.1, did a lot of threaded floating point and other calculations as well as used sprites to simulate a fire. The amount of heat was adjustable by increasing and decreasing the amount of work I sent to the iPhone's components.
Because different components converted the battery power to heat at different efficiencies, I estimated which ones did a more effective job at converting power to heat and turned them on first rather than turning them all on and off at the same rate. An example of this is GPS. GPS does produce a lot of heat however it also produces waves to communicate to other devices. Because energy is leaving the phone in these waves there is less heat produced than if the iPhone ran only the CPU. Of corse on a very cold day, someone may not care about energy usage and care more about heat, so the hand warmer does turn on GPS when the user wants higher temps.
When left on, the iPhone would drain it's battery power but in return would produce heat.
This app never made it to the app store because the phone produced too much heat when left on at full power. The app was returned to me saying something about breaking the iPhone.
Here is a video of how the app works
Lessons Learned:
Being my first app, it was nice to touch on most of the components that general iPhone developer uses (except for story boards).