Behind the App: Wallaroo • furbo.org


It’s been awhile since I’ve achieved one in every of these deep dives on what goes on behind the scenes in the course of the improvement of an Iconfactory app. There’s a standard thread to every one: I really feel the necessity to doc our work when there’s a significant change in how we construct person interfaces.

The primary one was for the “flattening” of Twitterrific 5, a activity 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 fully 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 realized how Shortcuts might be downloaded, put in, and managed utilizing a URLs.

The Iconfactory has been making wallpaper photographs since the daybreak of time, nevertheless it by no means made sense to make an app as a result of altering your wallpaper was a guide activity. Shortcuts radically modified this calculus and the concept 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 turned a type 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 concept instantly turned a “we have to do that earlier than September!” mission.

Time is Tight

We constructed Wallaroo from scratch in somewhat over two months.

The mission 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 crew and determined to hold on despite 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 quick timeframe meant that this was an “all palms on deck” state of affairs, 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 over time, however decision and side ratio various extensively. Issues wanted to be cleaned up.
  • Backend – Over years, we had achieved releases in an ad-hoc method: importing ZIP recordsdata to a Patreon account would now not be acceptable. We would have liked a server to handle the wallpapers.
  • Frontend – An app to show the wallpapers: it needed to look and work nice. Attractive and quick had been main design objectives.

Ged, Anthony, Dave, and Talos instantly started working on the primary bullet, however with no backend server, there was no place to place recordsdata and metadata. So we made a Numbers spreadsheet and shared it in Dropbox together with the supply photographs. Our Slack channel for the mission was full of “I’m entering into” and “I’m out!” to keep away from write conflicts. (S.W.A.T. = Software program Write Avoidance Method)

I used to be accountable 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 will be wanted within the app.

Sean took the lead on the app. We’ve been holding again on SwiftUI on account of its immaturity, however the modifications in iOS 16 seemed 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 offer him some actual knowledge to make use of.

Talos took the lead on the app structure and the wireframe was completed on July fifth. Every week later we had sufficient working code to make a Git repository. A number of days later Sean confirmed us his Captain Pike Appreciation App:

We had 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 duties.

Keep in mind that bug in Shortcuts that prevented Set Wallpaper from working in iOS 16? It was nonetheless round and we had been beginning to get fearful. 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 had 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 superb 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 Person License and Credit screens.

We began our first beta take a look at with Patreon supporters on August twenty fifth. We had 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 a whole lot of apps and have an instinctual data on how one can construct them. However regardless of how little friction there’s in working collectively, you continue to need to 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 depend). We needed to be taught the idioms and finest 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 how one can share a picture was a large head scratcher. Implementing parallax in a ScrollView was many days of arduous work. And it’s best to see the feedback in our PagingView!

However total, the expertise was extraordinarily constructive. Should you’ve been on the fence with this know-how, iOS 16 seems like a turning level in SwiftUI’s evolution.

Give It a Go!

Now that you just’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 a fantastic instance of what you are able to do with SwiftUI.



Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles