So I've been running a series of 'brownbag sessions' at work around the topic of starting a blog. I thought this would be appropriate in a building full of journalists! So far, it's been fantastic, almost a dozen very enthusiastic attendees.
One of the key issues that's come up has been which blogging platform to go with. I've narrowed down the options to Wordpress or Jekyll. But I found it very difficult to explain the difference between a static site generator (Jekyll) and a full-blown CMS (Wordpress). So I recorded screencasts demonstrating the workflows of each platform, to give the attendees a better impression of the differences. "Show, don't tell", and all that.
Here are the videos, thought they might be helpful to the wider world!
Hi all, I try to write smaller useful posts throughout the year, and one larger post at the end of the year, giving people some insight into how the world of native mobile development is trending from my perspective. I'm not the worlds foremost expert, however I do keep my ear close to the ground and work as a native developer full-time, so perhaps you can glean something from my observations about how 2014 went, and where I see the industry heading.
Since I've been working as a native iOS developer for all of 2014, it's only natural to discuss them first. So here are the trends as I saw them:
Basically, 2014 was the year that I began to see a lot of iOS devlopers/fans begin to turn away from Apple. It appears that 2013 was the year of 'peak developer happiness', if i were to give it a name. It is a death by a thousand cuts, and as such it's rather hard to pin down exactly why everyone is so down on Apple lately. If you held a gun to my head and forced me to give a pithy summary, I'd say that it's because people can't say of Apple products that 'It Just Works' anymore.
There's not much point me going over well-trodden ground here, if you want to read more you can see here:
There's been a lot of commotion in the iOS developer community this year about Apple's App Store approval process, eg the process you go through where Apple vets your app before allowing it to be release on their app store.
Apple has long-held the position on their app review process that if there's a dispute, 'If you run to the press and trash us, it never helps'. So until 2014, you rarely heard a peep from developers complaining publicly (you often heard it privately!) about the app review process, because nobody wanted to talk publicy and thus burn their bridges with Apple. But things changed this year:
In 2014's WWDC, Apple did a demo on how to make apps that took advantage of the new features for the notification center. So a bunch of developers made apps with features similar to the demo, as you'd expect. And one such app did such a great job that Apple featured their app on the app store. However, shortly afterwards, Apple did a 180' turn, removed their app from the store, and started rejecting any apps that allowed interaction with the notification center.
This incensed a bunch of iOS developers, who broke ranks and started talking publicly about their rejections. It turned into a PR disaster for Apple (at least, in the iOS developer bubble), and more developers jumped into the fray and started blogging about their frustrating experiences with app review. Eventually Apple relented and re-approved those apps, however the genie was out of the bottle: people are no longer scared to 'run to the press and trash Apple'. For example:
"...Review Board that you can appeal to. If you run to the press and trash us, it never helps." BS. It's almost required at this point— Russell Ivanovic (@rustyshelf) December 8, 2014
So developers are now feeling emboldened to talk publicly about app store rejections, it is no longer a taboo topic. This is probably a good thing, as it helps people weigh up the risks when developing borderline apps by reading other's stories.
I believe Apple really needs a developer community spokesperson to start talking to the public about these things, akin to Kiyosaki in their early days. Their silence is deafening, and as they continue to lose goodwill with the iOS developer community, a bit of open, frank communication could go a long way.
Here's something I harp on about from time to time: Interface builder and Auto Layout. I'll try to keep this short though, as reasonable people hold well-argued opinions both ways here.
We're now up to our third major version of iOS (6, 7, and 8) to use Autolayout, and i'm still not seeing a majority of developers using it. I'm still seeing most people struggle to do basic things in it, such as different layouts for different orientations without kludgey workarounds. I only know a few developers who love it (good for them, though!). I do not consider it a roaring success.
I've heard anecdotally people talking of 50% of developers avoiding IB and AL; I'm seeing Facebook come up with their own replacements for UIKit piece-by-piece (eg AsyncDisplayKit, Pop, etc); Google don't appear to use IB/AL; even Apple only use it in one or two of their apps. The fact that Apple don't use it is particularly damning, given that they had to re-design the UI for most of their apps for iOS 7.
Smart people have good arguments both ways on this one. I'll leave it up to you to decide if you want to do what Apple recommends at WWDC, or whether you want to follow what they/google/facebook actually do in their apps.
The iPhone 6 and iPad air are fantastic! Apple's hardware has never been stronger. The retina iMac is incredible to look at too. This is certainly Apple's strong spot: hardware.
Personally, my iPhone 6 bent, however. Apple were quite kind and replaced it. Another friend bent his too, however he simply bent it right back! So perhaps it's accurate to say that apple's hardware is as gorgeous as ever, however still a little quirky. Eg the iphone 4's antenna problem, the iphone 5's undersized battery, and too-easily-bendable iphone 6's.
iPads appear to have started declining in 2014, accoring to the market analysts. And the iPhone 6+ will only accelerate this trend. As our phones get larger, people find less need to get a tablet. In a recent project, I was instructed to simply scale up the iPhone app to the ipad with just enough effort spent to fix the glaring issues. I predict that we'll see less iPad-specific app projects in 2015, as the market moves toward big phones. And as indie developers cannot barely earn a living from iPhone apps, let alone the smaller iPad market, it's a bit of a vicious feedback cycle: Less ipad apps, less reason to buy one. When was the last time you remember a high-profile ipad exclusive app such as Paper or Cook or Storehouse? I think iPads will become more of a niche. If i were you, I wouldn't focus on them in 2015.
Swift was certainly a suprise when they announced it at WWDC not so long ago! However, it is still looking too immature for medium-to-large projects. Issues such as taking minutes to compile medium-sized projects, Xcode relentlessly crashing, runtime bugs, and the many other frustrations you can read about in the Apple dev forums all rule it out for day-to-day use, and as such all i've seen is people toe-dipping in the new language by using it for small utility classes or maybe one or two view controllers.
I'm hoping that 2015's WWDC Swift release will be rock-solid and we'll all be able to re-approach it and begin to take it seriously. However, i recommend treating it as a beta, and begin learning it, however you'd be advised not to transition your projects over just yet.
Since this post is dragging on, i'll approach Android in bullet form:
My plan for 2015 is to take a leaf out of Scott Hurff's book, and create and sell a video course on the topic of advanced iOS UI development in Swift, covering the following topics:
If you're interested, please subscribe to my mailing list here on my blog, and i'll keep you posted!
I'm also available for hire as of the 26th January when my current contract expires. If you're looking for a good iOS developer in Sydney, get in touch!
Thanks a lot for reading!
Hi all, here's a talk I recently gave at the local Cocoaheads meetup (Cocoaheads is a meetup for iOS/Mac developers). My topic was 'Secret Keys: Hiding secrets in your iOS app'. It was based on a blog post I wrote earlier here: Storing Secret Keys.
Hope it's helpful to someone!
You can see older posts in the right panel, under 'archive'.
Blogging Platforms 13 Jan 2015
Mobile in 2014 - Year in Review 11 Jan 2015
Secret Keys talk 16 Nov 2014
Dimmi 11 Nov 2014
Project setup in Xcode6 22 Oct 2014
Uploading to an S3 bucket from iOS 15 Oct 2014
iOS8 App Testing Roundup 28 Sep 2014
Storing obfuscated secret keys in your iOS app 16 Sep 2014
New season 1 Aug 2014
House finished 17 Jun 2014
WebP decoding on iOS 9 Feb 2014
Moving on again 22 Jan 2014
Lossy images for retina iPads - JPEG vs WebP 30 Nov 2013
Positivity and your friends 7 Oct 2013
Tactility 26 Jul 2013
WWDC-induced narcolepsy 15 Jul 2013
Back on rails 31 May 2013
Full circle 6 May 2013
Programmatic UI on iOS 3 May 2013
Screencasts and positivity 8 Apr 2013
Year of positivity 14 Mar 2013
iOS Dev State of the Union 6 Feb 2013
Adventures with IAPs 3 Feb 2013
No longer a Googler 23 Dec 2012
Fight back (app biz update 13) 12 Nov 2012
Sent to the backburner (app biz update 12) 25 Oct 2012
Lisi Schappi 7 Oct 2012
Today's happy plateau (app biz update 11) 26 Aug 2012
First week's sales of Today (app biz update 10) 19 Aug 2012
Approved! (app biz update 8) 5 Aug 2012
Hurry up and wait (app biz update 7) 30 Jul 2012
Today app marketing site 27 Jul 2012
Today app submitted 25 Jul 2012
UIAlertView input wrapper 24 Jul 2012
Mentoring 23 Jul 2012
This is too hard! (app biz update 6) 20 Jul 2012
Perspectives (app biz update 5) 9 Jul 2012
4th starting-my-own-biz update 1 Jul 2012
ScrumFox landing page 28 Jun 2012
Server Scope landing page 27 Jun 2012
Telstra Calls and Data Usage 26 Jun 2012
Service History + Dropbox 26 Jun 2012
Impromptu Presenter 26 Jun 2012
Fertility Tracker 26 Jun 2012
Baby Allergy Tracker 26 Jun 2012
Starting my own business, update 3 22 Jun 2012
Starting my own business, update 2 17 Jun 2012
Starting my own business - First update 10 Jun 2012
I must be crazy 6 Jun 2012
Finding your location on an iPhone 7 May 2012
A generous career 4 May 2012
Skeleton Key Cocoaheads presentation 3 May 2012
That book about that Steve Jobs guy 30 Apr 2012
Another app marketing idea 23 Apr 2012
Sweet grouped tables on the iPhone 17 Apr 2012
Skeleton Key App 11 Apr 2012
Another app marketing idea... 5 Apr 2012
Skeleton Key Password Manager with Dropbox 2 Apr 2012
RC Boat motor finally mounted 2 Apr 2012
Promoting apps presentation slides 1 Apr 2012
The Finishing Line 20 Mar 2012
Indie iPhone app marketing, part 2 19 Feb 2012
Indie iPhone App Marketing part 1 7 Feb 2012
Perspectives 2 Feb 2012
Accountability and Free Will 1 Feb 2012
Badassery 31 Jan 2012
Sacrifice 30 Jan 2012
Lead Yourself First 29 Jan 2012
How to ping a server in Objective-C / iPhone 26 Jan 2012
iOS Automated Builds with Xcode4 16 Jan 2012
Xcode 4 - Command line builds of iPhone apps 15 Jan 2012
Guest post by Jason McDougall 13 Jan 2012
Scouts, Games and Motivation 10 Jan 2012
2011 Re-cap 8 Jan 2012
Ruby script to increment a build number 4 Jan 2012
Turning 30? All ideas, no execution? 18 Dec 2011
Memory management in Objective-C 4 Dec 2011
Starting small 29 Nov 2011
Dictionary Types Helper 29 Nov 2011
Observer Pattern in Objective-C 16 Nov 2011
Why you should give presentations 13 Nov 2011
Custom nav bar / toolbar backgrounds in iOS5 8 Nov 2011
Stuck 27 Oct 2011
Dead easy singletons in Obj-C 19 Oct 2011
JSON vs OCON (Objective-C Object Notation) 18 Oct 2011
In defence of Objective-C 16 Oct 2011
Icons 11 Oct 2011
Markdown Presentations 1 Oct 2011
More MegaComet testing: Ruling out keepalives 15 Sep 2011
MegaComet test #4 - This time with more kernel 14 Sep 2011
Building People 10 Sep 2011
Hacker News Reader 20 Aug 2011
MegaComet testing part 2 3 Aug 2011
Australian Baby Colours 28 Jul 2011
Boat prop shaft 25 Jul 2011
Megacomet with 1 million queued messages 24 Jul 2011
Installed the strut and rudder 18 Jul 2011
Painted the inside of the boat 17 Jul 2011
My 3 Data and Calls Usage 11 Jul 2011
Reading a line from the console in node.js 10 Jul 2011
Final finish 9 Jul 2011
MessagePack parser for Objective-C / iPhone 30 Jun 2011
Lacquering the starboard side 25 Jun 2011
Lacquering the hull 23 Jun 2011
Staining the boat 22 Jun 2011
NSMutableSet with weak references in objective-c 20 Jun 2011
Baby Allergy Tracker 12 Jun 2011
Power sanding the deck 10 Jun 2011
Planing the edge of the deck 2 Jun 2011
Figured out the deck 2 Jun 2011
Boat bulkheads 2 Jun 2011
Simulating iOS memory warnings 31 May 2011
Putting a UIButton in a UIToolbar 29 May 2011
Random Chef 17 May 2011
Little Orchard 13 May 2011
Boat update 13 May 2011
Design portfolio 10 May 2011
Centered section headers on a UITableView 5 May 2011
Christmas in may 4 May 2011
Git on the Mac 19 Apr 2011
Skinning the port side of the boat 8 Apr 2011
Skinning the side of the boat 5 Apr 2011
Skinning the bottom of the boat 31 Mar 2011
Extremely simple python threading 29 Mar 2011
New rescue boat 26 Mar 2011
Simple C# Wiki engine 30 Sep 2010
How to use sessions with Struts 2 30 Jul 2010
Using Oracle XE with Hibernate 20 Jul 2010
Ruby hex dumper 4 May 2010
Using Java libraries in a C# app with IKVM 16 Dec 2009
Learning Java tutorial 27 Nov 2009
Using generic database providers with C# 17 Nov 2009
Scheduled task executable batch babysitter 29 Oct 2009
Still fighting with String.Format? 9 Sep 2009
How I'd build the next Google 24 Aug 2009
C# Cryptography - Encrypting a bunch of bytes 14 Jul 2009
Reconciling/comparing huge data sets with C# 9 Jul 2009
Some keyboard-friendly DHTML tricks 10 Jun 2009
Adding a column to a massive Sql server table 16 Mar 2009
Multithreading using Delegates in C# 10 Mar 2009
Using threads and lock in C# 3 Feb 2009
Bare minimum HTML that validates 22 Dec 2008
MS Sql Server 2005 locking 17 Dec 2008
Simple Comet demo for Ruby on Rails 19 Nov 2008
Converting HSV to RGB colour using C# 14 Aug 2008
A simple server: DigitalMars' D + Libev 6 Jun 2008
Travelling from Rails 1 to Rails 2 9 Apr 2008
Rocketsale 9 Apr 2008
Online Rostering System 9 Apr 2008
DanceInforma 9 Apr 2008
Client Analyser 9 Apr 2008
How good is this??? 16 Dec 2007
First post 17 Oct 2007