iOS
Why do we support but not recommend iOS?

Update 2020.08 and MCe 8.9

Once you upgrade to the latest iOS and MCe 8.9 the specific bugs mentioned in this document will not affect you..

Apple has FINALLY fixed their camera bug after years of acknowledging it.

Thanks to Apple fixing it, we now provide the same premium experience to our Apple users as we have given our Android and Windows users for years.

If you do not own Apple devices (yet), you might want to read the rest of this document before making a decision, but noting that all bugs in iOS and Safari mentioned below, we either have a work-a-round or Apple fixed the bug.

Introduction

We try very hard to give the best possible outcome on all devices.

One of the most common questions on devices we get is: Do we recommend the use of iOS devices?

We reluctantly have to be honest and say no.

This is not because of anything we do, this is because of choices Apple continue to make what we consider poor choices (adding bugs, not supporting industry standard features.)

What do you officially support/not support

We provide a second best experience for taking pictures and barcode reading on iOS.

Most companies and products like MC Express ONLY provide that second best experience, we assume because they don't want Android or Windows to look better than iOS.

We provide the better experience on Android and Windows, and when iOS provides the feature Edge and Chrome have had for years, we will bring this better experience to iOS immediately. (Apple says they are fixing this in September/October 2017. We will be watching carefully and if there is anything we need to do to make our stuff work on it – we will do that as a high priority. Update: Apple did a terrible job and did not get it working with iOS 11. We'll continue to monitor it and as soon as they fix it enough, we will try to make iOS look as good as the other platforms.)

The community belief is that, because Apple makes billions of dollars from their app store, they want browser apps to look worse.

We do NOT support languages that use Unicode on iOS. (see below for details)

We do NOT support large amounts of offlined data on iOS (we support up to 4.5Meg of data.) In general, Safari seems to have seriously restricted the amount of memory available and frequently will restart the page when it runs out (and it gives no warning and no tools to developers to know when they are getting close.)

Beyond that – we support everything we can, and right now that means everything else. When Apple adds a bug in an upgrade, we respond and usually have a work-a-round within 24 hours. So we really do support iOS well.

Do you use iOS devices?

Yes, we use iOS devices. More than half of our senior staff have at least TWO iOS devices in their household. Either personally and/or their spouses and we continually test MCe/MCxLE against them.

The author of this document lives in a rural location, and the family 'house' phone line is an iPhone. His personal phone is an Android, he runs high end sound boards with iPads and tests MCe with iPads, as well as other devices.

We use iPads, iPhones heavily, as well as Android Phones, Raspberry, Windows desktops and Laptops and even Mac Mini's.

So why do we say

  • Windows is better than Android
  • which is better than iOS for larger screens
  • and Android is better than iOS for phones?

Very simply. For high end applications like MCxLE/MCe it is the truth.

Through the years, we have had one and only one bug in the browser that was specific to Android. We have had a dozen that are specific to Safari (iOS).

We try very hard to quickly create a work-a-round whenever Apple adds a new bug or a customer reports what turns out to be a long-standing bug in iOS.

Here is the tally as of mid 2017, over the past 24 months:

  • About 5 long term bugs found in iOS Safari, fixed and shipped to customers within 24 hours of being reported to us.
  • About 6 'new' bugs that cropped up when an iOS upgrade occurred
    • 4 we fixed before customers even knew there was a problem
    • 2 we fixed and shipped a fix in less than 48 hours of the bug being reported
  • A long-standing bug in iOS where Unicode characters cause huge memory losses. This bug was reported by various companies to Apple years ago (starting around 2012). Apple apparently has focused on English only, because these memory leaks still exist.
    • We fixed within 4 hours of becoming aware so that there are no issues for English and other non-Unicode speakers. (Basically, we changed all the places we used to use Unicode to having an image instead.)
    • We have no way to fix it for customers that want to use a language that uses Unicode. Unfortunately, this will have to wait for Apple to decide they want to support languages that need Unicode characters.
  • A long-standing bug in iOS where if you try to offline more than a little bit of data, iOS gets caught in a near infinite loop asking you if you want to provide more data. We have been attempting to find a way around this, but so far we have been unsuccessful. Again, this bug was reported to Apple by various companies years ago, Apple fixed some of the causes, but not the ones that are relevant to our application.
  • iOS 10.3 upgrade broke indexes on indexedDB when not the primary index. We work-a-round this by not using the auxiliary indexes. If iOS could support a large amount of data, this would be a serious performance problem, but because of that~~~~ ~~~~~~~~~~~~~~~~other~~~~~~~~~~~~~~~~ ~~~~bug, you can't get big enough on iOS for this to be a problem. We created a work-a-round within 24 hours of becoming aware of it.

2020.08 update: Since 2017 Apple has been much better at not adding new bugs. Their 11.0 and 12.0 releases were very buggy but they were both replaced with fixes within days. Sadly – all the bugs they fixed in those days were ones that the community had reported months before, but I guess shipping deadlines were more important, and I guess they figured that as long as they shipped better 11.1 and 12.1 within a few days it was OK to ship crap and replace it 3 or 4 days later – as long as they met their official ship date. We are VERY shy now of any apple x.0 releases and while we HAVE to test the x.0 releases, we recommend our users wait until the x.1 release.

What is Apple's stance?

It depends on who you talk to. In 2015 some Apple developers publicly stated that it was unacceptable and that they needed to rectify the problem 'in the next 5 years'. (They did – in 2020. Sigh.)

Later in 2015, their VP Marketing spoke publicly and stated that Apple purposely stays 5 years behind everyone else, so that Apple customers don't have any bugs. Let the other companies get the features first, and Apple will come along later and provide them with no bugs.

Sadly, the 'with no bugs' has not even been close to achieved, but they have achieved being 5+ years behind others. (Sorry, I guess that is a little sarcastic, but it is technically completely true.)

Looking at the outcome, it looks like the Apple developers are ignoring their VP Marketing, so we are seeing progress in Apple development currently.

Update 2020: I was wrong. They waited 5 years to fix the bugs being discussed in 2015 as needing to be fixed. Marketing won out over Developers. Note: Without being sarcastic, we think that the marketing department FORCED the developers to leave the bugs in for 5 years to force people to the higher revenue generating app store instead of running browser apps like MCe.

Moving forward, we plan on offering some better 'behind the scenes sync'ing'. Unfortunately all platforms except iOS will get this, as in 2020 Apple has decided to 'wait a few years' before adding that functionality. It will NOT make MCe act poorer than it does (8.9) but it means that a few new improvements will come to iOS much later than Android and Windows.

Informed opinion:

It appears that there are two major factors at play.

The first is that Apple became the world's largest company through their app store revenue. So while Steven Jobs said the browser was key, the reality is – the better their browser works, the less money they make, and that is a powerful incentive to delay improvements to the browser.

When Steven Jobs was alive, he wanted to only release software that had a very low crash rate. He didn't like how Windows would crash and, while not perfect, he did develop a culture where it was better to be a few years behind than to have his hardware appear to crash as often as Windows.

Since his death (and really, since he was in the hospital for an extended time before that) it appears that Apple has been a little more willing to release code that doesn't work, and then fix it in the next release.

What is Maintenance Connection Canada's stance?

We continue to heavily use iOS devices so that hopefully we will be the first ones to experience problems and as often as possible, create work-a-rounds or issue warnings before customers even know they need a problem.

So should I get an iOS device, a Windows device or an Android device?

Again, the author of this document uses all three and some other ones as well (Linux based.) Here is the recommendation:

For a tablet or laptop or desktop

  • Windows with Chrome will be your premium experience, allow you the most offline data, will be the fastest, and the least error prone.
  • Android will be very close
  • Apple will frequently be fairly close, but if history is a guide, it will from time to time not be the best choice, have the most restrictions on what it can do, be the slowest (in a price category) and have the most future bugs introduced by Apple.
  • IE (the browser on older Windows) is a confusing one to put in this list. It is the most stable, but it has the fewest features, so we are missing some things on it. See our similar document on IE 11 before switching to IE 11