Options For Controlling an RC Car
The "standard" RC protocol is to transmit bursts of AM pulses[1], the relative positions of which are translated by the receiver into variable-width control pulses that get sent to the servos. It should be fairly straightforward for the smartphone app to send pulses out the headphone jack, which are then used to key a simple RF transmitter on a standard RC control frequency. Then, in the car, you'd use an off-the-shelf RC receiver and servos to control the car.

A standard RC servo requires a control pulse that has a variable width of 1-2 ms (sometimes this is extended to 0.5-2.5 ms) and repeats at a 20-50 Hz rate. A basic RC car might have as few as two servos, while a complex plane might have six or more, each of which needs its independently-controlled pulse.

Rather than sending variable-width pulses over the air, which would be subject to noise and distortion of various types, the transmitter instead sends a series of fixed-width pulses (on the order of 0.5 ms or so), and it's the spacing among these RF pulses that becomes the width of the servo control pulse at the output of the receiver.

For example, a six-channel transmitter will send 7 pulses at a time. The time between the rising edge of the first pulse and the rising edge of the second pulse is turned by the receiver into the control pulse for servo #1. Similarly, the time from the second RF pulse to the third RF pulse becomes the control pulse for servo #2, and so on. After the seventh RF pulse, there's a relatively long gap (10 ms or more), which signals the receiver to reset its decoder back to servo #1.

[1]: I might be wrong about the modulation. Certainly, the earliest systems used AM, but indications are that modern systems are FM.