edit: It's worth noting that I write these on the Saturday before they're published, and they are sent out to our mailing list every Monday or Tuesday. Sign up in the yellow box above to get the roundup early in your email every week.
I know that Cocoa Controls is supposed to be all about iOS and OS X software development, and I was actually all set to talk about how Apple's iBeacon technology is going to be their big sleeper hit technology of 2014 and 2015, but that'll have to wait. Earlier this week, Microsoft's new CEO, Satya Nadella, published a verbose, somewhat rambling missive about how Microsoft must reinvent itself to stay relevant in "a mobile-first and cloud-first world." I think that Jean-Louis Gassée summed it up best when he described Nadella's essay as "I have something to hide, but I want to be able to say I told you the facts."
Rumors point to layoffs far more wrenching than 2009's cuts of 5,000 blue badges, or Microsoft full-time employees. I expect Microsoft to cut 10,000-15,000 people, or about 10% of their global workforce, centered on Nokia. I'm pretty sure no one, except possibly for Steve Ballmer and Stephen Elop, think that the Nokia acquisition was a good idea for Microsoft. Historically, Microsoft has thrived by building ecosystems with hardware partners. This strategy has been growing increasingly unsustainable for several years now. The continued race to the bottom on pricing has devastated the PC industry. An attempt to replicate the PC ecosystem strategy with Windows Phone has failed, too, as device manufacturers are generally unwilling to pay licensing fees for an operating system far less popular than the free Android.
At the risk of sounding sycophantic, Apple has managed to buck the trends seen by the PC and devices industries by maintaining incredibly high margins on premium products that are made possible only through tight integration between hardware and software, a state of affairs that is nearly impossible for Google or Microsoft to replicate. Both companies have attempted to duplicate the Apple experience, with Google's Nexus devices, and Microsoft's Surface tablets and the Nokia acquisition. The strategy has largely failed for both companies, but it doesn't really matter for Google, given their Microsoft-like dominance of mobile operating system market share. However, Microsoft's situation is far more dire, with low single digit market share in the mobile market. They need to recognize that the world has changed, and they are—in more ways than one—a lot like IBM of the early 1990s.
Microsoft needs to recognize that, much like IBM a couple decades ago, they are no longer the dominant player in a homogenous computing world. They need to accept that for an increasing number of consumers and businesses, Microsoft solutions simply don't make sense. If Microsoft wants to continue being a major player, they need to ensure that their prospective customers can access Microsoft software and services from every computer and device. Windows is clearly still incredibly valuable, but it is also losing relevance. Office is still an incredibly valuable asset, but it risks becoming irrelevant if the millions of people who are becoming 'mobile first' can't access it without an Office 365 subscription.
Meanwhile, Azure is, in my opinion, rapidly becoming one of Microsoft's most valuable assets, and it is led by the inestimable Scott Guthrie, who I think is quite cognizant of the situation Microsoft is in, and has done an excellent job of ensuring that Azure is a great way of building services for any device running any operating system.
Layoffs always suck, and I have a great deal of sympathy for the people who are about to be out of a job. But, Microsoft absolutely needs to become more lean, and needs to refocus its corporate culture on ensuring not that there's a computer on every desk running Microsoft software and services, but that every computer and device can access Microsoft software and services, and that the developers building on top of those non-Microsoft platforms want to use Microsoft services.
What We're Reading
- iOS 8 Privacy Updates
- This is the sapphire crystal display from the iPhone 6
- Smartphone Truths and Samsung's Inevitable Decline
- From fashion to fitness part II: Apple hires a pair of key Nike FuelBand engineers
- Standard Controls
- Eclipsed by Apple
- FCC Filings Reveal Apple's First-Party iBeacon Hardware
Control of the Week
TLYShyNavBar
Unlike all those arrogant UINavigationBar, this one is shy and humble! Easily create Auto-Scrolling Navigation Bars! MIT licensed. |
Weekly Roundup
TaskQueue (Swift)
TwitterPagingViewer
A Twitter-like navigation bar, page viewer. MIT licensed. |
UIImageView+Letters
UIImageView category for using initials as a placeholder image. It can automatically generate a random background color. This is useful for generating dummy images for user profiles. MIT licensed. |
PKLocationManager (Swift)
A Swift based, centralized location manager, simplifying the CLLocationManager API by adding closures and automatically adjusting accuracy, based on the subscribers common needs. MIT licensed. |
Swift-Useful-Extensions
lots of categories i used in objc, rewrite in swift, more coming. MIT licensed. |
ESImageViewController
OTMWebView
Brings some of the missing features of the UIWebView to iOS. Features progress tracking, and custom user-agent support. MIT licensed. |
LTMorphingLabel (Swift)
A learning-by-doing Swift project cloning the original Morphing Label of iOS 8 introduced in WWDC 2014. MIT licensed. |
LTBouncyPlaceholder (Swift)
A learning-by-doing UITextField extension written in Swift MIT licensed. |
MSMotionScroller
A simple class that enables anything that can be scrolled to be scrolled by bumping the device in a certain direction. MIT licensed. |
SOMapPreview
XDPopupListView
VENTokenField
Easy-to-use token field that is used in the Venmo app. MIT licensed. |
IPSqueezableViewController
Offers a shrinking effect for the navigation bar like the one in Safari.app for iOS. MIT licensed. |
MGSpotyViewController
Beautiful viewController with a tableView and amazing effects like a viewController in the Spotify app. MIT licensed. |
UIViewController-ScrollingStatusBar
Category for UIViewController with UIScrollView to scroll statusBar along scrollView MIT licensed. |
DDHTimerControl
A UIControl subclass to input minutes or seconds. MIT licensed. |
BVCropPhoto
BVCropPhoto is image cropping library for iOS. pod 'BVCropPhoto' MIT licensed. |
IPDashedLineView
IPDashedLineView provides a simple interface for creating dashed lines. Create individual lines or create a dashed border for a view. MIT licensed. |
MPGNotification
MPGNotifications is an iOS control that allows you to display in-app interactive notifications that are fully customisable to suit your needs. MIT licensed. |
ENPopUp
An UIViewController category to display any view controller in a modal popup. MIT licensed. |
GoogleWearAlert (Swift)
AHKBendableView
ZFRippleButton
Custom UIButton effect inspired by Google Material Design MIT licensed. |