Posted by Brian Lynn on Nov 26, 2013 in Company, Engineering
It’s that time of year! Time to hang with the fam, write code, and enjoy an ice cold winter lager. All while making sure you’re dressed to impress for the inevitable run in with your old high school flame…
As Thanksgiving approaches, we have a ton of updates to share that are sure to distract you from the very obvious fact that Cousin Sam burned off his eyebrows in the deep fried turkey practice round that went down last weekend! This month, we bring you a new version of the Crashlytics for Android SDK, user experience enhancements to our IDE plugins, and usability upgrades to our web dashboards.
And just to recap–before you caught Grandma putting more wine in her glass than the gravy pan (go Granny!), and even before your little sister brought her tattoo-covered boyfriend home from college — back in October we shared two major announcements back to back: Crashlytics for Android Studio and Crashlytics Real-Time Search.
Performance & Responsiveness
We’re excited to have shipped v1.1.5 of our Android SDK with some serious performance upgrades! (If only there was a way to boost your own performance after you fall into that inevitable Thanksgiving Day food coma).
We tweaked our starting logic to move an extra blocking call off the main thread, reducing our SDK start time by over 75%, so you can get Crashlytics up and running even more efficiently — similar to how that extra cup (or 3) of coffee will have you nailing those Black Friday deals better than ever! To make the Crashlytics logger more useful, we now log priorities and tags to your crash reports as well as the Android logger. We also boosted crash processing efficiency by eliminating unnecessary process data collection and reduced the prioritization of Crashlytics threads to free up even more resources for your app.
When mom asks why we showed up empty handed on Thursday, we’ll have a good excuse: we’ve been busy deploying several updates to our Android IDE plugins to enhance the user experience! These include smart drawing of our plugin to better handle non-IDE windows that have focus, and an even smoother responsiveness of the organization selection screen, which now loads network data asynchronously.
Seamless & Intuitive
For those of you asking for access to the raw stack traces, we heard you loud and clear — even over the sounds of the too-soon holiday music that seems to be glaring from every car stereo anywhere. Our web dashboard now gives you the power to see and copy a raw representation of exceptions and threads. This feature is especially beneficial to our Android developers because you can also use the raw stack inside your IDE, so debugging crashes became easier than ever.
After launching shareable crash reports in September, we added read-only comments to these reports. Now even developers without Crashlytics accounts can view these notes, which can include useful information for collaboration with your team (e.g. JIRA URL). We get it — even if you remembered to put elastic waist pants on before you sat down to eat you still need help from the whole extended family to make a dent in that bird!
To enhance overall usability, we completely revamped the Issue’s session page, along with newly added drop down menus for users to easily navigate between their organizations and applications.
Here’s our internal changelog:
- Reduced SDK start time by over 75% by eliminating a blocking call during exception handler initialization in Crashlytics.start().
- Enhanced Crashlytics.logException(Throwable) to log a warning via Log.w() and immediately return on null input.
- Crashlytics.log(int priority, String tag, String message) now logs the priority and tag to Crashlytics reports as well as the Android logger.
- Removed collection of unused process data to improve crash processing efficiency.
- Explicitly set all Crashlytics background threads to THREAD_PRIORITY_BACKGROUND to defer CPU resources to the application.
- Fixed a bug preventing the Crashlytics SDK from being pulled into Android Studio automatically while adding an application.
- Pushed a non-critical fix to our plugin updater that prevents multiple updates between IDE restarts.
- Enhanced the UI of our modals and notes section as well as added the ability for users to filter out versions directly from the dropdown menu.
- Added raw stack traces so developers can now see and copy a raw representation of the exceptions and threads.
- Added read-only comments in shared crashes so notes are visible to team members who got the shared link but didnt have a Crashlytics account.
- Revamped UI for Modals and Notes.
- Added filters to Dropdown menus.
- Won the office-wide “Movember” contest (Tom Selleck truly is an inspiration).
It’s been quite a busy fall season for us but we look forward to shipping even more features before the year’s end. In the meantime, we’ll catch up with you guys on the other side of the holiday — save us some leftovers! Now, back to googling “Thanksgiving puns”…I mean…writing code
You know that feeling when you put your car keys in a special place, scout for easy-to-remember landmarks, build a trilateration system in your brain, and moments later you can’t find them? We hate that too!
That’s why we’ve built our new real-time search feature, so you can find precisely the crash reports you need, when you need them, and where you want them!
Precision & Customization
While we can’t help you track down those lost car keys, our search gives you the power to find a specific needle in the haystack. In our older version, we indexed the following parameters on the issue level:
- File name
- Method name
- Line number
- Issue notes
With our new powerful upgrades, we’ve increased the flexibility and precision by expanding our indices to capture the following at the session level:
- Custom keys
- Logged events
- Custom user fields
Ever since we launched our SDKs for both iOS and Android, we’ve provided completely distinct logging functionalities which capture logged data with the utmost security and protection of end-user privacy. Combining these functionalities with our new search upgrades, you can instantly locate the exact crashes you were looking for and know precisely what happened leading up to the critical moment.
Creating Happy Users
There’s always a chance that your users will encounter unique crashes, and you may be logging your users’ email, id or name for debugging purposes. Our indices will also recognize these parameters. If user privacy is a concern, no worries! We only index this data when you have explicitly populated them in your app, for the sole purpose of helping you nail down crashes for specific users.
Picture an anxious user who receives a reply from you within minutes of his/her support request. Now repeat that across every issue for every user. Instantly, your users will be raving about your support!
From our friends at RunKeeper:
This is going to be a great feature for many reasons. Our QA team is constantly scouring for the most recent crashes, so being able to associate a specific crash to a user when we get a support ticket will reduce development time and have a direct impact on our users!
Seamless & Intuitive
We also allow you to search across all build versions of your application, or focus your search against a single version. On our results dashboard, we present matches that are prominently highlighted and ordered by tag relevancy as well as the issue’s or session’s recency. Once you click on a match, you can jump directly to the details and solve the issues with minimal effort.
In our mission to bring you the world’s most powerful crash reporting solution, we’ve built a hardcore team of world-class developers. This summer, we brought on three extremely intelligent and creative interns, who shunned the late-night parties and worked tirelessly to bring our new real-time search into reality. We’d like to show them our gratitude for their hard work. Here they are!
Cory Dolphin, @wcdolphin
Cory is a senior studying Electrical and Computer Engineering at Olin College trying to connect design and engineering to build useful things for people everywhere. When not working, Cory loves beer, coffee and soccer (but not all at the same time).
Stephen Panaro, @flat
Stephen is a junior studying electrical engineering at Tufts. Outside of class, he developed an iOS app to display college dining hall menus. He has also had a great time attending several hackathons. In his spare time, he loves cooking, watching movies and snowboarding.
Jennie Lamere, @imjen
Jennie is a freshman at Rochester Institute of Technology, where she studies Software Engineering. Her hobbies include hiking, swimming and watching Netflix.
We’re extremely proud to bring you Crashlytics Real-time Search. Our passion is to give you powerful and out-of-the-world tools, so you can build even more amazing apps, make your users happy, and change the world!
Log in or sign up for Crashlytics and send us your feedback; we’re always listening!
We’re extremely excited to announce the release of Crashlytics for Android Studio!
At Crashlytics, we are passionate about building tools that developers love. When Android Studio was first announced at Google I/O this year, it immediately caught our eye. You could even say that Android Studio is the most Android-centric development environment, the next big thing, “the new black”! Well enough hype, let’s get to the good stuff!
Everything You Need – Everything You Love
Our existing plugins for Eclipse and IntelliJ provide seamless integration with Crashlytics for real-time issue browsing, adding our SDK to new apps, and more. For Android Studio, not only do we deliver the same powerful features, but also provide native support for Gradle-based builds. It is everything you love about Crashlytics for Android, now integrated seamlessly into your Android Studio workflow!
Don’t take our word for it:
“Crashlytics allows us to work more efficiently to fix and reproduce these situations. With our recent migration over to Android Studio, it offers amazing diagnostics for such a lightweight library. The plugin works seamlessly with Gradle and your project can be setup within a couple of minutes.”
JAMES INGHAM, SIMPLYTRAK
“The Android Studio Crashlytics Setup is just as simple (and shiny) as the Xcode equivalent. Click the button on the toolbar, follow the super-easy instructions, hit build, and the plugin will set everything up for you on your account. It almost makes you want your app to crash, just so you can try it all out!“
BENJAMIN CLAYTON, CALVIUM
“Crashlytics for Android Studio has helped us develop, test and release our new app IT Manager Android app in record time. Since it’s impossible for any developer to test their app on every Android device, Crashylitics gave us the confidence to launch on Android knowing that we could find the cause of and fix crashes quickly.”
PAUL DUMAIS, SMARTER-APPS
Whether you’re new to Crashlytics for Android or migrating from a different IDE, you’ll find that our Android Studio plugin has been crafted to give you the best Crashlytics experience, without ever having to leave Android Studio!
Here are a few highlights:
Robust Gradle Support – Exclusive to Crashlytics for Android Studio
Managing complex app builds with IntelliJ and Eclipse can be tricky due to their opaque Android builders. Delegating to Ant or Maven solves some problems but causes you to lose tight integration with your IDE. Android Studio solved this problem by natively delegating build automation to Gradle, providing consistency and supporting a wide variety of build configurations without a lot of overhead.
We’ve supported Gradle for command line builds ever since we launched Crashlytics for Android. As Gradle’s Android plugin has matured, we are very proud and excited to extend this support into our Android Studio plugin!
Fully Automated Deobfuscation
ProGuard is an awesome tool, but we all know that tracking your mappings files and manually retracing your stack traces is a tedious pain in the you-know-what. We’ve brought our amazing zero-step, completely automated ProGuard deobfuscation to Android Studio. This saves you valuable time to grab a Red Bull, browse Hacker News, or you know, fix those bugs!
Beauty and Elegance
Let’s face it: developer tools aren’t known for looking pretty. It doesn’t have to be this way! Everyday, you are working hard to delight your users with beautiful, groundbreaking app experiences. We think you deserve the same, so we took this opportunity to revisit the shared interface of all of our plugins for Android Studio, Eclipse and IntelliJ. We created a more dynamic, responsive, and enjoyable flow for all developers, regardless of your IDE of choice.
We are really excited to get Crashlytics for Android Studio into the hands of developers around the world. Since May this year, thousands of companies have been using our Android SDK in their apps. Our customers include:
We’re proud of the tools we deliver to help make your Android development even more powerful. We’re excited to hear what you think of Crashlytics for Android Studio. Sign up for Crashlytics and send us your feedback, we’re always listening!
Already have an account? Get the plugin here.
Highlights from Twitterverse:
We’re excited to announce that Crashlytics for Android is now available!
At Crashlytics, our mission has always been to deliver the easiest and most powerful tools for mobile developers. Great crash detection and reporting, particularly on Android, is a complex problem to solve. It is nearly impossible for developers to fully test every edge-case and catch every bug before release; it’s even harder to find the root cause.
To address this, we first built Crashlytics for iOS, which many of the top apps trust to deliver accurate, detailed crash reports, but we couldn’t stop there. Given the complexities of crash reporting, Android’s explosive growth, and the myriad of devices, it was important for us to build the most powerful, lightweight crash reporting solution for the Android platform.
Twitter’s mobile team has been using Crashlytics since last year. “It was clear [Crashlytics’] analysis was the best available, immediately catching crashes other frameworks missed.” They describe their experience on their engineering blog.
Crashlytics for Android delivers real-time crash reporting across all devices. We perform a deep analysis of each stack trace to identify the most important frames and we break down every bug by device model and version so you can spend less time finding and more time fixing issues.
Highlights of Crashlytics for Android
Fully automated deobfuscation
You’ll never have to upload a file again. Crashlytics for Android uses a multi-step process to analyze your crashes and automatically deobfuscate ProGuard’ed stack traces for apps built using Ant, Gradle, Maven, or in your IDE. We start with on-device exception handling. Once a crash report makes it into our system, stack frames are then re-processed against your application’s mapping file, which was automatically uploaded to our servers at build time.
In addition to automatically reporting your app’s crashes, Crashlytics for Android lets you log caught exceptions in your app’s catch blocks. Your issue summary will contain all the state information you are used to getting from crashes along with breakdowns by Android version and device model. Crashlytics processes exceptions on a dedicated background thread so the performance impact to your app is negligible.
Seamless IDE Integration
We’re obsessed with making developing apps as easy as possible. We know that adding an SDK to an app can be an exhausting (and quite frankly, annoying) process, so we thought hard about making this as easy as possible. Our SDK is deeply integrated with Eclipse, IntelliJ and Android Studio (in beta), across Mac, Windows and Linux platforms. Our IDE plugin helps get you started using the SDK, and keeps working for you by notifying you about new issues so you can track the most prevalent crashes without leaving the IDE.
Condensed Crash Reporting
The Crashlytics SDK works seamlessly across the highly diverse Android ecosystem by collecting crashes across all devices and versions dating back to 2.1. We then condense these crashes, from thousands of devices, into one robust report.
Enterprise-Grade Features – For Free!
Crashlytics for Android is an enterprise-grade crash reporting solution available to all, for free. We’ve built our enterprise features right into Crashlytics for Android so you don’t have to worry about usage costs, fees, or limits when it comes to your app’s performance monitoring.
With access to our enterprise features, you’ll also receive:
Real-time Reporting: Crashlytics also provides real-time crash reporting and deep workflow integration with the issue tracking tools you already use.
Advanced Logging: At times, even full stack traces are not quite enough to pinpoint the bug. To give you even more insight, Crashlytics provides multiple logging mechanisms, including custom keys, custom logging and custom user attributes.
Security: We’ve spared no effort to ensure that Crashlytics is the most secure crash reporting solution. All server communication is completed over SSL using backend-binary file formats.
Stability: We care tremendously about the stability of your app and the experience to your users. The Crashlytics SDK was built to have no negative impact on your app’s performance and only adds 45kb (the size of a single image) to the weight of your app.
We couldn’t be happier to get Crashlytics for Android into the hands of thousands of Android developers. Thanks to all those who helped us test Crashlytics for Android — the feedback has been fantastic. We won’t be stopping here, either — the most advanced crash reporting SDK will keep getting better!
Try Crashlytics for Android in your app now!
If you have questions about Crashlytics for Android, send us an email!
Highlights from the Twitterverse:
(Image Courtesy BostInno)
The 50 on Fire awards celebration brought together the city’s brightest individuals who are powering the future of the Boston community and beyond. We’re thrilled to announce that Crashlytics won BostInno’s 50 on Fire award in Technology!
With more than 2,000 companies nominated, we’re humbled to have been selected and are privileged to share this honor with some of Boston’s most innovative and inspiring individuals and companies. We had such a great time celebrating with the Boston community and our supporters.
Congratulations to all of the other winners — it’s great to see so much innovation happening in Boston!
Oh, and check out this video featuring highlights of the night’s winners.
We’re excited to announce that we’re hosting our very first SXSW event! RSVPs are rolling in from many of the top mobile developers and we hope to see you there as well!
The brunch will be held at #FEED at the Austin Museum of Art — located at the center of all the SXSW festivities. Demand is high — reserve your spot now. Learn more about it here.
- When: Sunday, March 10th from 12-2pm
- Where: #FEED at AMOA (700 Congress Ave, Austin, TX)
- Cocktails and brunch: On us
- Want to crash it? RSVP here