Episode 29, recorded Saturday, March 17th, 2012.
New iPad finally in people’s hands, exciting updates for our favorite compiler and some problems arise for developers making magazine/catalog-style apps.
George Hotz, aka Geohot, who came to fame for jail breaking and hacking the PS3, was arrested en route to South-by-Southwest because he was in possession of a large amount of weed. He was set free after paying a $1500 bail. So he didn’t need to employ his mad “jailbreaking skills”.
Apple more than doubled the size an app can have to be still able to download it over cellular data. It went from 20 MB to 50 MB and was confirmed that this is indeed the case for iPad and iPhone apps alike. Yesterday I downloaded a couple of apps in the field – yeah really, “in the field” because I was downloading stargazing apps on a field while out walking my dog. On the second app I tried on my iPhone 4S I got the message that it is larger then 50 MB. So that proves that.
Apple’s App Store Team has announced two new functionality’s for your In-App Purchases and wants to make sure you are aware of them.
Application Loader now features Mass In-App Purchase Delivery - Application Loader 2.5.1 allows you create and deliver In-App Purchases for multiple apps simultaneously by importing a spreadsheet of your In-App Purchase metadata. Application Loader and the Application Loader User Guide are available in the Manage Your Applications module on iTunes Connect.
Improved In-App Purchase iTunes Connect Searching and Sorting - To manage your In-App Purchases more easily, you can now search and sort by their status on iTunes Connect. Additionally, you will no longer see the Ready for Sale status for your In-App Purchases on iTunes Connect. The Ready for Sale status has been changed to Approved. Approved In-App Purchases have been reviewed and are ready to go live on the App Store.
As of Xcode 4.3 LLDB replaced GDB as the default debugger for new projects. Unfortunately there seems to be a bug in LLDB that causes it to display wrong or no contents for same variables. Apple has confirmed that this is a bug. Chris Lattern, Apple’s compiler head honcho stated on the forum:
“Unfortunately, I don’t really know of a good workaround other than switching back to GDB . It will definitely be fixed in the mountain lion tools (Xcode 4.4)”
So if you are unlucky and see this issue occur with your code, then you will should switch back to gdb for the time being.
Morgan Stanley thinks that Apple might go as high as $960 by March next year, reports Fortune. This is of interest to us for two reasons.
1) We are not Apple employees, so we don’t get stock options. But we can still directly participate from Apple’s growth if we invest a few of these monthly app store payments in Apple stock.
2) If Apple’s valuation grows, so do our markets.
Morgan Stanley’s Katy Huberty explains it this way:
1) Enterprise tablet adoption combined with demand upside from lower-priced iPad. The pace of enterprise tablet adoption is exceeding expectations, according to our January 2012 CIO survey. Fifty-six percent of US companies already purchase tablets for corporate use, compared to a 51% expected penetration a year ago. Assuming Apple maintains its 80% share of the enterprise tablet market, iPad purchases by enterprises could account for 9 million units and $5 billion in iPad revenue in CY12. This is in addition to consumer purchases of iPads, some of which will also be used in the enterprise.
2) iPhone estimates don’t credit Apple for the potential share gains when it launches an LTE-capable device in 2H12. Our supply chain checks suggest Apple’s sixth generation iPhone could include several changes that, in our view, will increase the upgrade rate relative to past product cycles. In particular, iPhone 5 is likely to include a higher-resolution and potentially thinner screen, new casing material, faster processor, and quad-mode baseband chip that works on multiple flavors of 3G and LTE. Our December US survey indicated that 62% of iPhone owners planned to upgrade to the new version, iPhone 4S. Assuming a similar upgrade rate for the LTE iPhone due out later this year, this implies 148M and 160M upgrade purchases in our base and bull case. The remaining 38M and 86M shipments would come from new users, roughly split between emerging markets and mature markets. For perspective, the same math implies Apple added roughly 48M new users in CY11.
3) China and other emerging markets, like Brazil, remain huge untapped markets. The emerging markets remain a huge opportunity for upside long term due to attractive demographics. Smartphone penetration is highest among cell phone users 25 to 34 years old, according to Nielsen. The emerging markets have nearly 14x the population in this age range than Western Europe and North America.
The uptake in the enterprise market can already be felt as more and more vertical apps are being developed. For example we at Cocoanetics are continuing to work on an enterprise application for my client ELO Digital Office in Germany. They released an iPad version of the app just two weeks ago. They tell me that demand in the enterprise for an iPad client has much grown.
Europe is lagging behind a bit rolling out LTE and so the latest information is that the iPad’s LTE won’t work in Europe because of different frequencies being used. That could all change until the end of the year with the iPhone 5 possibly being the first LTE phone also working in Europe. Though I find it puzzling that Huberty talks about a higher resolution screen on the iPad 5. That’s plain nonsense, why should Apple go beyond Retina? Oh wait, maybe she’s trying to say that she thinks the display will be larger. That would make sense, because then to keep the same pixel density it would require more pixels. BUT: at the same time this doesn’t make sense because then we’d have our problems with different screen scales. Like 2 for normal retina and 2.2 for a larger screen. I have my doubts.
Still all in all we agree that there will be even larger queues for the next iPhone however this may look.
Finally China, well, better get your apps localized by somebody versed in their cryptic language. I have just the tool for you.
Apple’s Frameworks Evangelist Michael Jurewitz reminds us that if you want your Retina graphics – which you have painstakingly been packaging into your apps since last fall – to show up, you have to build with Xcode 4.3.1 as well as link against the 5.1 SDK. You can still have a lower depolyment target. If you have your SDK set to “Latest” then you are fine.
There’s a change in iOS 5 that a few people stumbled upon. Beginning with iOS 5 the maximum tile size for CATiledLayer is limited to 1024×1024 pixels. That means for a Retina iPad you will see that regardless of what you set the tileSize to, it never gets larger than 512×512 when drawing. An Apple engineer confirmed that this is by design, though he did not say what design this is. We can only speculate that this has to do with the maximum texture size in OpenGL.
Apple is not only doing away with the numbering of iPads. I already predicted last year that the iPhone 5 will also just be the new iPhone. What else does have a number now, but will not in the future? Objective-C 2.0! Chris Lattner, head of the compiler at Apple, announced that Objective-C will no longer be carrying version numbers in the future. On March 7th he wrote:
We’ve had internal discussions and have explicitly decided *not* to version the language any more. Instead of “Objective-C 2.0″ or some such, there is now just “Objective-C as of Xcode 4.4″ or “Objective-C in LLVM Compiler/Clang 4.0″.
If you’d like to reason about or conditionalize your code on various language features, please use the Clang feature checking macros:
For some Objective-C examples:
A tangential thing I’d like to point out is that the Objective-C literals features that went out with the Mountain Lion beta tools are now in the LLVM.org repository. We are still finalizing the documentation for them though.
Speaking of Apple Compiler Technologies. LLVM is an open source project and Apple is actively contributing to it with their own additions. They now committed an update to it that brings a couple of new syntax for Objective-C. This makes it official and so we can finally talk about it.
There’s a new syntax for literals. Literals are static values that get baked into the app by the compiler. Previously the only object literal we would have is the @-double-quote that turns into an NSString. Now you have similar ways of specifying literals for NSNumber, NSArray and NSDictionary. Joris Kluivers has some examples. This update has yet to find it’s way into the actually shipping compiler. Later this year. Looking forward to that.
Since last weeks episode of this podcast I got around to writing 2 blog posts. One is about what it costs to license a font for use in your app. Hint: it’s quite expensive. The other one is clearly a hot topic as I can judge from the click-through numbers I’m seeing: Image decompression benchmarked.
Error: I misspoke, I meant to say that it is still faster to work with JPEGs for Retina-resolution iPad than crushed PNGs.
I’m attending NSConference, beginning next Monday, and going to meet many European developer Allstars. It’s my first one, so I don’t know yet what to expect. If you happen to see me, then you have my permission to approach and say “Hi!”.