I mentioned in a previous article that, to find out the size of a view in SwiftUI, you use GeometryReader. It passes a GeometryProxy in to the content, which can read the size to make adjustments to itself — to calculate “responsive” layouts, figure out appropriate sizes for its own content, and so on.
But, when you actually use a GeometryReader, it changes the layout of the view, which can cause all sorts of other problems.
SwiftUI is quite a new technology, and it still has some rough edges. There are bugs, and there are missing features — but mostly, the design is pretty solid. Over time the bugs will get fixed, and the missing features filled in.
But the layout engine has a significant limitation: unlike Auto Layout, it’s strictly one-way. Superviews tell subviews how much space they have available, not the other way around. This makes many common tasks fairly straightforward, but it lacks some of the features of Auto Layout — most notably, equal-size constraints.
In the first part of this article, I explained that I put together a system for producing user guides for apps, by writing the guides in Swift itself, and having the compiler turn that into code/data. It can then be turned into HTML on demand, or inspected by the app to generate the table of contents, search indices, and so on.
In this part, we’re going to look into how that actually happens: How does it work? How does the code get turned into a data structure? And most importantly, how do you make it easy and comfortable for a human to write a user guide in a language intended for programming computers?
There’s a school of thought that says iOS apps shouldn’t have user guides, because they should be simple enough not to require them. This is a pretty good rule of thumb for many consumer apps, but for Pro apps like Ferrite or Hokusai it breaks down, because if you simplified them enough that a user guide was never required, they would no longer be Pro apps.
This is another post in which we discuss a common issue that’s useful to know when working with audio (in any app, but also showing how it can be relevant to Wooji Juice apps like Ferrite Recording Studio or Hokusai Audio Editor).
Today, we’ll be discussing “clipping”. As we’ve discussed previously, audio is represented by a waveform that represents the movement of the mic/speakers over time:
Welcome to 2020! This post is going to cover a common audio editing issue, something called “Zero Crossings”. It’s not specific to any one app — it can be useful background info for anyone who edits audio — but I’ll also mention how it can be relevant when working with Wooji Juice apps like Ferrite Recording Studio or Hokusai Audio Editor
One of the things that has characterised iOS apps from the outset has been smooth animation. This is helped by the fact that there’s a shared animation engine running on the system that keeps everything ticking along while apps are doing other work, and also by the fact that animations are very easy to add:
Ten years ago today, the App Store opened for the first time.
Ten years ago today, Wooji Juice began selling its first iOS app in the App Store.
In the following months, there would be something of a “gold rush” as people piled in to try and capitalise on the success of the iPhone, but Wooji Juice was there on day one.
I’d quit my job a month or two earlier. When the iPhone was announced, I believed that if Apple did what they said they were going to, then it would be a breakthrough product that upended the technology world. But the software was the missing piece of the puzzle.
The latest update to Hokusai Audio Editor is out today, and it’s pretty packed. Everyone gets access to new features, and if you have the Pro Pack, there’s even more. Here’s what’s new:
Apple recently released iOS 11, and one of the headline features is drag and drop support on iPad.
Of course, apps have long been able to implement their own drag and drop features — it’s a major part of how you edit audio in Ferrite, and it makes smaller appearances in other Wooji Juice apps too. Both Grain Science and Mitosynth let you use drag and drop to change the order of special effects, for example.