Sunday, April 4, 2010

iPhone Keyboard Emulator

UPDATE:
This page will no longer be updated.

---

The iPhone Keyboard Emulator is an "Input Method" that runs on Android 2.1 OS phones and is mainly for iPhone users that have switched from using an iPhone to an Android based phone.

If you don't already have it installed, you can use this site to help find it in the Market: iPhone Keyboard Emulator

Installation

Don't expect an icon to show up on the home screen;
this is an Input Method and is essentially a modification to the system that allows you to change how it works (one of the great wins of Android).

Here are some quick instructions on enabling it:
  1. Go to Settings -> Language & keyboard
  2. You should see "iPhone Keyboard" listed about half way down.
  3. Enable the new input method by selecting it (check the checkbox) you should get a warning that I could have logged your keys presses etc. If you don't trust me now, uninstall it and stop wasting your time reading this.
  4. You can now exit Settings.
  5. Select any application you like that you can enter text into.
  6. Make a long-click on the text input (press and hold your finder on the text box).
  7. You should get a popup list within a few seconds and one of the options should be "Input Method". Select it.
  8. You should see the iPhone Keyboard in the list of input methods. Select the iPhone Keyboard option.
  9. Your keyboard will now change.
Note that you can change it any time you like, but the selection will be sticky (it stays selected) and going back to the original Android Keyboard is as simple as doing steps 6 through 9 again.

For more detail on input methods, see: Change Your Android Soft Keyboard System


Version History

Version 1.0.05 EA
- Reworked keyboard. (Keyboard changes in 1.0.04 were not helpful)

Version 1.0.04 EA
- Fixed apostrophe deleting previous char.
- Added double-space = period+space
- improved key spacing & layout
- Fixed shift key preview (was popping up blank)

Version 1.0.03 EA
- Fixed can't select / or : on N1

Version 1.0.02 EA
- fixed layout on shift-symbol keyboard.

Version 1.0.01 EA
- fixed button images
- improved layout

Version 1.0.00 EA
- Initial release

Upcoming Features

I actually do pay attention to the comments attached to the app in the Android Market. This is a list of features I see people asking for (in no particular order, you'l get them when I get to them).
  • (***DONE) Improved key spacing
  • Auto-complete
  • (***DONE) Space bar double-tap for a period+space.
  • Improvement to the key colours (iPhone uses two tones of grey)
  • Landscape mode
There have been a few comments about how it's "exactly like the android native keyboard" which is simply not true. I can only imagine that nobody bothered to hit the number screen, where most of the changes are... so to those people; get a clue.

For those that can't get it to work: so far most of the comments to that effect are because someone didn't actually bother to read the instructions above. To those people; I'm sorry your having trouble, but please RTFM.

Known Issues
  • The key colours are not the same as the iPhone.
FAQ

Q: What version of Android does this work on?
A: It should work on any Android 2.1 OS that uses a virtual keyboard. It was specifically written for the Nexus One but I have reports that it also works on Motorola Droid (although I don't now why you'd need it on one).

Q: Does it collect my data as the warning suggests it could?
A: No. I'm not interested in your data. I wrote this for myself and I already know my own data.


Reasoning

Having used an iPhone for a few years now, I am finding the Android keyboard a bit difficult to use. I think the iPhone layout is much better both in allowing my big finders to hit the tiny keys and in its visual design. I hate how the android keyboard switches from lower case to upper case letters all the time and my fingers are used to finding certain keys in certain places.

To deal with the problem for myself, I created a new "Input Method" that emulates the iPhone layout. The app is designed to run on my Nexus One with Android OS 2.1 but should work on any 2.1 Android phone.

It's working great for me, and I hope you find it useful as well.