March 26, 2020 update: Thanks to improvements made in iOS, the iPhone operating system, this issue has now been fixed.
One of our most common support requests concerns entering decimal numbers on an iPhone keypad. App creators write us and express frustration that they’ve designed an app that works perfectly well, but that their iPhone users essentially can’t use it, as they can’t enter decimal numbers. (In this context, a decimal number is a number with a decimal separator, that is, a fractional part.)
Actually, you can enter decimal numbers on an iPhone: Tap the button marked +*# and then on either of the * or # buttons. To type a minus sign, tap the + button. (Refer to the link for a video of the process.)
Just a few hours ago, John posed this question and received this lengthy reply from David:
Thanks! I’m glad that you have found a good use for an app you have built in your pharmacy department. We have actually spent years building apps for hospital use, including drug dosage apps (my co-founder is a pediatrician), so it’s no accident that Calcapp is well-suited to the task.
About the decimal entry problem on iPhone devices: The short answer is that, while awkward, you can enter decimal points on an iPhone by pressing * or # on the secondary keypad page (reachable by pressing the button marked +*#).
Here’s a longer answer: on an iPhone, you enter decimals by pressing the +*# button in the lower-left corner of the keypad and pressing either * or #. When you run Calcapp Connect on your iPhone, there should be a page after you sign in with this information. When you run a shared app (run through a link that is produced by the share window you get when you press the Share app button), that page with instructions does not appear. When you share apps through e-mail, the mail that is sent contains a link to our guide that does have these instructions.
This is not a great solution and it is specific to the iPhone. The problem is that the apps you produce with Calcapp are currently web apps, and with web apps we get to choose between a keyboard that is supposedly meant for numbers and a keypad meant for entering telephone numbers. The numeric keyboard you get on an iPhone with web apps is pretty terrible. What Calcapp Connect does is that it asks for a keypad meant for entering telephone numbers. Formally speaking, Apple is actually correct in not including keys for entering decimals and minus signs, but all other devices (including Android devices) use keypads with these keys present when you ask for a keypad suitable for telephone numbers. (I was on the keyboard team at Sony Mobile and we made the same pragmatic call.)
So we’re essentially stuck between a rock and a hard place. If we ask for a keyboard for numeric entry, we’ll get the keyboard where the numeric keys only occupy a single row and if we ask for a keyboard for entering telephone numbers, we get a great keypad everywhere – except when used on iPhones, in which case entering decimal numbers becomes hard. (The fact that you can press the * or # buttons to enter decimal separators is a hack we put in.)
We could, actually, use the numeric keyboard (the one with the single row for the numeric keys) if, and only if, the user runs an iPhone and the app designer has asked for a field formatted with one or more decimal places. We could also put this power in the app designer’s hands, by making it possible for you to make that trade-off. What would you prefer?
When we introduce a native version of Calcapp Connect for iOS, this issue will go away, provided that you run the native version. The web version, though, will always be saddled with this problem until the device makers do the work necessary to fix this the right way.
(And don’t get me started on entering negative numbers. Not even native iOS apps can easily get a keypad with both a minus sign and a decimal separator. This is what the standard keypad looks like with a decimal separator; notice the lack of a minus sign.)
Has this issue affected you? Would you prefer that Calcapp handled this differently? Let us know!