We recently released an iOS app called PressCheck, which allows WordPress users to easily keep tabs on security updates on their WordPress websites.
The original goal wasn’t actually to publish an app for others. Initially, it was just an idea on how we better hold ourselves accountable for keeping our client’s websites up to date – and our own site. Before this, our routine was to try to check for updates every Friday afternoon.
We started using our Friday afternoons as Figoli Quinn time — time that we’d use to focus our our needs instead of doing client work. Keeping our sites updated seemed like a great use of that time, and while it was a good idea, it would often slip through the cracks if there was a big project or a deadline.
I knew it was a problem, but didn’t have what I thought was a great solution at the time. Fast forward to this past Christmas when I received an Apple Watch as a gift. Even after just a few days it was amazing how natural the concept of simply glancing at your watch to pick up on data had become, and I started to think how this might an answer to keeping up with website updates. What if I could simply glance at my watch?
So I dug back into iOS development, looking at how to bring this functionality my new Apple Watch. The watch component was really key, and it was only after learning that I had to create a phone application as well that the phone side of the idea started to come together as well. The main idea was the same in both cases:
Since most of our websites are built on WordPress, that was the platform we decided to start with (more platforms will be added in the future). From there, it was just a matter of developing the two required pieces. In order for this to work, not only did we need to build the iOS application, but we needed a WordPress plugin that would allow our application to check the site and know whether it required any updates – and if so, what those are (and doing it in a secure way).
This WordPress plugin was pretty straightforward and is free and open source over at Github.
The iOS portion took a little more work, mainly learning the ropes around running applications on the Apple Watch.
Since the application was entirely new code, we built it purely in the new Swift 2.0 language, rather than Objective-C. This was much cleaner and easier to work with. Even using the latest WatchOS2 SDK, the type of work our app would be doing requires much of the communication to happen on the phone, and have those results passed over to the watch.
Luckily most of that happens in a nice framework within the SDK. Data entry would happen on the phone device — the application needs to know the sites it needs to check, and it needs credentials for those sites. Once those sites were stored, it would perform the http requests to each site, storing the response it got, which the phone or watch application could then use.
In the case of the watch, it would send a message to the phone to fetch the information on the sites, which would then pass the results back to the watch for display. The final piece was having the phone roughly every day (or as close to that as Apple will allow us) perform these checks as a background task, and display the results as both an alert and a badge on the application (also appearing on the watch face).
And finally, it was just a matter of getting through the App Store approval process, which was an eye-opening experience. It took a few weeks, primarily due to a few stupid mistakes on my part. The actual time it took for someone from Apple to get back to us on our submission status was no more than five days.
What’s more, not only did a person review our app, they installed it and poked around in it (one even found a bug within the watch app!), which was pretty refreshing to see.
The app is up and available at Download iOS App, and if you manage a WordPress site, we encourage you to check it out. We currently don’t have any plans to port this to other application platforms such as Android, but we do plan on allowing the iOS app to interact with additional website platforms, the next most likely being Drupal.
That’s a good sign you need to talk with us.