background preloader

iOS

Facebook Twitter

Update February 9, 2012: Apple made some changes to the app launch sequence in the default project templates in Xcode 4.2.

For that reason, I revisited this topic in a new article. Please refer to the new post for up-to-date information. I noticed that many beginning iOS developers see the launch process of an iOS app as a bit of a mystery. Somehow, someone sends our application delegate an application:didFinishLaunchingWithOptions: message, seemingly the first place where we have chance to inject code of our own. But how does our app get there? The execution of every C program starts with a function called main(), and since Objective-C is a strict superset of C, the same must be true for an Objective-C program. Behind the Pins: Building Pinterest 3.0 for iOS. At WWDC this past June, Apple unveiled iOS7 and redefined the platform with a new visual design, including changes to UIKit and a set of new APIs. A team of four Pinterest engineers collaborated with the design team to rebuild the Pinterest iOS app with easier navigation, custom transitions, and more ways to discover related Pins through gestures, such as swiping.

With more than ¾ of all Pinterest usage occurring on mobile, it was important that the 3.0 update responded to Pinner requests for simpler, faster ways to engage with more Pins, and to provide an overall improved experience. Our main challenge was to reimagine the app while maintaining the aesthetics of our brand. We focused on three areas: At the core of the Pinterest app you’ll find UICollectionView. iOS7 provides new powerful view controller transitioning APIs.

On iOS6, we fallback to the default UINavigationController slide transition. If new Pins are available, the home feed view is updated to indicate there are new Pins. Behind enemy lines: 3 months as an iOS developer at Google. 3 months at Google Well, I recently finished up a contract at Google Sydney as an iOS developer, working on the iOS version of the Google Maps Coordinate app. I thought it’d be worth going over some of the lessons learnt before I forget, as well as give a bit of a sneak peek into some of what goes on behind the scenes there. Keep in mind I wasn’t there long, so this isn’t going to be a very deep expose or anything! With the iOS 5 SDK, Apple introduced the Core Bluetooth framework.

Core Bluetooth allows developers to write apps that talk directly to hardware gadgets or other iOS devices using the Bluetooth Low Energy (LE, also called Bluetooth Smart) standard. Update April 30, 2013: Things work differently for Bluetooth devices that do not use Bluetooth LE. Certain device classes such as headsets and keyboards are managed directly by the OS in a way that is fully transparent (and off limits) to third-party apps.

Other proprietary devices (connected via Bluetooth or the Dock connector) can be accessed by using the External Accessory Framework, available since the iOS 3.0 SDK. Unfortunately, this only works for devices that have been approved by Apple. Shaving off 50% waiting time from the iOS Edit-Build-Test cycle. If you don’t want/don’t have time to read the full story, you should at least consider using the following build settings during your iOS development cycle (i.e. for non-release builds): Use plain “DWARF” instead of “DWARF with dSYM File” as your “Debug Information Format”.Don’t compile your project code or use static libraries compiled with -O4 since it tells Clang to enable Link Time Optimizations (LTO) making the linking stage much slower.

Shaving off 50% waiting time from the iOS Edit-Build-Test cycle

Use -O3 at most. These changes were recently incorporated to our iOS codebase and made quite a big difference. The problem Last week I attended Spotify’s internal mobile bootcamp, a week-long introduction to the development of our mobile clients. The bootcamp was particularly interesting for a developer like me, with virtually no iOS development experience. To test my changes I couldn’t help getting frustrated by what seemed like an endless waiting loop. My development use-case (and the most common one out there) is: Well, not quite … Linking Profit. Best Countries to Work and Live in as a Developer. Ever wondered what you can earn, as a Developer, in different countries? And more over, where is the best to relocate for work by considering the value for money that you will get in specific countries? Based on our own Salaries Survey for Developers and Designers which gathered 1160 answers from around the world, we are now releasing the first results.

Check them out and drop by the survey to insert your data too (the survey is still open). Note that all salaries are in USD and are after taxes (net incomes). Ranking of Average Value for Money per Country Knowing the average salary for Developers in each country is great, but absolute values should not be compared per se, as different countries have different buying power. What might be outstanding is the high ranking countries from Eastern Europe have, like Romania and Poland, when it comes to the value for money.