I was submitting a new app to the App Store. I didn’t use TestFlight for beta testing. So new app, new id, new everything. Archive and validate. Once validation passes I usually think I am done. So I start uploading and bragging about it. Until … the upload fails. Must be a glitch, I retry. Failed again. I try many times and I end up with this on iTunes connect.
It’s not a bird without ego :) There’s quite a heated debate about the use of self. If you read the proposal on GitHub there are pros and cons. We had a similar discussion on the Ray Wenderlich team when we wrote our Swift style guide. I am in favor of using self, but I lost the argument :( And my argument is simple: I like code easy to read. I don’t mind writing self, even when it’s redundant, and I am sure my future self will appreciate it (no pun intended).
When you teach it you build examples close to real world scenarios, but still not fully real. When you work on a project on your own you might take shortcuts to avoid what you suspect are intricate situations. When you work with a team, with designers that want a pixel perfect implementation, with an existing code base, with some bridges to Objective-C, with changes of mind along the way then you have a good battlefield to test a tool.
Since I discovered /dev/null on Unix I have been always fascinated by the concept of nothingness in computers. When I started developing in Objc it took me a while to get acquainted with the fact that “it’s ok to send messages to nil”. And now Swift has changed the cards again with optionals. I recently watched this presentation by Sandi Metz at RailsConf 2015. She has been a Smalltalk developer and in the video the influence of “programming as message passing” is very evident.
While writing the chapters in iOS 8 by Tutorials I have banged my head against the wall often, pretty much every beta release. I was really excited when Swift was announced. Excitement naturally fades, by design I’d say. It fades even more quickly when the real thing is far from your expectations. Today, I’d use Swift in an app if: it’s a new app it’s a small app it’s a product of mine Right, I’d not venture in Swift land for client work.