1991-2016—25 years of Art & Logic

Smarter Debugging with Unified Logging & Activity Tracing

Smarter Debugging with Unified Logging & Activity Tracing

pexels-photoWhen 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.

(more…)

Highlights from the Apple Worldwide Developers Conference 2016 (WWDC16)

Highlights from the Apple Worldwide Developers Conference 2016 (WWDC16)

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…)

Learning Auto Layout for iOS, tvOS, and OS X

Learning Auto Layout for iOS, tvOS, and OS X

iPadPro10-ApplePencil-SmartKeyboard-Splitview_PR-PRINTWith 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.

(more…)

Android vs. iOS Dev: Better, Easier, Faster?

Android vs. iOS Dev: Better, Easier, Faster?

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:

(more…)

iOS to Android: Slide In Animations

iOS to Android: Slide In Animations

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? (more…)