The online home of John Pollard

Pushing a WatchKit app to the AppStore

Now Count The Days Left is in the App Store, I thought I should push out the next WatchKit enabled version just in time for anyone who’s getting on on the first day.

Issues shipping a WatchKit app

The release process was pretty smooth - well as smooth as any release to the AppStore is - with a few extra steps needed because of the WatchKit support.

1. You need to add a new Watch icon and screenshots

Surprisingly the icon needs to be 1024px square, but I just reused the image I’d made for the main watch. The screenshots were easy enough to produce in the simulator.

iTunes Connect for WatchKit apps

2. No TestFlight support (yet?)

Bit of a pain this one - I suppose this may come later once the watch is out officially? Something to bear in mind if you want to test your app this way and have added WatchKit support.

3. All your version and build numbers must align

Another pain, as I was using a build script to auto-increment the build numbers for the main app - documented here. However there is no “Build Phases” section for the WatchKit App target in Xcode, so I had to remove the script and manually set the build numbers to all match.

There are full details on the Apple developer site on preparing your WatchKit app for release.

Next steps

All done I think, just need to write a summary blog post in a day or so.

Previous posts in the series

The code for the project is also available on GitHub

Count The Days Left released

v1.0.0 is finally in the App Store!

It was the usual wait of about 8 days from submission until release, and I still can’t find it from my phone.

However if you really can’t wait, this link should take you there.

Next steps

I’ve released a new version (v1.0.1) including the WatchKit additions I made, hopefully in time for all those lucky people who are getting new Apple Watches.

There were a few things I had to do to ship the extension, and the steps needed requires a separate post.

Previous posts in the series

The code for the project is also available on GitHub

Playing With WatchKit

While v1.0.0 of “Count The Days Left” is waiting for review, I thought I’d have a play with getting a Apple Watch extension written for the app.

Simple is Good

Now as you probably know, the first version of WatchKit is very limited on what you can do in the UI. There are just a few standard controls, no way of writing your own, and any animation can only be done using image sets that are shown one after the other.

However the upside of this is it’s pretty quick to get up and running, and I’ve got something reasonable working after just an hour or so’s work.

Now there are lots of really good starter tutorials out there on getting up and running, so I’m not going to go into too much detail here, but here are a couple of articles I found particularly useful:

The thing that I thought was going to take the most time was generating the collection of images I needed for the animation of the progress circle. Fortunately I found a link to this Radial/Ring/Circle Progress Chart Generator for Apple WatchKit on GitHub which did exactly what I wanted!

Here’s a screenshot from the Watch Simulator with what the app looks like right now:

Count The Days Left on Apple Watch

I haven’t found a way of capturing the animation to show here as the progress circle moves into position, but on the simulator at least it works pretty well.

Next steps

Well I think I’m just about done!

I’ll probably write a summary article wrapping everything up once the app is safely released in the App Store.

Previous posts in the series

The code for the project is also available on GitHub

Waiting For Review

Version 1.0.0 of “Count The Days Left” is now waiting for review in the app store. Hurrah!

As usual it’s a bit of a slog preparing to ship the app, but it’s finally all done, which means hopefully it’ll be available for the public in a week or so.

App Store Video production

I wanted a preview video in the app store to show off the app’s gratuitous animation. This is now easy to capture as the latest versions of MacOS support having an iOS device as a video source for QuickTime.

However, it turns out QuickTime captures my iPhone 6 at nearly 60 frames per second, but teh App Store videos must be 30fps or less.

Luckily I found a nice utility program called Prism Video File Converter Free in the Mac App Store which did a nice job of the conversion, and I could add a short preview of the app.

I made a feeble attempt at adding a sensible description of what’s a pretty simple app, and now we’re all set to go.

Call for Beta Testers

Even though the app should be available in a few days, if you want to get a preview feel free to mail me and I’ll set you up in TestFlight.

Next steps

  • Hopefully a successful app launch
  • Start planning support for the Apple Watch using WatchKit

Previous posts in the series

The code for the project is also available on GitHub

Getting Ready to Ship Swift

We’re getting close to shipping the app I’ve been blogging about, so there’s a few bugs to fix and housekeeping tasks to be done first, to get everything closer to production quality.

Switching back to Xcode 6.2

I couldn’t get the deployment tools working in Xcode 6.3 beta (not surprising I suppose), so I decided to switch the code back to the recently released Xcode 6.2.

This also meant changing the Swift code back to the previous version too which was a bit of a pain, but in reality all this meant was getting rid of the new - but slightly confusing IMHO - casting commands of as? and as!

The only other change was replacing the much improved count(string) function to get the length of a string with the rubbish countElements(string). Surely an extension method on the String class to get the length should be in the language (or have I missed something?)

You can see from the commit on GitHub the changes I made.

Integrating Fabric

I’ve also integrated Twitter’s Fabric framework for tracking bugs. They had a slightly strange installation program that’s somehow watched Xcode for builds, which doesn’t seem particularly reliable, but I think it’s now all set up correctly. Hopefully this relatively simple app won’t have any crashes, but good to know I should be able to diagnose them if it does.

Bug fixes

I’ve been using the app over the last week or so, and have made a few more improvements:

  1. Added a timer that fires at midnight each night and refreshes the view, just in case the app is running overnight and needs updating
  2. Picked a new color palette from paletton.com to tweak the color scheme
  3. Improved the layout of the main screen so it works better on larger screens - basically set the main control to have a fixed margin from the edge, and have a 1:1 aspect ratio rather than a fixed width and height. This means it scales better on larger screens as well as all the standard phone screen sizes.
  4. Added a shadow on the main control to get away from a totally flat view. Makes a surprising difference in improving the UI

Screenshots

I used the excellent LaunchKit to take the screen shots I’d take from the emulator and automatically produce the different sizes needed for the App Store. Will definitely use them again as it was efficient and quick.

Here’s what the main screen now looks like on my phone:

Main Screen Screenshot

Next steps

  • Final App Store preparations - basically the copy for the app description needs writing
  • Test the beta version via TestFlight - let me know if you want an invite
  • Start planning support for the Apple Watch using WatchKit

Previous posts in the series

The code for the project is also available on GitHub