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.

30 comments:

Pappi23 said...

Can you post a screen shot?

Brill Pappin said...

There you go

Eugie said...

Using your keyboard on my Moto Droid (Android2.1) and like it quite a bit but am having problems with the apostrophe issue. Also, the same thing happens--typing character causes previous character(s) to be deleted--with other keys. So far it has happened with numbers typed after letters, without a space between, and the hyphen key, ditto with no space between letters and the hyphen. The workaround appears to be inserting a space character. Maybe that will help you debug?

Brill Pappin said...

@Eugie

Yes, I'm having the same problem... very annoying :)
I have an update with better key spacing but was waiting to deploy it while I looked into that issue.

It's enough of a pain that it makes using the keyboard hard. The solution is not obvious however and I need to take some time to track it down (which I haven't had much of this week).

I'm hoping to have some time this weekend to get into it. Next version will be 1.0.04 EA.

Brill Pappin said...

@Eugie

Check for an update. I found and fixed the bug where the apostrophe would delete the previous char.

I may have gone a bit overboard with the key layout though in this version... I think the keys are too small.

It's a bit difficult to get it right because the android keyboard wants to be a certain size, and the iphone one is actually larger on the screen.

Eugie said...

Update downloaded and installed. So far, working great. Oops, spoke too soon. In typing the period after "great," it ate the word... but now can't seem to replicate the error. Hmm.

I see what you mean about the key layout sizing. I find it harder to use than the stock Android keyboard in portrait mode now, but still better in landscape, and since I normally write in landscape, I consider it a win. Although possibly a still-buggy win :).

Brill Pappin said...

Well it turned out that when I got version 1.0.04 actually on the device, they were more difficult to use. I've published 1.0.05 which i hope will improve it (closer to what it originally was).

What I see in the emulator and and it looks like ont he device are not always very accurate :)

Donny said...

I'm using your keyboard on an HTC Magic and honestly its pretty accurate and easy for me to use (both portrait and landscape)!


I see that you've published 1.0.05 but i haven't seen it on the actual Market, so is it on the market or no?

Brill Pappin said...

@Donny

Yup, it's there. Is your update checking turned off by chance?

Try killing the market app in case it has cached the data.

I'm still not happy with the size and position of the keys, but I haven't had much time to work on it last week.

Donny said...

hmm... strange I guess I must have updated it, it says version 1005, I just don't remember when I did. :\

Well anyways this is a good keyboard :)

keep up the excellent work!

Gamaliel said...

when can we expect a new update?

Brill Pappin said...

@Gamaliel

I have not worked on it since the release of 1.0.05; I don't get paid for it, and I just haven't had time.

However, the three things I'm most interested in doing are:
- Try and make the layout a bit better (I'm still finding it a bit clumsy).
- Auto completion (android style, not iPhone style)
- A little smarter on things like punctuation.

I can't tell you when I'll get to it though as the last few weeks have been non-stop.

If there is a show stopper bug, by all means let me kno; I'll take a look and fix it as quickly as possible.

Oudrey James said...

Has anybody tried this on a 1.6 device?? I'm stuck with it until SE updates the x10....

Brill Pappin said...

@Oudrey

I don't expect it to work in a 1.6 device. I wrote it in the 2.1 API for my Nexus One and made no effort to make sure it would work in a previous OS.

callum said...

I am using the HTC Desire and I cannot seem to get the keyboard to open in any way :( I fear that it may be the HTC sense keyboard overriding everything else as Better keyboard does not work either. Do you know any way to get it working?

Augusto said...

Do you plan to enable keys with specials chars? Like when we hold a key show some alternatives. This is important for latin languages. Thanks.

Brill Pappin said...

@Augusto

Yes i do plan to add that feature... however i have not had time to update the code for a while as I have been extra busy with paying work :)

Ad said...

Hello!
Great job!have tested many layouts for a2.1 and this is the one! I also would like to confirm that it works with samsung I5700.
Two requests:
1.capitalization: is/will there be a way to switch off autocapitalize of first letter of a sentence? Second part: there is no difference(just a green indicator) between "first capital" and "all capitals" modes
2.Return/search/go button doesn't trigger the action but just puts single space after www address,search etc. - so for example i can't load a page under opera mini; in the built-in browser I have to resort to the buttons right to the address/search panel as it's impossible to use the one in the onscreen keyboard. Is that a problem just for me and samsung i5700?
regards, Adam

Brill Pappin said...

@Ad

I don't really know anything about the Samsun i5700, so I can't tell you if it works or not.

I can tell you that the keyboard is far from finished and since I am not paid to develop it, it takes a bit of a backseat when paying work takes up all my time.

However, I'll put your comments into my backlog and see what I can do about them. I can't tell you when I'd have time to work on them however :)

Brill Pappin said...

@callum

If you have followed the instructions for enabling an input method and it's still not working, then I'm afraid I can't help very much because I don't have a Droid to play with.

I think the keyboard will work better with a multitouch screen though.

Jason said...

Would it be possible for the apostrophe key to switch the view back to letters like the iPhone keyboard?

By the way, I'm ecstatic about your keyboard. I keep switching back to my iPhone because the keyboard on my N1 is giving me such grief.

Jason said...

Another request along the same lines: when the space bar is pressed and I'm in the other character view, the keyboard view should switch back to regular character view. You know what I'm talking about?

~Jason

Brill Pappin said...

@Jason

I'd certainly like to add that feature... I can't tell you for sure when I'm going to get a chance to work on it again though.

Rafael said...

I like the keyboard and would like to help modifying it, how can I help?

Hongsoon said...

hello ^^..
I am a korean user...
I like using ur iphone keyboard emulator... but, I can not write korean under the keyboard,
so,, can u add a option to change korean from English???

Brill Pappin said...

@Hongsoon

I'm about to release version 1.0.06 EA in the next week or two, which has some significant improvements.

However it will still be english only for this version.

I am looking into adding other languages however, so hang in there.

mike said...

brill, excellent work. i just came from an iphone and now have the evo running 2.2. almost perfect man thank you for this. it is really the hardest part of the switch for me. just curious to see if your still trying to revise/update. the only feature that doesnt work for me is the quick fix. just doesnt fix anything. punctuation and everything else is spot on. keep up the great work!
-mike

Brill Pappin said...

@mike

Thanks Mike!
Good to know people are using it.

Yes, I am still working on it :)
Updates will now be on this page:
http://mobile.sixgreen.com/projects/iphone-keyboard

I'm working on improving the word prediction.

kelli said...

Is it possible to make word suggestions come up. when i am typing I do not get any word suggestions. For instance when i type its it doesnt change it to it's

Brill Pappin said...

@kelli

You are likely using the free version which does not do word correction.

The full version:
https://market.android.com/details?id=com.sixgreen.android.ike.full

Or our newer keyboard:
https://market.android.com/details?id=sixgreen.aos.itap

both have an english dictionary for word completion.