1. Can I write an iOS app that reads incoming signals via the
headphone jack such that the app can separate the input into
"high" vs. "low" signals with sufficient accuracy?
2. Using "high" vs. "low" signals, can I encode "Hello world"
into a series of signals and then decode that back into
"Hello world" in my iOS app?
3. Can I encode the typical information contained on the magnetic
strip into a series of signals and then decode that back?
4. Can I do step 3 reliably such that errors during transmission
are automatically corrected for?
5. Rather than doing all of the above via prerecorded signals
being played back from another device, can I create hardware
which has data to be transmitted baked into the ROM and still
do the encode/decode?
6. Rather than baking the data into ROM, can the hardware accept
input via a serial port, encode it, transmit that to the iOS
app, and have the iOS app successfully decode it?
7. Instead of using a serial port, can I solder in a magstripe
reader to accept the input from a swiped card and send it to
the iOS app?
8. Rather than just reading the data into an iOS app, can the iOS
app communicate with a server over the internet and transmit
the data to it?
9. Can the iOS app receive a response back from the server?
That is the little goal, though -- the big goal at Square is clearly to take over all real-world payments. The cheap reader was a simple place to start. (Go check out a store that running off an iPad with Square to see what they want to become).