iOS 8 Push Notifications: Fix registerForRemoteNotificationTypes Deprecation
Push notifications on iOS 8.
iOS development topics.
Push notifications on iOS 8.
By default all the apps (even compiled with Xcode 6 and iOS 8) will run in a scaled mode on both iPhone 6 & iPhone 6 plus.
Having a different application name for release and development builds.
Generating the path dynamically with NSSearchPathForDirectoriesInDomains.
A frequent mistake when playing a local video using [AVAudioPlayer initWithContentsOfURL:url] is to use URLWithString instead of fileURLWithPath.
While starting iOS 9 we have UIStackView, it is a little bit tricky to stack views vertically or horizontally.
In Xcode 8, it is no longer possible to create NSManagedObject subclasses...
The following code is causing a compiler crash when compiled with Swift 3 and Xcode 8...
Collection view is highly optimized and works great out of the box.
According to the documentation, to use ReactiveSwift.playground the following steps must be performed...
ne of our views that contains a UICollectionView started crashing once in a while...
On iOS 10, a collection view embedded in a view has unexpected padding at the top.
All we needed was a simple UICollectionView with just one cell that contained a label ...
We needed a collection view cell that contained an image view and a label.
RxSwift is a powerful framework and, as always, with power comes responsibility.
Symbolification is the process of mapping machine addresses into the source code. The tricky part is that by default .DSYM file is only generated for release builds.
How to create a framework that uses C with Xcode
A step-by-step guide to building a modern SwiftUI Recipe Book app for iOS and macOS.
How we built ObservedOrStateObject to let SwiftUI views own or observe view models without duplicating code.
SwiftUI silently ignored save error alerts once a second alert existed, and this post captures what we learned in the Advanced SwiftUI: Lessons From Mistakes series.
During test teardown we hit a repeatable 'pointer being freed was not allocated' crash while deallocating a @MainActor ObservableObject, and this post explains why we treated it as a Swift runtime edge case instead of rewriting our architecture.
After enabling stricter Swift concurrency checks, we started seeing main-actor isolation errors from @MainActor initializers that used default parameter values. This post explains why default parameter expressions are nonisolated and how to fix the pattern by moving defaults into the initializer body.
Under XCTest teardown we hit a repeatable 'pointer being freed was not allocated' malloc crash when deallocating async/Combine-heavy DependencyContainer and view models. This post explains what was happening and why we fixed it by deliberately leaking those objects in DEBUG tests only.