WWDC 2015 Keynote highlights

This years WWDC was divided into 4 key areas.  The overall keynote felt more of improvements to current systems / apps instead of anything ground breaking.  This is not a bad thing if it improves the user’s experience.

iOS 9

  • Apple News app allows you to get all the latest news in a very rich way (pictures, animations etc). I been told by others it’s like Flipboard,  sad times for Flipboard.
  • Apple Pay is coming to the UK and Apple Wallet allows you to group your store / credit cards together.
  • Maps now show Transit routes for major cities.
  • New iPad only split screen / multitasking modes that allow you to use 2 apps at the same time.  Looks super fun and cool but the best parts are only supported on a iPad Air 2.
  • Swift 2 announced and is going open source.
  • iOS 9 installation size will be a lot smaller than iOS 8!

WatchOS 2

The biggest announcement from a developer’s point of view was WatchOS 2

  • Native Apps.  This is the big change, you now have access to the watch hardware (sensors and buttons).  The watch can now do stuff without being connected to the phone.
  • Third-party complications.  Complications are basically watch face widgets that you can create.  You could create a Complication that shows your heart rate as part of your watch face.
  • Better health and fitness performance
  • New Siri capabilities.  You can now ask Siri to start a 5 mile run, or go for a 300 calorie bike ride

OSX El Capitan

Lots of small improvements however it felt like a maintenance release instead of a new big shiny thing.  The support for split screen for apps is cool, but Windows 8 has had that for a while.  Mac gets the 3D engine called Metal which iOS got in iOS 8

Apple has merged it iOS and Mac developer program which is a good move, the Mac app store is a bit of a graveyard.

Apple Music

This was Apple’s big announcement.  In summary, imagine Sportify + a 24 hour radio station managed by Zane Lowe.  $9.99 a month or $14.99 for families (up to 6 people)

Xamarin ???

This week, I will mostly be looking at Xamarin 🙂

On a serious note, I have been asked at work to take a look at Xamarin and see if it’s something that can be used, and if so for what.  The native iOS/Android developer in me instantly goes NOOO.  However the excited child in me always says yes!

I think I assumed I knew what Xamarin did without actually knowing, and their hugely limited free version kept the hobbiest in me away. However, starting the free trail and looking in to things, shows that actually this is could be pretty cool!  I am not ready to review it yet because I have not made my first app yet, but initial research of a few days is looking promising.

The main decision I need to make is to choose between Xamarin Native and Xamarin Forms.  Xamarin forms does look very good (Universal app) however I don’t think their website info on it is up to date compared to what is actually possible.  They basically say that anything marginally complex should be done in Native.  However if you see some of the stuff people have done, its very impressive.

I hope to do a post by the end of the week on how I got on with making a simple app 🙂

Apple Watch : Sending notifications to the watch from the iPhone

The normal way to communicate between the AppleWatch and the iPhone is via AppGroups to share data (shared Prefs, CoreData etc) or by calling the method openParentApplication from the watch and using the delegate method handleWatchKitExtensionRequest.

What would be very nice is if you could notify the watch from the iPhone that something happened, something like a postNotification.  Sadly postNotificaitons do not work, but Darwin ones do!

WatchKit code

– (void)registerTestNotification {

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(MY_METHOD) name:@”com.burfdevelopment.test” object:nil];

CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), (__bridge const void *)(self), didReceivedDarwinNotification, CFSTR(“UPDATE_WATCH”), NULL, CFNotificationSuspensionBehaviorDrop);


static void didReceivedDarwinNotification() {

[[NSNotificationCenter defaultCenter] postNotificationName:@”com.burfdevelopment.test” object:nil];


iPhone code to fire off notification

CFNotificationCenterPostNotification(CFNotificationCenterGetDarwinNotifyCenter(), CFSTR(UPDATE_WATCH), (__bridge const void *)(self), nil, TRUE);

Hack24 2.0 out now!

So, finally I got some time to update Hack24, my first ever MMO for iOS.  2.0 is not as big upgraded as I hoped but added some more fun to the game.

  • You can now customise the colour and building type
  • You can now message online players
  • NPC have been introduced to add more fun
  • Bug fixes
  • Game balancing
  • iOS8 fixes

Next, I plan to improve performance, the game keeps getting new users, and so development will continue

You can get it free from iTunes

Developing for the Pebble Steel

I don’t generally wear a watch but for Christmas my wife got me a Pebble Steel smart watch which was exactly what I wanted 🙂  I wanted this over an Android Wear device because it works with iOS as well as Android, plus it has a battery life of more than a day!

The watch works seamlessly with my iPhone, and everything is so easy to use, access etc.  I find it funny the Pebble Steel works so well with iOS but my Google Glass does not (yes there is an iOS app for Google Glass, getting all of your notifications to appear on the Glass seems impossible.)

Developing for the Pebble is done online in their Cloud Editor, you can develop using Javascript or C.  As a iOS developer I went for C and was really impressed by how easy it was to develop in a browser and then deploy to the watch with a single click of a button!  The tutorials are pretty easy to follow and understand.  I did have an issue when I switched to using Javascript (3rd tutorial) where you have to define constants via the IDE settings area.   However that could of been user error 🙂

I think they have done a real good job from start to finish with the Pebble.  If you fancy starting development, check out Developer.getpebble.com