I mentioned yesterday that i've become rather smitten with Codea but didn't exactly find the prospect of typing on the iPad screen appealing. I could have hooked up a Bluetooth keyboard, but I don't want to carry one around with me, especially as the one I own is massive. I didn't really feel like spending 50-100$ on a portable one, I generally can't stand them if I'm honest. In the end I came up with the following solution and I actually rather like it. There is a price tag attached with this setup though, about 16$ ( or 1416$ if you count the MacBook and iPad Mini…). Which ironically enough is more than Codea costs! I was going to buy the one app anyways for other reasons, so that was a non-factor for me.
Here is my Codea dev environment in action!
Instead of using a Bluetooth Keyboard, I am using my MacBook as one using the application Type2Phone, a simple little application that acts like a virtual bluetooth keyboard.
Connect and pair like a normal bluetooth device, then when the app has focused, anything types is sent to your iPad and the iPad's keyboard is hidden. Type2Phone has a 4.99$ price tag, but it works very well and has plenty of options. Even more important, it handles connects and disconnects very well. There is a more expensive app called iKeyboard, the one you will find if you google. It doesn't appear to be maintained, doesn't work with iOS6 and costs twice as much. Use Type2Phone instead, even if it has a horrible name! :) It's one of those slick little utilities that sets out to do one thing and does it well, I appreciate those. If you are running on a PC, I am certain you will be able to find similar utilities, as long as you have bluetooth that is.
Now typing and looking at a different device is kinda awkward, so I decided to mirror my iPad's display to screen. The easiest way to do this is with Reflector a 13$ purchase that runs on either Mac OS or Windows an enables you to mirror your iPad display on your desktop using Airplay. So long as your network connection, the results are pretty solid. In the above picture, I am out at a coffee shop with both devices tethered through my Android phone and it was a bit choppy at times when running a game or movie, but flawless when programming in Codea. On my home network, it's simply flawless.
Here is Codea running mirrored on my desktop using Reflector.
Now, Reflector is a cool little application and one I was intended to purchase anyways ( it's one of the easiest ways to screen capture an iOS game at full speed without having to run the simulator.
Now you may be asking, why not just run the simulator? At the end of the day, you can't beat running on the actual device, especially when it comes to motion controls and multitouch. Plus, under this setup, all of my code exists in one place, on the device, no need to move from Mac to Dropbox to iPad for example, or the other various deployment mechanisms. Plus at any time I can just pick up the device and go, the big strength of Codea. This way, I can give myself a desktop like development experience when I am at home or have my laptop with me, but I can still take advantage of the iPad based nature of Codea when I am on the go.
There is one downside to this setup, and one I don't think I am going to be able to overcome… you still need to touch the device… there is no mouse support in iOS ( unlike Android ) and Reflector is for display only. You will find yourself clicking things in Reflector over and over until you get used to it. If you know a way to control the touch screen on an iPad from a Mac, let me know!
You can see a video of the entire thing in process right here: