What can realistically be achieved in three months? It feels like a long time but it is only 58 working days. Without a plan, I know I’ll follow the rabbit down the wrong hole.
My overall goals for Shopping UK are:
My plan is to break the time into two-week blocks. At the end of each period, a new version of the app will be released to the App Store.
|April 3rd||Plan next 3 months,
Write “Embracing CloudKit” articles
|April 10th||Develop v3.3
Writing “Embracing CloudKit” articles
|Publish v3.2 to AppStore|
|April 17th||Develop v3.4|
|April 24th||Develop v3.4||Publish v3.3 to AppStore|
|May 1st||Develop v3.4||Publish “Embracing CloudKit Part 1” article|
|May 8th||Develop v3.5||Publish v3.4 to AppStore,
Publish “Embracing CloudKit Part 2” article
|May 15th||Develop v3.5||Publish “Embracing CloudKit Part 3” article|
|May 22nd||Develop v3.6||Publish v3.5 to AppStore,
Publish “Embracing CloudKit Part 4” article
|May 29th||Develop v3.6||Publish “Embracing CloudKit Part 5” article|
|June 5th||Develop v3.6||Publish v3.6 to AppStore,
Publish “Embracing CloudKit Part 6” article
|June 12th||Publish “Embracing CloudKit Part 7” article|
|June 19th||Publish “Embracing CloudKit Part 8” article|
|June 26th||Look for new client engagement|
This roadmap may need to change if I encounter unexpected problems or delays with the App Store review process, but I will do my best to stick to it.
I started work on this release earlier this year and it is almost ready to go. This release will include foundational changes that lay the groundwork for reliable sharing using CloudKit.
What is CloudKit? CloudKit is Apple’s platform for moving structured data between an app and iCloud. It is a proven technology used by Apple’s own apps: Notes, Photos, Pages, etc.
The plan is to deploy the new CloudKit changes in a partially active form: users will be able to accept CloudKit sharing invitations, but the screen to create a new list share will continue to send old-style invitations.
This means when the next version (v3.3) is released, most of the 40,000+ devices will already have the capability to accept CloudKit style invitations. This solves the “chicken and egg” problem that would otherwise be present. Once v3.3 is released, I’ll use app analytics tools to closely monitor how many users have upgraded.
By releasing in two stages (v3.2 then v3.3), I can spread the risk of introducing such a large internal change. To implement CloudKit, many low-level changes had to be made to the app. I have tested these thoroughly, but there’s always a chance I haven’t covered all scenarios (with 40,000+ users, there’s a lot of variety in how the app is used). Fortunately, v3.2 won’t include any irreversible changes. So, if any major issues are reported that can’t be quickly fixed, I have the option to rollback to the v3.1 codebase. This would be a last resort — I always test thoroughly, and plan to fix minor issues by building on the current version — but knowing there’s a potential “Plan B” means I’ll sleep better at night.
The v3.2 release will also include some minor bug fixes and usability improvements
This is the biggie!
If all goes well, the new CloudKit-based sharing mechanism will become fully active in this release. The old sharing mechanism will still be supported for existing shared lists, but newly created sharing invitations will be CloudKit-based.
Moving to the new CloudKit-style sharing will bring advantages:
The new CloudKit-style sharing will also fix some important bugs present in the current version:
Sharing lists will continue to be free — no Premium subscription will be required.
After v3.3. is released, I will monitor the reliability of CloudKit sharing, and track the adoption of CloudKit sharing vs “Classic” sharing. In a future release, when the time is right, the app will encourage users to upgrade to CloudKit-style sharing.
For this release, I plan to introduce a new, potential revenue-generating feature (available for Premium subscribers), one that has often been requested: to see a notification when someone adds, deletes or marks-off an item on a shared list. This will be introduced for CloudKit-style shared lists.
If time, I’d also like to:
These last two features are planned to be available for everyone, not just those with a “Premium” subscription.
I’ve had many requests over the years to add a feature for adding up the cost of items on the shopping list.
I really like this idea, but I couldn’t think of a way to add this feature in a way that was both discoverable and not irritating for users that don’t wish to use it.
My goal with Shopping UK has always been simplicity — not expecting the user to do more than necessary. To achieve this, I avoid complex and busy user interfaces that could cause cognitive load. I’m always wary about adding a feature that would make it harder for some users to use the app. It is very difficult to remove a feature once added!
But now I think I’ve cracked it! I have a plan for how a “running total” for a list could be added in a way that is discoverable, easy-to-use, and actually improves the app in other ways for users that don’t wish to use this feature.
Plus, it is the perfect time to introduce this. The price of supermarket items is at an all-time high, and many people are finding it difficult to budget. Using a shopping list is a good way to avoid impulse buying in the supermarket and save money. If Shopping UK could provide the means to easily track spending before and during the shop, it would be very helpful for those on tight budgets.
If I get this far without the schedule slipping, I will introduce support for image sharing.
At present, the shopping list is text-only. And, while it is possible to add sizes, quantities, and notes, it is sometimes helpful to take a photo of an item to help remember what it looks like, or to help someone else locate the item when they’re shopping using a shared list.
This is also likely to be a Premium feature.
I plan to post regular blog updates and a series of technical posts called “Embracing CloudKit”, which will describe in detail how CloudKit can be used to add sharing support to an app.
The aim of these articles is threefold:
I’ve already started writing the “Embracing CloudKit” articles but I have a lot more to cover. The articles will be split into eight parts, with a new one published each week. The first part will be published to coincide with the release of v3.3.
There’s a lot here but it feels doable if everything goes well and I don’t hit major obstacles. If I do encounter problems, I may need to reduce the scope of releases, or delay v3.6.
I know I work best when I have a clear, ambitious goal. This plan is designed to be intense but not impossible.
This post was updated on Wednesday, 5 April 2023 16:00 to fix a typo and add missing weeks (April 24th and June 19th) into the schedule Update Tuesday, 2 May 2023: I’m using this as my TODO list. I’ll add links as I complete an item
(Day 1 of 87)