vknabel
When using @main
on a SwiftUI.App
and @UIApplicationDelegateAdaptor(AppDelegate.self)
you can still have an AppDelegate
without handling SwiftUI manually as without @main
.
You don’t even need a SceneDelegate
! A huge difference for tiny apps!
Now, Android apps require a description for each permission. Back then, it was optional.
In contrast to iOS, this is only a guideline and not enforced by the Android SDK. Instead the developer needs to implement their own alert. But with great power, comes great responsibility as it could be abused.
Bitrise binary uploads cannot be updated after saving. Instead they need to be deleted and recreated. Thus all workflow steps need to be updated if they rely on the data.
Pro-tip: when copy-pasting, skip the BITRISE_IO
and _URL
parts – they will be inserted automatically when using the web UI.
When maintaining multiple locales within your project, try to keep line numbers consistent across all locales. Also keep the order of translations consistent.
That makes differences easy to spot.
Nothing new today, but a quick reminder:
Even if you don’t need to explicitly localize String
literals for Text
manually, you can still need to when passing Strings to UIAlertController
or other UIKit classes.
Of course. But sometimes I still forget while writing the code.
ftp-simple allows opening FTP connections as VS Code workspace!
Localizable.strings
doesn’t support unicode \unnnn
escapes, but only \Unnnn
!
In Swift the \U
is for UTF-16 escapes like \Unnnnnnnn
.
The Android Studio tooling for Android apps checks and validates all translation keys. Even if they are present within the base language. This comes in handy after greater refactorings.
But sadly the XML does not support XML escapes as '
.
How to detect a URL in a String using NSDataDetector - free Swift 5.1 example code and tips https://www.hackingwithswift.com/example-code/strings/how-to-detect-a-url-in-a-string-using-nsdatadetector
An [unowned self]
in a Coordinator is okay.
As the coordinator should live longer than any of its screens, a crash hints to lifecycle issues.