When developing for macOS, iOS, tvOS, or watchOS to get the best performance or provide a secure solution you often need to develop apps that run asynchronously using tools such as XPC, GCD, and NSOperationQueue. Debugging this type of code can be difficult, especially when data is being passed between queues, threads, or processes.
Logging is an age old technique to help in these situations, but it’s easy to be overwhelmed by the amount of log data and to introduce or mask problems because of the observer effect — the overhead associated with many logging frameworks. I know logging isn’t exactly going to steal the headlines away from Siri integration or watchOS 3, but as a developer it’s a valuable debugging tool and the changes in these APIs look to save some significant time while debugging crashes and squashing bugs.
Apple held WWDC16 in San Francisco earlier this month to introduce new versions of iOS, tvOS, watchOS, and a new version of OS X that’s been rebranded as macOS. These new versions are available to developers now and will be more widely available through Apple’s Public Beta program soon, with final releases this Fall. Alongside the new software, Apple announced some exciting changes coming to the App Store, too: Search Ads and more open and flexible subscriptions. If you have an app for any of Apple’s platforms that could use an update for the new releases or are looking to build something new, now is a great time, so get in touch. Let’s take a look at some of the announcements in more detail. (more…)
With the release of the iPhone SE and the iPad Pro, along with the expectation that iPad apps will include support for slide over and split screen mode it’s now clear that Auto Layout is here to stay. If you’re not already developing apps using Auto Layout and Size Classes now is a great time to learn more about them and prepare yourself for any updates to the APIs that Apple introduces at WWDC in June.
Fortunately there’s a lot of great resources to quickly get up to speed and learn the best way to support a variety of devices and size classes in your next app.
Development effort Q&A: native Android versus iOS app
Q) What is the relative effort to develop a native app for Android versus iOS?
A) It depends on how proficient the developer is and what she’s told to do.
Some developers maintain that Android work tends to take about 20% longer than equivalent iOS functionality. Other voices maintain the opposite: that Android development—not to mention code submission—can progress much more quickly than iOS. I’d say it depends:
Porting an iOS app to Android means frequently translating between the divergent UI paradigms of the two operating systems. Both platforms encourage developers to follow certain interface guidelines, but clients sometimes prefer replicating a familiar interface. Thankfully, Android offers fairly deep customization.
For one port, the Android app needed to use the same view transition animation as its iOS counterpart.
On iOS, the standard navigation stack defaults to animating a detail page transition (called by [UINavigationController pushViewController:detailController animated:YES]) by sliding the detail view in from the right, and the root view out to the left. Navigating back to the root view ([UINavigationController popViewControllerAnimated:YES]) reverses the animation, sliding the detail view out to the right and the root view in from the left.
On Android, the same transition (handled through a FragmentTransaction) defaults to a zoom animation, or sometimes a slide up animation. How can Android mimic iOS’ transition animation?