Episode 26 for Saturday, February 25. “iOS Dev Weekly”
Daver Verwer lets us peek behind the scenes of the iOS Dev Weekly newsletter, Apple sold more iOS devices in 2011 than Macs every be fore. And we learn what an NSInception is.
If you are in Germany you might find that our iCloud push email does not work any more. The reason for this is that Motorola Mobility won an injunction against Apple there that forced them to disable push. A support page exists saying that Apple thinks the patent in question is invalid and is fighting it. In the meantime your options are to either leave Germany or enable pulling as detailed in the knowledge base article.
LLDB replaces GDB as the default debugger as of Xcode 4.3. Mugunth Kumar was the first to mention:
“LLDB now supports typing dot notation. You can type
po [[self myObject] name].
Carl Brown distilled the learnings from his Mac App Store review down to some great learnings.
- You can’t require 3rd-party Apps to be installed
- The first rule of Sandbox is you don’t talk about Sandbox
= “3.3 Apps with descriptions not relevant to the application content and functionality will be rejected”
- They are serious about keeping the user informed
= rejected for not presenting a progress bar
- got rejected because I didn’t specify a minimum window size – would allow the app window to get so small that the app becomes unusable
Regarding the App Store review process, FAKE scam apps are all the rage. Apple has the rule in the review guidelines that you have to have the appropriate rights for what you put in apps. Nevertheless there are always some passing inspection that don’t. Like a Pokemon Yellow game, Nintento would never let themselves be caught making iOS apps. The sad thing really was that these where just slideshows, but still, these developers don’t even have the rights for screenshots of Nintendo games, only Nintendo does. Other scam apps basically copy successful apps and just choose a slightly different name, like Temple Guns visavis Temple Run.
There’s a fabulous cartoon making fun of that: twitpic.com/8mpcab
If you want to stump an expert, find a a way to addObject an NSArray to itself. I actually did that to myself, I added an array to an array to an array and third array I tried to add to itself. You don’t get any error but very cool bad access exceptions. Fabio Cionini on Twitter suggested that we call this kind of exception an NSInception!
Amazing ARC article, including workarounds for most common migration problems.
Apple sold more iOS devices in 2011 than all the Macs it sold in 28 years, Asymco reports.
Installed MoLo on my secondary iMac. Xcode 4.3 does not run. Need to get newer version that does.
Apple announced that the weather in March is too cold to play in the sandbox. The requirement for Mac apps to implement sandboxing has been shifted to June 1st. Not just that, they also mentioned that existing apps won’t have to add sandboxing. They did that “to provide you with enough time to take advantage of new sandboxing entitlements available in OS X 10.7.3 and new APIs in Xcode 4.3.” Which is a bit odd because Xcode itself does not have any APIs as far as I know. What we do know is that there is a new possibility to hold on to the permission of accessing a file or folder once you have gotten it. Documentation for this can be found in the developer forum and in a published FAQ.
Don McAllister from Screencasts Online has a request for you, more specifically your iOS apps. He asks that you add an option in the settings to highlight touches on screen. So if you demo the app via AirPlay to have something show where you touch the screen. He highlights PDFPen by Smile Software as the first to do that and it is a boon for everybody doing live demos of your apps.
On the official Apple dev forum Steve Weller asked if NSXMLParser is thread safe. To which he got the response: “NSXMLParser is, in general, thread safe. The only gotcha is that, prior to this fix, it didn’t initialise the underlying libxml2 parser properly. If you’re using NSXMLParser from multiple threads, and there’s a chance that two threads might simultaneously start up parsers, you should work around this problem by initialising the libxml2 parser from the main thread, prior to using NSXMLParser at all. The routine to call is xmlInitParser. This problem was addressed in Mac OS X 10.7 and iOS 5.” – So before iOS 5 you have to manually call xmlInitParser from libxml2, afterwards you don’t have to do that any more. I also found it quite enlightening to learn that NSXMLParser is indeed using libxml2 internally, just like my own HTML parser DTHTMLParser which is also based on libxml2.
Interview with Dave Verwer