You won't want to miss out on the world-class speakers at TNW Conference this year 🎟 Book your 2 for 1 tickets now! This offer ends on April 22 →

This article was published on December 14, 2011

Crashlytics Founders: How to pinpoint the exact line of code that causes apps to crash


Crashlytics Founders: How to pinpoint the exact line of code that causes apps to crash

For consumers, the beauty of an app exists on both its front- and back-ends. They’re concerned with form as much as they are functionality, usability as it relates to overall experience and convenience to the extent that it solves an existing problem.

Developers are mostly concerned with back-ends. It goes without saying that a poorly functioning app is hardly an app at all, regardless of its aesthetic quality. Until now, the failed release of a product – beleaguered by disheartening consumer reviews, clouded banter with inconclusive criticism – was like telling a developer that a piece had gone missing from your carefully-sculpted structure, its location unknown.

To see developers launch Crashlytics, then, is to see them handed, for the first time, that missing piece the moment it falls out. The crash-reporting solution, created for iOS and Android by serial entrepreneurs Wayne Chang and Jeff Seibert, is a tool for developers built with an eye towards two rarely-paired strengths: power and user experience.

“When we first started, we wanted to build the best tool of this kind for developers,” Seibert said. “We knew that the concept we had was possible, but turning it into a service that works, and works well at scale – now that’s difficult.”

Crashlytics, which recently raised $1 million in seed funding from Flybridge and Baseline, is a cloud-based system that activates through a simple line of code dropped into an app. The corresponding crash reports simplify if not totally eliminate the search on the developers’ end for the cause of a crash – up to the line of code where the crash occurred. Existing ad-hoc systems, which may send reports through emails, lack expediency and granularity. Crashlytics amasses all reports and deeply analyzes them, whittling thousands of emails into several and thereby identifying major underlying issues.

Reports include fully symbolicated stack traces, or bread crumbs, that lead up to the crash, even including the method names from Apple’s libraries. The company also goes as far as to say which issues have caused the most crashes, which iOS a given user was running, where he or she is located, and whether he or she was in portrait or landscape mode, just to begin.

“Instead of wading through tens of thousands of automated emails, we want to deliver the five or so source issues. We also want to be a lightweight solution,” Seibert explained. “Our SDK, which is the size of a small PNG image, actually dramatically reduces the overall size of the app. We do this by removing the requirement for developers to ship with debug symbols – which adds 30- to 50% to their app size.”

For the users, the benefits are silent but obvious – just as quickly as they’re able to file complaints publicly or privately, the issue can be resolved. But in developing Crashlytics, UI and UX were as much the focus. “We’ve got a fire hose of data at any given time. The challenge is presenting it through an interface that is intuitive and useful,” Chang said. “We spent a tremendous amount of time thinking about this because we wanted to get it right.”

From the installation process through reporting, Crashlytics was built with the understanding that technical capabilities were important only relative to the system’s ease-of-use. While still serving up raw data, the functionality is refined like that of a consumer product, and those who have been given private beta access have found this approach to be the root of Crashlytics’ strength.

“The integration process is dead simple. It take no more than five minutes to download, install, and integrate Crashlytics into an active project,” Arthur Sabintsev, a New York-based developer, said. “Based on the design and ease of integration of Crashlytics, it’s clear that the developers of this software are seasoned experts in OSX and iOS UX.”

The “very personalized UI experience,” as Sabintsev described it, begins with the download of an app, which guides developers step-by-step through the installation process while automatically gathering their existing projects into the system. “Indeed,” Sabintsev’s co-developer Sacha Durand Saint Omer said of other crash-reporting solutions, “those are usually aimed at tech guys and hardly ever bother with being user-friendly. In that sense, installing Crashlytics was a surprise.”

“Right now, if you were to install a similar SDK for mobile development, you would have to read through a few pages of instruction containing a dozen or so steps,” Chang explained. “Then we come in and say, ‘You don’t have to do that.’”

Other such tools, like Google Analytics and Flurry, can add megabits in unnecessary weight, complicating the installation process by up-sizing an app without providing refined data. Crashlytics, in adding 75 kilobytes, begins acting at the first crash. “I immediately realized the value,” Sabintsev said. “When a hard-to-solve error occurred, Crashlytics told me exactly which file and line of code in said-file threw the bug.” In his first several minutes of use, Sabintsev said he was able to overcome an issue that had plagued the project over the course of the preceding hour.

Alongside Omer and co-developer Tom Rybakiewicz, Sabintsev integrated Crashlytics through Xcode in several apps under development. The immediacy of the results led each developer through a series of aha! moments – “a godsend,” Sabintsev said. In single user issues, they found that the identification of exact lines of code curtailed problems previously plagued by generic reports. These were namely SIGABRT errors, which provide no valuable information and essentially translate, Sabintsev said, to “good luck.” As the Crashlytics team had hoped, the integration process and usability were, impressively, directly proportional to the program’s power. Coupled with its light weight, Crashlytics allowed the development team to integrate without the need to increase app size, adjust workflow, or follow a complex set of instructions.

In the online dashboard, the amassed reports provide insight from the numerous end users, addressing their range of software and devices. “We cannot simulate every use case from our computer (iOS device, iOS version, user location, network state, and so on), and those are often the things that trigger unexpected crashes,” Omer explained. By including information regarding the number of users experiencing a given bug, developers are able to determine whether or not a crash was a one-off, unique situation or an overarching issue in need of being addressed immediately.

“This problem will speed development time up immensely, since it helps developers debug their code faster,” Sabinstev said. “Assuming that these errors are easy to fix, the developer will have a better chance at retaining their user base when such a bug or crash occurs.”

The time saved has a number of implications. Product launch, in some cases, can be a one-shot situation. An unresolved bug over the course of several days can lead to the permanent loss of users. “It will allow a developer to become aware of bugs that occur before poor ratings start coming into the App Store or emails flood their inbox,” Sabintsev said. Rather than wait for the negative publicity, developers simply follow the immediate hint of Crashlytics; Apple, on the other hand, takes two weeks to file crash reports, which, even then, only contain limited information.

“When users are griping about crashes – and they will – the developer will spend massive amounts of time trying to see what they’re talking about,” Chang said. “With us, they’ll gain that time back to spend on actually making the product better.”

In this, Crashlytics leverages expedience as a short-term solution to user crashes and a long-term solution to innovation. The app itself, though, is only three months in the making, and Chang and Seibert are holding off on release until the product is perfected.

“Our biggest hurdle right now is keeping up with demand. We have a huge backlog,” Chang said of beta sign-ups, noting that they’ve already shipped in top-15 apps and are working with a number organizations, including Fortune 500 companies. “Our goal now is to continue that momentum. We continue to watch it delight our users. We want to make sure our product that goes out is the best in class.”

When the general release comes, Omer said, “users of the apps will surely feel the difference.” Sabintsev, in the same regard, said even private beta made evident the implications of the widespread use of Crashlytics. Without it, “I’d have to go back to the old method of debugging certain issues,” he said. “It’s like giving a kid the best tasting lollipop in the world, and then having the lollipop company go out of business a year later.”

Get the TNW newsletter

Get the most important tech news in your inbox each week.

Published
Back to top