There are usually two common reasons when you have missing files in the project after a merge.
The first case is when the commit contains references of files only, but not the files themselves. That means a developer adds e.g. images to the project and commits the project file, but forgets to commit the actual image files. When you merge those changes, you get those familiar red file names that clearly state missing files. You need to get a hold of the actual files and add them to resolve the issue.
Continue reading iOS copypng failed with exit code 1
Swift is a programming language that strongly emphasizes value types. Structs and Enums are first class citizens in Swift. While value types do not support inheritance, they contain properties, methods and extensions, features usually related to classes.
Value types usually don’t manipulate the data they store. It is the owner of that value type that manipulates the data stored in the value. The value type itself can contain interface and convenience methods for computation and calculations using the stored data. This results in a clean and predictable control flow.
Continue reading Swift Value vs Reference types
Deep links are used to take users directly to the content they are interested in inside your application. In Facebook Ads you’re showing specific content that users are interested in which leads to app install. Using deep links you can take the users straight to that content upon installation. Without deep links users are left on the home screen once they run the application and they have to search for that specific content themselves.
Continue reading iOS Facebook Deep Linking
Batch deletes are fast and efficient for deleting Core Data entities when using an SQLite persistent store. They provide far better performance than deleting specific NSManagedObjects because batch delete operations are performed in the persistent store (at SQL level). Since the changes are reflected in the persistent store, they are not reflected on objects that are currently in memory.
Continue reading iOS Core Data – batch delete duplicates
When I started looking into FRP (Functional Reactive Programming) on iOS, ReactiveCocoa was pretty much the only way to go. Today there are quite a few FRP frameworks available, with ReactiveCocoa and RxSwift as the two most popular. ReactiveCocoa has been out there for a while and at the moment it is obviously more popular, but RxSwift is catching up fast. Both frameworks are extremely powerful and you can’t go wrong with either, but my vote goes to RxSwift for a few reasons.
Continue reading RxSwift vs ReactiveCocoa
iOS Universal Links are a great way of handling your regular website URLs directly in your application without a need to open it in Safari. The users get a seamless experience of navigating straight to the content in the app. If the application is not installed, the system will fallback to opening the URL in Safari. Custom URL Schemes have been used for communication between the apps, but the problem is that other applications can claim the same URL scheme. Universal links solve that problem.
Continue reading iOS Deeplinking – Universal Links and Associated Domains
If Xcode cannot symbolicate the crash report automatically, you can use “Symbolicatecrash” tool to symbolicate the report manually. There are three files you’re going to need for this to succeed. The .app file (or if you have an ipa file just rename it to zip and uncompress, you’ll find the app file in that package), the .dSYM file and the .crash report.
Continue reading Xcode 7 Symbolicate iOS Crash Report
Prior to iOS 7.1 the UIApplication’s beginReceivingRemoteControlEvents method needed to be called and remoteControlReceivedWithEvent implemented where you’d handle remote control events by the event type that is received. In iOS 7.1 MPRemoteCommandCenter is introduced. With command center it is much more convenient to handle the remote control events.
Continue reading iOS Audio Player with Lock Screen Controls
LGStackView is a control that is a simplified version of UIStackView supporting iOS8. It is used to stack dynamic subviews constrained with autolayout constraints in Interface Builder based on their hidden or alpha property. Once the constraints are set up for all views, there are two IBInspectable properties in Interface Builder to set up. First is the orientation (vertical/horizontal), and the seconds is padding among views. The order of the views is determined by their z index, which is set by reordering subviews list in Interface Builder.
Continue reading LGStackView – Swift iOS8 control similar to UIStackView
iOS Drag & Drop example is written in Objective-C and Swift 2.0. The idea is to perform an action once the circle is dragged and dropped into the goal area. If the circle is not dropped on the goal it’s returned to the starting position with animation. Pan gestures are accepted over the entire view, but the circle is constrained to the dragging area subview.
Continue reading iOS Drag & Drop