Oliver Drobnik talks about selling Linguan and why. Then why barcode scanning in iOS 7 is enough of a game changer to warrant writing a book and creating a web-based service. Show Notes Latest status of looking for a buyer to acquire Linguan. Barcodes in iOS 7 are the inspiration for a book and a service. The book will be using barcodes as a thread that runs through it, but cover a variety of iOS 7 techniques: barcode scanning, generation and printing, user location context, networking, background fetching and PassKit. The service is named Product Layer. It will provide an API for developers to get basic product information to enable a new kind of interesting app scenarios which have not been possible before. Follow us @cocoanetics or mail us to give feedback.
Toni Kaufmann and Oliver Drobnik chat about recent events, Toni shares some stories about where Microsoft has a leg up on Apple, and the history and future of WWDC. Show Notes Toni Kaufmann Company: http://www.n3xd.com Twitter: https://twitter.com/tonik173 Facebook (German): http://www.facebook.com/n3xd.de Facebook (English): http://www.facebook.com/n3xd.en YouTube: http://www.youtube.com/n3xdsoftwarestudios His Apps List of public apps from n3xd: http://www.makingapps.de/who-is-who/programmieren/n3xd-software-studios-ag?filter=app Passwort: https://itunes.apple.com/ch/app/passwort-unique-passwords/id474416620 Passwort Algorithm: https://github.com/tonik173/Passwort-Encoder Alpineflower Finder: https://itunes.apple.com/ch/app/alpineflower-finder-discover/id576307211 Zoo Zürich: https://itunes.apple.com/ch/app/zoo-zurich/id527856894?l=en&mt=8 Working on next big release 1.5 for DTRichTextEditor and DTCoreText. AutoIngest for Mac now with Sparkle. Refer to my WWDC ticketing flow chart to see the plethora of problems people had. Some statistics and musings on Women and WWDC. A new blog for Women and Tech. On the specifics of working with multiple people on Open Source projects. Using Kaleidoscope and SourceTree to diff and merge source code visually.
David Mendels and Oliver Drobnik follow up on previous weeks topic “Women in Tech” and then discuss great new tools for developers. Show Notes Tools mentioned: Crashlytics Deploymate, dupe my Radar Apple Configurator Buildozer Linguan Slender for Mac Self-hostable SCM systems mentioned: GitHub Enterprise Gitorious GitLab Stash is BitBucket’s self-hosting solution CI System: Jenkins David Mendels: app.net and Twitter: @davmendels Personal Blog “Attila” Oliver Drobnik: app.net and Twitter: @cocoanetics Cocoanetics Blog
Trying out a new format, a friendly chat with David Mendels a real professor and iOS developer. We’re talking from many topics from nano technology to how to get more girls into science and tech. Show Notes Other Podcasts mentioned: Mac OS Ken Debug NSBrief MacBreak Weekly Apple’s iBooks Author How Etsy Grew their Number of Female Engineers by 500% in One Year (Video) David Mendels: app.net and Twitter: @davmendels Personal Blog “Attila” Oliver Drobnik: app.net and Twitter: @cocoanetics Cocoanetics Blog
Apple updates Xcode 4.4, seeds the first point release for Mountain Lion, and somehow manual symbolicating of crash reports has become broken. Show Notes On August 7th Apple released version 4.4.1 of Xcode. Besides the already known 4.4 news the release notes are simply “This update runs on both OS X Lion and OS X Mountain Lion.”. There was an article by Apple Insider that claimed that 4.4.1 was the first release of Xcode as a standalone app, but apparently they deleted the article after realizing that this was BS. Though you still can find all the other blogs which simply copied some contents of the original content. I think I remember that Xcode 4.3 was the first version which replaced the installer app with an Xcode.app and moved some of the developer tools inside the app bundle. Version 10.8.1 of Mountain Lion is not out to the public yet, but if you’re registered for the Mac developer program you have received an invite to the seed download invitation. There were rumors that this supposedly tweaks something about the graphics card to use less battery because people were claiming reduced battery endurance with 10.8. Though the seed notes do not mention this. A user opened the distribution files in a tool called “Pacifist” and reports this: Things of Note: Mail, QuickTime Player, kernel, AppleSmartBatteryManager (AHA!), 802.11, AHCI, and USB kexts, updates to system Mail components, Messages components, Bonjour. Zimbra + Mountain Lion not being able to add calendar entries over CalDAV = Bug in Zimbra, Workaround is to set the default alert times. The problem occurs if the Calendar app tries to add an appointment with no alert set. Weird that this never occured before. In fact this was always working perfectly on my iOS devices. But ok, I set the default alerts and now the problem no longer occurs. Several developers reported that they are no longer able to manually symbolicate crash reports with the Xcode 4.4 tools. We found this problem ourselves as well trying to symbolicate a crash report with a dSYM and app binary which had before generated on our Jenkins build server. There are two apparent workarounds, though I don’t understand how those are interrelated: Getting the atos start address, or hacking the symbolicate script. As I understand it then you can just look at the latter because the atos one only works if you have the debug symbols not stripped from the binary. The script fix is about helping mdfind which is used by the script to find the binary inside the .app bundle to actually find it. It might have to do with some people renaming the app bundle and dSYM after building to for example include the build number. Smart App Banners Using a Software Update Server
App.net reaches their funding goal, Apple releases Xcode 4.4 and almost kills armv6 support and a crowdsourced system estimates review times more accurately. Show Notes Since July 10 when Apple has released the Xcode 4.4. GM they started to accept submissions made with 4.4. They specifically encourage developers to use the new Mountain Lion features in their submitted apps, specifically highlighting the “new cross-platform Game Center Groups, so they’ll be available when OS X Mountain Lion ships”. Having a shiny new version of Xcode also raised the question whether we could also submit iOS apps with that. Some very early adopters reported being rejected for Xcode 4.4. being not yet accepted. But soon thereafter other developers reported successful submissions. So at present we believe that Xcode 4.4. can be used for building app store legal iOS apps. According to Apple the only difference between Xcode 4.4 and Xcode 4.5 is that the latter includes the iOS 6 BETA SDK. Though there are also some important differences that I was able to see. There is no iOS 3 or iOS 4 debugging support that you can download and use. Looks like you can only debug iOS 5 and 6 apps with Xcode 4.5. Building for armv6 is will no longer be supported in Xcode 4.5. Also the minimum OS version you can target with it is iOS 4.3. Apple reacted quickly to the problems with IAP. They published a document that shows how to validate digital signatures on transactions using some private API that they permit you use for this specific purpose. At the same time as Mountain Lion also several other updates were released: Java 2012 004 which I need for Charles The SMC 1.5 update activated power nap for my 13″ Air The iWork apps now finally have iCloud support At 5:32 pm UTC App.net has reached their funding goal of $500,000. Tips If you get an iOS or Mac app approved then tweet with #iosreviewtime or #macreviewtime ! A free site averages those: reviewtimes.shinydevelopment.com To fix the problem of Reachability losing the ability of knowing that there is a connectivity. @cocoanetics just called [reachability stopNotifier]; [reachability startNotifier]; — Pawel Dudek (@eldudi) August 6, 2012 To resign the keyboard from anywhere: [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil]; — Sean Heber (@BigZaphod) August 1, 2012 Always happy to have you follow me @cocoanetics on Twitter and app.net and receiver your questions via oliver@cocoanetics.com.
Episode 39, recorded June 30th, 2012 News Apple sent all developers an email detailing some changes. App and In-App Catalog Reports Now Available Catalog reports provide you with extended information for all of your apps and In-App Purchases. To view and generate reports, go to the Catalog Reports module on iTunes Connect. New reports can be generated only once every 24 hours. The report you get gives you one big list of everything you have on iTunes Connect. All apps. All In-App Purchases. Apple seems to be afraid of too much vanity and so they limit the generation of this report to once per day. iTunes Connect Mobile 2.0 iTunes Connect Mobile 2.0 is now available on the App Store. iTunes Connect Mobile allows you to access all of your app information, customer reviews, and sales data on your iPhone, iPad, or iPod touch. You can now also access the metadata for your apps, designate favorite apps for easy tracking, and provide access for additional user roles. The update to iTunes Connect Mobile already became available during WWDC and several developers have mentioned to me that they especially like the feature that you can now do a manual release of a held back app from on the phone. You know, when the app is in Pending Developer Release status. High-Resolution App Icon and Newsstand Cover Art for Retina Display Starting in July, newly submitted iOS apps require high-resolution icons and cover art. Large icons and Newsstand cover art must have a minimum resolution of 1024 x 1024 pixels. To change your app icons or cover art, go to the Manage Your Applications module on iTunes Connect. For more information, see the Custom Icon and Image Creation Guidelines in the iOS Developer Library. There we where happily creating 512×512 artwork and now it turns out we have to go back and recreate everything at the higher resolution. Apparently there is some place in iOS 6 – still under NDA – where these high res icons will be used. Any way, you should be creating your icons with a resolution-independent vector art program anyway. This serves as a reminder to that. On June 22nd Apple added added app stores for 32 new countries, and since we all have time I’m going to read them to you. There will be a test later: Albania Benin Bhutan Burkina Faso Cambodia Cape Verde Chad Congo Fiji Gambia Guinea-Bissau Kyrgyzstan Laos Liberia Malawi Mauritania Micronesia Mongolia Mozambique Namibia Nepal Palau Papua New Guinea Sao Tome e Principe Seychelles Sierra Leone Solomon Islands Swaziland Tajikistan Turkmenistan Ukraine Zimbabwe I find it quite amusing to see certain countries on this list. Even some that I had thought to be imaginary ones from romance novels before. Yes, Micronesia, I’m looking at you! Most amusing of all is that with the new countries located in Africa it now for the first time becomes easier to buy apps than to be able to find a clean glass of water. Oh well, if we make a killing selling many more apps because of these additions then we might just as well donate some for charity: water. Problem solved! Flipboard versus Twitter The Best WWDC Party Watch Videos like crazy, one per day Tech Talks in Fall 13″ Air instead of Retina MacBook Girls in Tech, my blog post Someone told me that iOS dev isnt a job with future .. Is that true? #apple #iOS #developer — Julia Grill (@juliastic) June 30, 2012 If you have a second please do respond to this and give your own opinion.
Episode 38, recorded June 6th 2012 I’m chatting with Jesse Goodman, a former patent lawyer, about patents. Jesse Goodman does all the administrative work at Stackmob in San Francisco. He was a patent lawyer in an earlier life and so I took the opportunity to chat with him about the ins and outs of patents. Here’s the video version of the interview: //www.youtube.com/watch?v=i0Yq7IkxX6M Please forgive the sub-optimal quality. This came together totally spontaneously and I didn’t have any good audio recording equipment available while being on my WWDC road trip. Though the video is interesting because it is the first video that I filmed with two cameras and used the new multi-cam support in Final Cut Pro X to cut it. Great fun!
Episode 36, recorded Sunday May 6th, 2012 In this episode my special guest is Will Kiefer. He is the Senior iOS Engineer in charge of Google Currents. Will tells us why UIWebView isn’t all that bad and has some amazing performance tips for us with which to tame it. You should make lots of notes and you will feel like you visited a lab at WWDC and had your brain supercharged. Show Notes Google Currents iOS app on the app store, recently available internationally. Performance Notes: Cache UIWebViews, saves time on setup When profiling also look at CoreAnimation tool and VM tracker JavaScript is slow (e.g. JQuery), because JIT compiler is not available for web views Avoid changing the frame of web views, that causes it to do overtime When communicating from web view to Objective-C it is faster to change the hash on a small hidden iframe The frame of a web view should be smaller than the size of the screen, or if that is not possible have a clipping view NSURLProtocol is a better choice for caching than NSURLCache because it is concurrent With CoreData Will has one MOC for UI stuff and a second for updating in background, changes are then merged in by UI MOC Google Currents Producer Tool, requires Chrome at present. Will Kiefer on Twitter, on Google+
Episode 35, recorded Saturday, 28th of April 2012. “TapCaps” Alice Ning discusses the ins and outs of having a Kickstarter campaign for physical products versus software, we learn a bit about the magic behind capacitive touch screens and we learn what goes on behind the scenes of the TapCaps Kickstarter campaign. News The big news this week of course have been the record sales of WWDC 2012 tickets. Most of the people at the US west coast missed out on tickets because the rush was over in just 2 hours. Compared to 10 hours last year. This year Apple tried something new. Individuals could only purchase one ticket and company accounts could only purchase 5. Non-transferable, no refunds. Unfortunately the system to detect scalpers was a bit overzealous. Several people who used the same credit card and same IP address but different developer account received a cancellation notice from Apple. The problem with starting too early was that some people tried to purchase multiple individual tickets like this because at that time they couldn’t get hold of the company account agent. I’m keeping my fingers crossed that Apple can work this out, it is a bit of an embarrassing situation. Apple – as usual – trying an engineering approach with technology to solve the problem of scalping, but them stumbling over a stupid bug. Apple obviously wanted time the availability of tickets such that its early morning in the US, evening in Europe and before midnight in the far east. But what even surprised them was the speed at which the tickets went. Probably helped along very much by the WWDCalerts system that sent out messages to over 9000 people. I received my own such message about 10 minutes after the begin of the sales, that was 2:40 pm central european time. There where several people not so luck as SMS are known to be unreliable at times. Some received their notifications never or simply too late. Now two hours still twice as long as Google IO, but hey, people get free hardware there. I think we can attribute the breaking of last years record mostly to twitter and the alert system. I got lucky myself as well. I had my phone on silent so I totally missed the starting bell. But fortunately for me some nice chap sent me a direct message on Twitter. Which only further solidifies my theory that when people organize over social networks then they will break any record. Some other items, before we get to the interview. Pro Tip by Cédric Luthi: You must use MyImage@2x~ipad.png NOT MyImage~ipad@2x.png when using the automatic process of imageNamed. You know, imageNamed can automatically give you the @2x version on iOS devices with a Retina display. But did you know that it can also give you automatically a different image for iPhones and iPads? Yes, it does! You just call imageNamed:@”MyImage.png” and if there is a ~iPad between the 2x and the extension then this will be returned on iPads. But the order matters. It’s Name, @2x, tilde device, extension. Remember this. Shortly after being acquired by Facebook Instagram has opened up and nicely documented their API. You have an URL scheme to open instagram from your own app as well as web-based APIs to add and delete objects. In theory you could build your own Instagram client with that. Any takers? You probably won’t be purchased by Facebook though… Peter Steinberger reminds us: “If Xcode 4.4 creates an entitlement with NSFileProtectionComplete and your app fails to start up, just delete it. Stuff isn’t ready yet.” and he references a developer forum thread discussing this. Well you shouldn’t be using Xcode 4.4 in product environments yet, making production apps with… but that doesn’t prevent many individuals from doing exactly that. This is apparently already in iOS 5 as the mentioned thread is in the Core OS iOS 5 beta archive. No longer under NDA. So I can mention the official responds from an Apple engineer: One of my colleagues here in DTS discussed this issue with iOS engineering and the conclusion ...
Episode 34, recorded Saturday April 21th, 2012 We can learn about cool company philosophy from the Valve employee handbook, Objective-C is creeping up to C++ as the world’s almost most favorite programming language. And iOS 4 can now be retired. Show Notes Still no WWDC, some people start to get nervous and some even try to jinx it. Marco Arment, of Instapaper, would prefer if WWDC 2012 didn’t happen in the week from June 11th through 15th because that would mean he couldn’t spent his birthday at home which falls in this interval. There are no other obvious candidate dates for WWDC so we keep on being stressed out by Apple with every passing day. And yes, I am stressed too. Aren’t we all… for the next big update to my iCatalog framework I’ve spent the last week to migrate everything to ARC. The whole project started out as one iPad app and over time the number of target has grown exponentially. We’re now developing some more advanced features but decided that these will be iOS 5 only. So – of course – I’m switching to ARC. And of course there is ShareKit which has no hope of being migrated to ARC soon, so I had to pack that into its own static library with ARC turned off. In the end I want the iCatalog project to be only for the core functionality. All the iCatalog apps should be in a different project so that I don’t have to mess with the dozens of targets for all the catalog apps any more. I am telling you this for two reasons: 1) as an excuse for not having a better show prepared. and 2) as a pointer that you might want to have reusable core functionality also in your own modules and sub- projects. Oh, and I have another excuse: my MacBook Air is still being repaired. I suspect that the power regulator had a problem. Sometimes it wouldn’t charge, then it would. If you were lucky you could start it, but then it would shut down by itself after a short while. And then you couldn’t start it until you reset it with these secret key combinations. But fortunately I have AppleCare for it and so that should be fixed next week. And now for some interesting news … yes there where a few… TIOBE Software publishes their Programming Community Index every month. This is sort of a hit parade of programming languages somehow measured by an elaborate methodology that uses search engines to determine the relative importance of programming languages. In the current April report the top position went to C which overtook Java on second place compared to a year ago. C++ stayed put on third place. The big winner in the top 10 is Objective-C which moved from 8th place last April to number 4. Objective-C also became the “Language of the year” in 2011 because it seems to be rising in these ranks like a rocket. All of us iOS and Mac developers using this for our favorite platform probably helps here quite a bit. Google Currents launched internationally this month, after almost half a year being US-only. Will Kiefer, the iOS developer behind Google Currents, told me that they too make widespread use of UIWebViews for the main reason that their online publishing tool requires Javascript to run and that only the HTML5 CSS support in web views allows them to expose the customizability for their content partners. Will told me that to speed up image loading he replaced the normal NSURLCache mechanism with NSURLProtocol. This is faster because NSURLCache can only return one cached response at a time while NSURLProtocol can work concurrently. That’s definitely something worth looking into. I’m trying to get Will on the Cocoanetics podcast in one of the next episodes. LLVM.org published in much greater detail the new Objective-C literal syntax for NSNumbers and Containers. Users of Apple’s compiler will be able to start using these features with Apple LLVM Compiler 4.0. Users of open-source LLVM.org compiler releases can use these features starting with clang v3.1. The 4.0 compiler will be in Xcode 4.4 which is due out about the same time as OS X Mountain L...
Episode 33, recorded April 14th, 2012 Everybody still waiting for WWDC. My MacBook Air misbehaves and thus I have no show prepared. But Kevin Smith from Dootrix saves us this week from having no show: we chat about Rich Text and the Simpl app which they made. Show Notes Kevin Smith is co-founder of Dootrix Ltd, a company that develops mobile apps for business and enterprise clients. We chat about rich text, display and editing and what went into the Simpl app they created for Simpl. And its all super-simpl, really… 🙂 Links: Company website: www.dootrix.com Blog: www.in-traction.com The Simpl App: www.simpl.com Apps for taking only iPad to clients: iMockup Blueprint SketchBook Mobile Feedback I love to hear from you, you can email me at oliver@cocoanetics.com or tweet me @cocoanetics. If you want to give me audio feedback or have some interesting comment for me to play on the show please call my Google Voice mailbox: (415) 860-4324
Episode 32, recorded April 8th 2012 Does Radar need to be fixed or not? Apple increases developer share for iAds. And we are on tenterhooks waiting for WWDC tickets to become available. iAd Developer Share Raised Apple raises revenue share going to developers from iAd to 70%, up from 60%. In a move that probably aimed at making iAd banners more attractive Apple raised the share to the same percentage developers are already getting for app sales and in-app purchases. The problem that people are still having with iAds is less the percentage they are getting, it’s the fill rate. Because of this they are mediation networks like the one from Google or a component like my DTBannerManger which combines iAds, AdMob and MobFox to get 100% fill rate with the highest paying ads prioritized higher. Nevertheless we appreciate the gesture, personally I feel it’s a bit more rounded that Apple gets 30% share in everything. Having a different percentage for a single service felt odd, not smooth, unlike Apple. At least they ironed this out for whatever reasons. Miscellaneous Announcements Apple has made new material available on the App Store Resource Center which you can use to promote your app with Apple’s blessing. On this page you can find the official “Available on the App Store” badge with instructions how you may and may not modify and use this. There are also official high resolution images for iOS devices which you can use in photo montages showing your app running on a device. The announcement mentioned new localized versions of the badge in Simplified and Traditional Chinese, Japanese, and Portuguese. There where several great links in this week’s installment of the iOS Dev Weekly newsletter. I got the WWDC ticket availability stats post from there as well as the next two items: There’s a cool guide on TheIconmaster.com that explains how to make a shortcut to new Photostream images in your Finder. This enables you to see new screenshots pop up right away on your Mac after you made them on your iOS devices. The advantage here is that you don’t have to have iPhoto running and iCloud sync working over peer-to-peer when your devices are on the same WiFi network. There is a smart search feature in Finder that automatically updates when new files appear. By combining this with a search for PNG files and the photo stream sync folder you’re set. There is an extensive code style guide on NearTheSpeedOfLight.com. It describes in great detail how you should style your code. From naming conventions to tips on how to structure your APIs. This joins the ZDS Code Style Guide by Marcus Zarra and the Google Objective-C Style Guide in trying to bring order to our chaotic code. While the contained details in all three guides might remind you a bit of Obsessive Compulsive Disorder (OCD) there are nevertheless many good reasons for why it makes sense to do certain things a certain way. If not following it slavishly it might do wonders on your own code style and code readability if you pick up a couple of pointers when skimming through these guides. App Review Weather Report: New Apps 97% chance of being approved in 5 days, Updates 99%. This week was somewhat uneventful, probably because I was on vacation. Could it be that Apple is aware that many developers are taking the week off leading up to the Easter holidays? I mean, if they would have announced the 2012 Worldwide Developer Conference in this week then they would have annoyed all those vacationing people. I for one was glad that they didn’t because it saved me from having to deal with somebody else buying a ticket for me while I am incommunicado. WWDC 2012, … NOT! Somebody – whose name I forgot – did a linear regression on previous announcement dates and ended up seeing April 18th as the most likely date that tickets could go on sale. Scott McAlister compiled a complete list of when tickets went on sale in relation to the conference dates for the last 8 years.
Episode 31, recorded Saturday March 31st, 2012 – UDID FIre Mach ado about UDID, jobs for iOS developers abound and my guest today is Appsfire Co-Founder Ouriel Ohayon. News Apple informed developers via e-mail that iTunes Connect will have individual reports for Sweden and Denmark from now on. For March, app sales earnings in Sweden and Denmark will be split and reported in two different documents, one covering the time period before the change and one covering the time period after the change. Earnings from sales that occurred before the change will be in the Euro-Zone (EUR) financial report. Earnings from after the change will be in the new financial reports for Sweden (SEK) and Denmark (DKK). I am wondering what the benefit to us developers will be. Are the reporting guys SEARCHING for work to do that nobody actually cares about, just so that they are not bored? Speaking of non-sensical changes: Apple invented two new price tiers. Tier 63 is $124.99 and Tier 69 is $174.99. Both tiers are available for both apps and In-App Purchases. Can anybody explain to my what this is good for? Are apps too cheap? Does Zynga want to sell more expensive In-App-Crap? You know, lower levels of tiers usually correspond with the price in dollars. The geek in me revolts, what is the secret algorithm here? UDID, or didn’t you? Now that some rumors seemed to indicate that Apple might be beginning to reject apps that are using the unique device identifier developers are scrambling and are ripping out the trusty old identification code and replacing it with something new. But that only seems to be part of the story. Tapbots published the original rejection letter they received from Apple and this contains some very interesting information. This letter says that they where sending identity information to their server without having asked the user. Apple seems to actually do a man-in-the-middle attack on HTTPS when reviewing our apps. Tapbots was sending the UDID in a HTTP GET request over HTTPS. If you simply look at the data packets then you don’t know the URL that is being requested because the first step in the HTTPS is to do a CONNECT. Then the GET is performed and already encrypted. This man-in-the-middle means that Apple has a tracing server that spoofs the HTTPS target and re-signs the packet such that it is still accepted by the URL connection on the device. This is technically easy, I blogged about how to spy on any app’s traffic with the Charles debugging proxy app. What’s interesting that we learn for the first time that not even encryption is holy to Apple. So if you are sending something naughty to your server, then don’t rely on HTTPS thinking that nobody can see the contents. Better to send hashes instead of plain text. This is sort of similar to when the Path app sent your address book. Many people ask: what should be use instead of UDID and the privacy advocates generally say: nothing. A user is not the same as a device. About the only market that requires to uniquely identify devices is advertising, especially when it comes to conversion tracking. If you need to have some sort of temporary identifier then you can use CFUUID to create one and then you can store it in the keychain. This will persist even when the app is removed as opposed to the user defaults. For those who are developing libraries for ad networks the de facto standard has become the OpenUDID project which is available on GitHub. It was developed by on of the founders of Appsfire. There is a second competing project called SecureUDID but when I surveyed the market as to which is winning I found that most ad networks had switched to using OpenUDID. This includes the MobFox framework which you might know that I originally developed. Flurry Analytics reports the relation of income of the three major app stores: Apple’s app store, the Amazon app store and Google Play (aka the Android app store). The comparison they came up with is this: $1 on Apple’s App Store is 89¢...
Episode #30, recorded Saturday March 24th, 2012. “NSConferencing” First time visit to NSConference. Apple implements design that Steve Jobs called shit 5 years ago. And they sell more than 3 Million new iPads in 3 days. Show Notes Kevin Dent reports that Apple have begun to reject and pull apps that are accessing the unique device identifier. He claims that this was confirmed by multiple sources now. I have not been able to confirm this as of yet, several of the ad network libraries that we are using need the UDID for counting unique devices and so far there where no complaints. Nevertheless Apple has deprecated the public API in iOS 5. This usually means that it will cease to exist on devices that are using the next major iOS version, iOS 6 in this case. Now this causes some problems for people who need to have a device-wide unique identifier, say for ad targetting or unlocking restricted content. The best method I have seen so far is used by paid component MyID. The approach there is to create a GUID and put it on a private pasteboard. This way the identifier is available to all apps knowing about this pasteboard and still globally unique. On the third day after launch of the new iPad Apple revealed that they had already sold three million. Looks like the move to Retina display and US-crippled LTE was sufficient to trigger these record-breaking sales. Well, I have to admit I convinced myself too that I needed a “test device” and so I bought my new iPad in London while traveling to NSConference. Don McAlister from Screencasts Online points out that with the 3 million new iPads that Apple sold in the first 3 days they also sold 3 million of 1080p video capture & editing devices. Add to this the millions of iPhone 4S – which nobody wanted – and you can see how Apple revolutionized the video camera market just the same as they took over the photo market before. Do you remember those statistics that show the percentage of certain cameras used by people uploading to Flickr? The iPhones are still in the lead. There is a camera that is apparently catching up to the iPhone … the Canon EOS 5D Mark II. Although this is a $2000 camera a 21 MPix DSLR. So no real danger there for a camera phone that costs way less. ImageOptim.com has done a case study on Tweetbot for iPad. They took the Tweetbot for iPad bundle, uncrushed all contained 978 images totalling almost 50 MB in original form. The default crushing via Xcode reduces this to about 26 MB. Their ImageOptim algorithm resulted in a size of 17 MB. And by converting to PNG8+Alpha with their ImageAlpha algorithm AND using ImageOptim they got the total needed file size for images down to 9 MB. These are quite impressive numbers. To have these compressions stay in effect you have to disable Xcode’s crushing though, because this would undo them. ImageOptim’s benchmark also showed a significantly reduced time for decompression which would – in theory – make PNGs thus optimized on par with JPGs. Speaking of file sizes, Apple has officially confirmed the raised 50 MB file size that’s downloadable over cellular data. Nothing new there, but now it’s official. If you have a server-based system that sends push notifications Apple has the following tips for you: The Apple Push Notification Service provides a high-speed, high-capacity interface, so you should establish and maintain an open connection to handle all your notifications. Connections that are repeatedly opened and closed will affect the performance and stability of your connection to the Apple Push Notification Service and may be considered denial-of-service attacks. You should also connect regularly to the feedback service so you don’t send notifications to devices that no longer have your app installed. Learn more about connecting to the Apple Push Notification Service. Obviously push notifications seem to be at an all time high which is why Apple wants to make sure that nobody abuses the service to the detriment of others.
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. Show Notes 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 3...
The new iPad further strengthens the foundation of the app economy, there are more iOS-related jobs than ever before and my guest on this show is Martin Pilkington who just sold an app to get his own app economy in order. And the latest -Gate in Apple’s history is Open-Streetmap-Gate. Show Notes Apple commissioned a study by Analysis Group about their impact on the US Economy. Based on the results Apple launched an interesting page which summarizes the facts. “[The study] found that Apple has directly or indirectly created 304,000 U.S. jobs.*These jobs — spread across all 50 states — include thousands of jobs in numerous industries, from the people who create components for our products to the people who build the planes and trucks that carry them to our customers. For example, this figure also includes workers in Texas who manufacture processors for iOS products, Corning employees in Kentucky and New York who create the majority of the glass for iPhone, and FedEx and UPS employees. Together with the 210,000 iOS jobs generated by the app economy, these 304,000 jobs make a total of 514,000 U.S. jobs created or supported by Apple. With more than 550,000 apps and more than 24 billion downloads in less than four years, the App Store has created an entirely new industry: iOS app design and development. The app revolution has added more than 210,000 iOS jobs to the U.S. economy since the introduction of iPhone in 2007.And Apple has paid more than $4 billion in royalties to developers through the App Store. We also provide app developers with the tools and distribution they need to bring their best ideas to tens of millions of iOS customers worldwide. The number of Apple jobs based in the U.S. has more than quadrupled over the past decade, from less than 10,000 employees in 2002 to more than 47,000 today. That number more than doubles again when we include vendors that employ more than 50,000 people who directly support Apple. These jobs require people with a wide variety of skills — including construction workers, component manufacturers, retail specialists, tech support representatives, salespeople, marketers, and the best hardware and software engineers in the world.” Then they also mention how almost all of the 246,000 retail employees are full time and not seasonally hired. And how proud they are of having their telephone support based in the US instead of india, where it would cost half as much. Pxldot.com has a great analysis how soon after launch customers will have updated their devices to a new iOS version. They correlate it also with how the story looks on Android, but what’s most interesting for us iOS developers is this: about 20 weeks after release 75% will have upgraded. And about 40 weeks after launch you can assume that almost 100% of devices will be on the new iOS version. Then there is a long tail of some devices that never will get updated. Like the original iPhone I gave to my in-laws as a normal mobile phone. Those are dropping off around 3% per week. Today we are at 21 weeks after launch of iOS 5 and on the chart you can see that indeed iOS 5 is around slightly more than 75%. There are two nice learnings from from this: If you start a new project it almost never makes sense to support iOS versions that are older than the previous major release. And if you are planning ahead and for example plan for a launch in 3 months then you can even not bother with iOS 4. Long story short, we are extremely lucky that Apple apparently has a strategy that gets the software modernized as quickly as possible contrary to Android where so many factors prevent a quick and wide-spread adoption of new versions of the OS. Somebody should maybe make a website that takes this formula and counts down the approximate percentage of devices on a a given iOS version. The same Martin Pilkington which I am going to interview in a few minutes launched fixradarorgtfo.com which about 300 developers are supporting so far.
Instapaper will soon go iOS 5-only, we learn why the Clang project was started, and Tapbots being bully-ish about Copyright. Show Notes Adobe has finally released Photoshop Touch for iPad. Steve Troughton-Smith has taken apart the app and found that it is indeed a cross-compiled Adoble AIR application. It’s the same app that also runs on Android. I tested it a bit and must admit that it runs quite well. Does this spell the end of programming Objective-C as we know it? I hope not. I don’t want to have to learn Flash or AIR for that matter. TextMate, our favorite text editor, did some statistics which OS 10 versions the TextMate 2 alpha is running on: 10.8 2.0% 10.7 86.7% 10.6 11.1% 10.5 0.2% “With such a small percentage on 10.5 it makes sense to drop its support. Moving forward we may decide that requiring Lion will be a reasonable tradeoff as it provides many underlying benefits we could take advantage of. The usage statistics will be monitored to determine the feasibility of this move.” This indeed means that OS 10 users seem to be very quick to adopt new versions of the operating system. Personally I am astonished to already see 2% on Mountain Lion, that’s a very big number for even the very first developer preview of anything. Speaking of dropping support for earlier Operating Systems. Marco Armand of Instapaper fame has released a minor update to Instapaper. And in the release notes he states that this is the last version which will support iOS 4. His next major update will only work on iOS 5 and above. In my experience all the good stuff that makes my live easier right now became widespread with iOS 4. That is, things like blocks and ARC. This is why ditching iOS 3 support relieved the most pain. Marco is blazing a trail here, which he can because his statistics seem to indicate that most of his users are quick to adopt the latest iOS version anyway. Obviously it is easier to only support the latest iOS, but I have yet to see a compelling reason or feature in iOS 5 that would cause me to to drop iOS 4 support. If you know any, then please let me know so that I can discuss it on the show. History Lesson: Did you know why Clang (aka LLVM) is being developed independently from GCC and is replacing it in more and more places? The GCC project began in the mid 80s by Richard Stallman of the Free Software Foundation. Stallman’s radical idea was to develop software that would be shared rather than sold, with the intent of delivering code that anyone could use provided that anything they contribute to it would be passed along in a form others could also use. That’s the same Richard Stallman that blogged that he is glad that Steve Jobs is gone because he felt that Macs are just pretty jails. Some developers wanted to be able to have the compiler fronted in a dynamic library so that they can do syntax analysis from within tools. Like what we have in Xcode if you do Build&Analyze and also what ARC uses to determine what needs to be retained and what released. So somebody on the GCC mailing list asked this question: “… is there a reason for not making the [GCC] front ends dynamic libraries which could be linked by any program that wants to parse source code?” To this the Richard Stallman personally responded: “One of our main goals for GCC is to prevent any parts of it from being used together with non-free software. Thus, we have deliberately avoided many things that might possibly have the effect of facilitating such usage…” When I heard these quotes in a talk by Chandler Carruth, who is on Clang at Google, a light went on. So you see the historical answer is that GCC hat its time as one of the important drivers of Linux and free software, but was never meant to become part of something greater that could be used to develop commercial software with. This is why Apple (and many others) ditched GCC and now uses Clang. Because free software advocacy has become a jail of its own when it refuses to work with commercial software out o...
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. Show Notes 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 instead of po [[self myObject] name]. Finally!” 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.
Apple releases Xcode 4.3 and previews OS X 10.8 “Mountain Lion”. And how an Open Source initiative got “sherlocked” by Apple. Show Notes Episode 25 for Saturday, February 18th 2012 “Mountain Goat” Sorry about the confusion, calling the previous episode number 25. This is number 25, the real one. Aimed at beginners, Apple posted a quick start guide titled “Start Developing iOS Apps Today”: Do you remember the cached files cleaning debacle? As a short term fix Apple introduced an extended file attribute to mark files that should not be backed up. You should look at the iOS 5.1 release notes, as there might be something changing there that you should consider in keeping your app compatible going forward. Michael Ash is well know for his Friday Q&A, covering advanced topics in depth. He recently published this column in book form. When I tried to find this on the Austrian iBookstore it turned out that they had originally only published it in the USA. Naturally I told Mr. Ash about that and he responded that the publishing team is fixing that. So his book should be available internationally soon. Russel Ivanovic of ShiftyJelly had a good response to a user complaining that he had to buy their app twice, once for iPhone once for iPad. Associated References are a way how you can dynamically add instance variables to objects at runtime. A tutorial. DTZipArchive added to DTFoundation Autoingest in ObjC now accepts date parameter ALL to download all available reports: The biggest news this week was a plethora of releases both final and BETA. Xcode 4.3 finally out, it is now all contained in the Xcode.app bundle. When you install it it removes the /Developer folder since this is now contained inside the app bundle. You no longer need the installer that you had on the app store, rather now finally incremental updates are possible. The highlights from the What’s New in Xcode 4.3 are: The Xcode 4.3 Toolset Is Repackaged as a Single App Complementary Tools Launch from Within Xcode Command-Line Tools Are Optional /Developer No Longer Exists Auto Layout Is Now the Default for All New Cocoa Projects LLDB is now the recommended debugger over GDB for an iOS project. I asked for people’s opinions about what they liked most in the new Xcode: the roundtrip time to debugging in the sim and the device is MUCH MUCH faster Xcode opening dialog “Welcome to Xcode” supports multi-selection to open several projects at the same time #iphonedev #FTW The next version of OS X, “Mountain Lion” will be released in Summer. It will only run on Macs that are mid 2007 or later. Anandtech gives us this rule of thumb: “in this support document.” Reminder about Apple Confidential Information: Pre-release software is Apple confidential information. Your unauthorized distribution of pre-release software or disclosure of information relating to pre-release software (including the posting of screen shots) may subject you to both civil and criminal liability and result in immediate termination of your Membership. Now we cannot really discuss it with people who have not agreed to the NDA. But suffice it to say our favorite programming languages is also getting some improvements in Xcode 4.4, which we suspect to be released together with Mountain Goat. Michael Jurewitz published a tweet “Some detailed info on new ObjC syntax” with a link into the Apple developer forum. Of course you may access this information only if you agreed to the new developer agreement which puts everything under NDA. GigaOM has summarized a couple of items what 10.8 means for developers. There are many things that moved from iOS into Mountain Lion: iCloud, Game Center, Twitter Sharing. One developer thinks that Apple should allow us to distribute signed apps outside of the App store as well. He asked that you dupe his Radar if you think so to. It’s not very likely that Apple will allow app distribution like this, rather this Gatekeeper functionality is a concession to Non-Mac-App-Store developers so...