[ad_1]
It’s been awhile since I’ve finished one among these deep dives on what goes on behind the scenes through the improvement of an Iconfactory app. There’s a typical thread to every one: I really feel the necessity to doc our work when there’s a serious change in how we construct person interfaces.
The primary one was for the “flattening” of Twitterrific 5, a process that preceded Apple’s work in iOS 7 by six months. The subsequent one was for Flare 2, when the Aqua face of macOS started a dramatic evolution in Yosemite.
With Wallaroo, there’s one other main change that is probably not noticeable on the floor: it’s the Iconfactory’s first app written utterly in SwiftUI.
A Discovery
It began whereas I used to be engaged on Shortcuts assist in Tot. Throughout March of this 12 months, I seen that there was an motion to “Set Wallpaper”. I additionally discovered how Shortcuts may very well be downloaded, put in, and managed utilizing a URLs.
The Iconfactory has been making wallpaper photos because the daybreak of time, nevertheless it by no means made sense to make an app as a result of altering your wallpaper was a handbook process. Shortcuts radically modified this calculus and the thought for an app was born. I threw collectively a fast prototype that allow you to set two wallpapers. Sean and I had the beginnings of Wallaroo.
Our wallpaper prototype grew to become a kind of “we’ll do it some day” initiatives. Then one thing vital occurred: WWDC 2022. After Lock and House Display screen customization was introduced, the thought instantly grew to become a “we have to do that earlier than September!” venture.
Time is Tight
We constructed Wallaroo from scratch in just a little over two months.
The venture began with a few wrinkles: the “Set Wallpaper” motion didn’t work with the brand new options on iOS 16, so we filed FB10377111 on June sixth (a few hours after the keynote ended). We positioned our religion within the skills of the Shortcuts group and determined to hold on regardless of this setback. (We want everybody at Apple wrote launch notes like they do!)
The opposite wrinkle was that all of us had work-in-progress that wanted to be completed up. We knew that the brief timeframe meant that this was an “all fingers on deck” scenario, so it wasn’t till the top of June earlier than all of us freed up. We put the prototype on TestFlight and started working.
Divide and Conquer
There have been three main areas the place we targeted our consideration:
- Content material – Lots of of wallpapers had been created through the years, however decision and side ratio different broadly. Issues wanted to be cleaned up.
- Backend – Over years, we had finished releases in an ad-hoc method: importing ZIP information to a Patreon account would not be acceptable. We wanted a server to handle the wallpapers.
- Frontend – An app to show the wallpapers: it needed to look and work nice. Attractive and quick have been main design targets.
Ged, Anthony, Dave, and Talos instantly started working on the primary bullet, however with no backend server, there was no place to place information and metadata. So we made a Numbers spreadsheet and shared it in Dropbox together with the supply photos. Our Slack channel for the venture was stuffed with “I’m stepping into” and “I’m out!” to keep away from write conflicts. (S.W.A.T. = Software program Write Avoidance Approach)
I used to be answerable for the event of the backend. Importing a spreadsheet CSV file gave us our preliminary database and pictures in Dropbox let me manually generate thumbnails and different content material that might be wanted within the app.
Sean took the lead on the app. We’ve been holding again on SwiftUI because of its immaturity, however the adjustments in iOS 16 appeared nice, so we went all in (the one UIKit/AppKit code is in delegate connectors). The information within the spreadsheet was massaged once more to provide him some actual information to make use of.
Talos took the lead on the app structure and the wireframe was completed on July fifth. Per week later we had sufficient working code to make a Git repository. A couple of days later Sean confirmed us his Captain Pike Appreciation App:
We have been on our method, however had lower than two months earlier than an iPhone announcement. Time to kick butt.
Butt Kicking
July was a blur. Progress was fast and everybody was heads down on their app obligations.
Keep in mind that bug in Shortcuts that prevented Set Wallpaper from working in iOS 16? It was nonetheless round and we have been beginning to get anxious. When iOS 16 beta 5 dropped on August eighth, we rejoiced when our take a look at ran. The shortcut motion labored completely!
Our final replace to the shared spreadsheet was on August tenth. From that time on, we have been ready to make use of our new content material administration system so as to add and replace wallpaper. There was nonetheless a ton of labor wanted to scrub up metadata and nice tune every wallpaper launch.
With the brand new server up and working, we began testing push notifications. Since Sean’s focus was nonetheless within the main person interface, I began engaged on the SwiftUI views and fashions that talked to our backend server. That work continued with integrating the Patreon API and hooking up StoreKit2 for subscriptions. I additionally had a blast doing the Consumer License and Credit screens.
We began our first beta take a look at with Patreon supporters on August twenty fifth. We have been going to make the mid-September launch date!
SwiftUI FTW
Wanting again on the event, I believe there have been two issues working in our favor: expertise and SwiftUI.
We’ve made plenty of apps and have an instinctual data on the right way to construct them. However regardless of how little friction there may be in working collectively, you continue to should put the items collectively.
SwiftUI is extremely good at doing that.
Remember that neither Sean or I had created a full-fledged app utilizing SwiftUI (widgets don’t rely). We needed to study the idioms and greatest practices, however as soon as that was overcome, improvement occurred at a lightning tempo.
We encountered roadblocks, in fact. Monitoring down reminiscence leaks was tougher than UIKit due to the abstractions. Determining the right way to share a picture was a enormous head scratcher. Implementing parallax in a ScrollView was many days of onerous work. And it is best to see the feedback in our PagingView!
However total, the expertise was extraordinarily constructive. If you happen to’ve been on the fence with this expertise, iOS 16 appears like a turning level in SwiftUI’s evolution.
Give It a Go!
Now that you simply’ve examine how we made it, take Wallaroo for a spin. It’s a FREE obtain and a enjoyable little app for iOS 16. And an awesome instance of what you are able to do with SwiftUI.
[ad_2]
Source link