-
Debugging with logs
Rather than print statements everywhere during building / debugging, maybe I should use the system log instead. ... but perhaps not till I've got separate environments worked out. Quinn has a bunch of details here, but it's probably easier to…
-
Isolation in Swift
Once I get my head around basic swift concurrency, I might want to read this https://www.massicotte.org/intro-to-isolation
-
Being a grownup
So it turns out that being a grownup is not nearly as much fun as being a kid. I mean, it's better than the alternative, I guess... ... still. I think the best plan is to behave like a grownup when I need to, and remain toally childlike whenever I can.
-
Done > Perfect
Time to stop fiddling around with the grid lines, and work on the actual hashpoints.
-
App Versioning
Marketing Version (CFBundleShortVersionString) is a user-visible string which should be three integers separated by periods, eg 1.4.16. Current Project Version (CFBundleVersion aka Build Number) is machine-readable string. Can be three integers separated…
-
Ternary W?T:F
To remember where to put the question mark and colon in a Swift ternary expression, try the mnemonic What? True : False. From Scott Michaud, via Paul 5/10
-
@ViewBuilder = TupleView builder
Swift puts @ViewBuilder on the View's body. Which means you can return multiple Views from the body, and it silently wraps them in a TupleView. Same thing for MapContentBuilder, presumably. Paul 4/10
-
Submitting an App
So this post looks useful for how to submit an app to the App Store. tl;dr: in XCode: Product->Archive Distribute (TestFlight & App Store) Then use the App Store Connect website (or AppDab on the Mac or the App Store Connect iPhone app) from there.
-
AppDab
I'm looking forward to when I have an app or two on the real live App Store. :-) When that happens, I will probs want to use something like the AppDab app to keep an eye on my App Store Connect stuff on the Mac.
-
Fastlane
When I want to submit an app to the App Store for real (not just for beta testing), I will need a ton of screen captures. This tutorial page (and possibly this doco page) might come in handy. And they need to be a bunch of different sizes, and for a…
-
Easier
It’s far too easy to register a domain name for a new app. Much, much easier that building the app. In related news, I now own flippity.app.
-
CI for iOS
Once I've got some test written for my iOS app, I might want to start doing some CI type process. One option might be to use Xcode Cloud for this.
-
App Marketing Images
One day I might want to create some pretty marketing images for an iPhone app. On that day, I might want to check out BentoCraft.
-
Hiding Swift Secrets from Github
See this link for an idea on how to hide secrets from Git It uses the same basic philosophy as the .env (and .env.example) files in Laravel
-
Cool background gradient
To get a cool background gradient, try .background(.red.gradient) on a view. Subtle - but pretty. Paul 3-9
-
Let's try with backticks...
Let's try again, this time with backticks... begin a = "whatever" end ... does this do "nice" curly quotes? GIT=`xcrun -find git` GIT_REV=`${GIT} rev-parse --short HEAD` /usr/libexec/PlistBuddy -c "Set :REVISION ${GIT_REV}"…
-
Code test number two
Here is a second code test, all in one little speech bubble: begin let s = “asdf” end Does this “work”?
-
Code test
How does it look if I post code, indented four spaces? begin let a = “whatever” end … let’s “find out”!
-
Dollar means in/out
If you put a dollar sign $ in front of a variable's name, it means you want it to be an in/out variable. That is, you can read its current value, but you can ALSO write a new value if you want Suppose you have @State private var name = "" and you want a…
-
@State private
A simple struct var that is made modifiable by @State should only be used for one little view. Which is why we should always have @State vars private. @State var whatever is BAD @State private var whatever is GOOD Paul 4.11