Skip to main content

Threads Up

Good User Interface / User eXperience practices are important. Hours of resources and research is dedicated to these subjects but sometimes the developer discovers an anomaly that has been missed in the planning.

I came across this situation recently and contacted the relevant people to explain. They agreed with my suggestion and I implemented the change.

Part of my development cycle is to test, test, and test again. And I tested my new code and all plausible possible situations. Tested for various targets. Tested on as many devices as possible. Released to UAT to test and got a code review from my line mentor.

After all this the release build had a bug. In a nutshell when working with threading, be aware that there is a subtle difference between devices iPhone4 and iPhone4S.

When creating an email on the device, if the process requires threading, do not create and display the

MFMailComposeViewController object from within the thread.

In the simulator set to all iOS versions, and on device iPhone4s, this operates as expected. On an iPhone4 running the same iOS version, the titles from the two buttons are blank. 'Cancel' and 'Send' are missing. They do arrive if you wait long enough. Also, curiously if the device is turned and the orientation kicks in, they also display too.

Solution:
Do what you have to do in your thread but make sure you call the email screen in the main thread.

Comments

Popular posts from this blog

The Winner Takes It All

I attended Scotch On The Road last week. A Coldfusion conference held throughout Europe and managed like a rock tour. It was a good day and I reacquainted myself with ex-colleagues from 3 different companies I have worked for. So it was nice to catch up with all. The session over the day were pretty specialist but a lot devoted to CF9, Adobe's new CFML server. Glad to say it's pretty good and a reasonable advance from CF8. I also won the raffle and have just finished choosing my $2000 worth of software, which will fit nicely onto the Macbook Pro.

I'm out of prison!

Actually I haven't been to prison I have been very busy working every hour I can in iOS development. I am now a iOS contractor with over 2 years experience under my belt and enjoying every minute of it.  I have decided to return to this blog and start sharing again the things I come across on my day to day travels.

Version Diversions

As a contractor I have to be light on my toes when it comes to using my own equipment and maintaining the ability to develop to the correct target version. Apple have recently made this a bit harder for the likes of me with the introduction of Xcode 4.5 (now at 4.5.2) The issue is - from Xcode 4.5, Apple dropped support for older devices that have the Arm processers Arm6. No big deal you may think. But a lot of my clients have clients that denote the minimum target iOS version to build for. This can cause problems and to compound things some directives specify iOS versions that are a) No longer supported by Apple, b) Have no device (both simulator nor handset) to test on. They are now starting to ask about updating their apps for the iPhone 5 resolution. It's hard to tell them that because of their target iOS, this can only be achieved by developing blindly relying on provisioning for device testing and the associated increase in development (known as cost) or increasing the ...