29 May 2016
I changed my mind :)
Azure expired my current subscription without telling me(!), so the notifications stopped working too.
I thought I’d have another go at moving over to Firebase for iOS, and I got it working pretty easily. I think the original problems were at my end, and to be fair to myself the
documentation is much better now.
I’m much happier to be using just one service for notifications across both iOS and Android.
Azure as a platform was fine, but their customer service leaves a lot to be desired, so I’m not using it any more!
I wanted to add push notifications for my Yeltzland app, an interesting task which took longer
than expected to complete.
What I wanted to do was to push notifications to the app during game time, which copies tweets from the club’s
official account as notifications. This means I can get goal updates etc. without having to turn on notifications
from the account in the main Twitter app (which can get a little tiresome!)
The server component part was pretty easy, as I already have a data feed of the team’s fixture list,
so I knocked together a quick NodeJS script run in a corn job to use that plus the Twitter feed to generate the notifications.
However I didn’t want to build a full web app to manage user registrations myself just to do this, so it made sense to
use an “off the shelf” notification hub instead.
Firebase seemed a good choice as a notification hub to try first, especially since at Google I/O they’d just done a
major release to pull many disparate developer tools under the Firebase brand.
Firebase offers unlimited notifications, plus support for both Android and iOS, and it looked easy to set up.
In fact I did get it working pretty quickly, but during testing it seemed really unreliable. Notifications wouldn’t get delivered,
or spasmodically, and I sepnt a couple of days trying to figure out what was going wrong without much success.
Now it could be that the iOS support has issues (my guess is the service has been mainly Android only before), or more likely
I was doing something wrong, but in the end I gave up very frustrated.
I thought I’d give Azure a go instead, and it was really easy to setup a working Notification Hub without much effort at all.
Out of the box, the notifications seem much more reliable, and I’m really happy with the service so far.
I really wish I’d have started with Azure rather than wasting 2 days wrestling with Firebase.
One minor thing I did have to do was to have separate hubs for “sandbox” and “production” modes, which wasn’t clear from the Azure portal interface.
Your mileage may vary, but I found Azure a much more reliable notification hub for iOS and the client-side code
was much simpler too.
I’d definitely recommend checking it out for small projects, although for heavy usage there is a cost involved compared to the unlimited free usage Firebase offers.
11 May 2016
So I made a Yeltzland app for iPhones and iPads.
I really just made it for myself, to make it easy to read everything about the mighty Halesowen Town FC (Forum/Official site/Yeltz TV/Twitter/…) in one place rather than have to click around different places. There is no new content you can’t get elsewhere. I am lazy.
Anyway it turned out OK so I thought I’d stick it on the App Store so other people can use it if they want.
You can read a bit about it/install it on the App Store
Before you ask, it isn’t available for Android right now I’m afraid, and I have no immediate plans to write an Android version. I may change my mind of course.
04 May 2016
I’ve been thinking a lot about how I work on my apps in a sustainable and realistic way recently.
One of the conclusions has been I should stop pretending there is a corporation behind them - it’s just me (with some inspiration and help from Nick on Daily Optimiser).
Therefore in the latest version of Daily Optimiser
- v3.1.0 - I’ve removed a few things, and made a few other things a bit clearer.
I’ve removed integration of the Daily Optimiser Twitter feed and blog posts into the coach area. It was a good idea, but we never really used it
much (at all!) to publish useful productivity posts and information, so it was always a bit stale and getting in the way.
I’ve also simplified the settings page, to make it more efficient to change what you need to optimise your use of the app (see what I did there?)
and get rid of the “promotional links” - no one ever gives us a review and almost certainly never will unless the app nags them
more than I’d be happy doing.
Accessing online help is much easier too - well at least a lot less ugly
Finally I’ve renamed the in-app purchase from being about “patronage” to be becoming a “Pro User”. You still don’t get
any extra features as a Pro User (other than removing the occasional nag message in the coach), but I may change this in future so want
to be honest about what the money buys you.
The price of becoming a Pro User has also been reduced to $1.99/£1.49. I really do appreciate everyone who has donated
so far, and obviously the more support I get the more likely I’ll keep working on Daily Optimiser going forward.
P.S. The App Store review process only took 2 days which is much faster than usual, and follows a 3 day review for Pixagogo.
Be great if this is an ongoing trend of faster reviews.
03 May 2016
Instagram are mostly pulling access to their API in June 2016, presumably so they can show lots more ads to their users.
This means Pixagogo - my app which displays public posts based on location - isn’t going to work any more once the API is pulled.
However, I thought I’d go out with a bang and spent a little time reworking the UI to make it look a LOT nicer and be much more useable.
Version 2.0 is available on the App Store now, so get it while you can!
Some screenshots from the iPhone version, soon for posterity
02 May 2016
There have been lots of posts recently about what people would like to see in WatchOS 3, so I thought I’d add a few thoughts of my own.
A Brief Review
Mostly I’ll echo what it seems most Apple Watch owners say - they love it despite its obvious limitations.
The apps are very slow to load, and despite changes to run apps natively on the device in WatchOS 2, that didn’t make any difference at all.
However, the really useful things are great:
- Fitness Tracking - I’ve had a FitBit before, but the additional information from the extra sensors on the watch make a big difference.
I love both of David Smith’s excellent Activity++
and Pedometer++ apps for tracking standing/exercise/calories used and step tracking.
- Notifications - once the settings have been tuned so as not to overfire, having a subtle Haptic tap on your wrist for important notifications
is really useful. You really do learn to recognise the subtlely different taps for different alerts, and it’s so much handier than
having to keep getting your phone out.
- Music control - the one Glance I actively use is “Now Playing”, which lets you control the music playing on your phone
(like the controls on the phone lock screen) - so much more handy when commuting.
- Watch face complications - the most useful feature of all, seeing quick pieces of useful information at a glance is fantastic
and very powerful when done right.
The one improvement I’d love to see
Obviously I’d love to see general improvements in speed and battery life. Charging the watch every night,
like I do my phone, is really no big deal, and I often have over 50% battery life left at the end of the day.
What I’d really love to trade off is some of the battery life for extra background processing to keep the
watch face complications more up to date.
As I said above, the complications are possibly the most useful addition 3rd party apps can add, but very often the information
shown isn’t always up to date.
I know from my own app that complications are only update on a slow background schedule. Seeing as a watch
should by definition be all about timely information, it’s really sad that the complication info can’t be fresher.
Finding a way to do that would make such a difference - I’d love it if WatchOS 3 can do that
(especially on the existing hardware so I wouldn’t have to buy a new watch!)