Happy Halloween from our (Crashlytics) family to yours! Over at CrashHQ we’ve somehow managed to find time to ship two major product updates this month (more on that later) — which is surprising considering how much time “some” of us spent infusing locally distilled vodka with fresh pumpkin and hand-embroidering “Doogie Howser, M.D.” onto that lab coat we bought at Good Will.
But even before October rolled around and we started getting into heated discussions with our co-workers born after 1990 about the blasphemy of never having heard of half the potential costumes one could create based on Mike Myers SNL skits, we accomplished a lot. In fact, last month we released an even lighter-weight version of our Android SDK, improved IDE plugin features, and easily shareable crash reports. This month we kept up that same momentum and launched Crashlytics for Android Studio and Crashlytics Real-time search!
Support for Android’s Next Big Thing
When Google first announced Android Studio last spring, Android developers everywhere were excited to start building their apps in an IDE designed specifically for them. This month, we released our plugin for Android Studio, bringing the power of Crashlytics to Android’s premier IDE, complete with robust Gradle support. Much like our plugins for Eclipse and IntelliJ, we made it seamless to integrate Crashlytics into your Android Studio workflow, along with access to the same powerful features: real-time issue browsing, SDK addition to new apps, and fully automated ProGuard deobfuscation. Again, all while searching the entire Greater Boston Area for the perfect, most-historically-accurate Salvador Dali mustache
We also created a more dynamic and responsive interface shared by all of our Android plugins. The new UI sports slick page transition animations, an app selection screen that tells you exactly which apps are already configured for Crashlytics, and the option to easily switch between your apps. Regardless of your choice between Android Studio, Eclipse and IntelliJ, you can have an effortless and streamlined debugging experience. (Picture taking your kids trick-or-treating without the inevitable sugar-induced melt down!)
Locate Issues from Anywhere, Anytime
When we first launched our iOS and Android SDKs, our unique logging features allowed developers to capture logged data with highly actionable insights. For our new real-time search functionality, we dramatically increased the flexibility and search precision by creating new indices to capture custom keys, logged events and custom user fields. This gives you the power to instantly locate the exact crashes you’re looking for with vivid details, along with the option to search across all build versions or hone-in on a single one.
Here’s our internal changelog:
- Fixed CrashlyticsMissingDependencyException when building with aapt’s –rename-manifest-package option.
- Upgraded plugins to go directly to issue browser on launch.
- Improved display of app and user names that use non-ASCII characters.
- Integrated new components of a new standard UI library such as a new sidebar and other components swaps.
- Switched the office kegerator over to a frosty pumpkin ale.
- Took the My-Kid-Has-the-Cutest-Costume contest offline by having a company Halloween party.
- Finally nailed consuming the right amount of candy at said party as to not get a stomach ache (speaking for our children, not ourselves).
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:
You’ve put away the beach chairs, said goodbye to pina coladas and hello to an ice cold beer and college football. With Fall rolling in, you are probably reminiscent of your first few days going back-to-school: running anxiously to catch the school bus, hoping your schoolyard crush would sit next to you in class. At Crashlytics, we want you to be just as excited about getting back to building your favorite apps, so we’ve fueled up on caffeine and pulled a few all-nighters to bring you some developer-life-changing upgrades!
Last month, we improved the user experience for our Android IDE Plugins and support for custom builds in Gradle. This month, we launched an even more lightweight version of the Android SDK, convenient features inside IDE plugins, as well as the best collaboration experience for any mobile development team.
The Next Level of Lightweightness & Convenience
We’re sensitive to how our footprint impacts your environment, which is why we paid attention to even the finest details when launching version 1.0.4 of our Android SDK. The new version minimizes the SDK’s network usage and disk space requirements, and we did it by reducing the size of logged exception reports by as much as 75%.
We also improved the cleanup process for cached Crashlytics reports, which saves even more space and further lower network usage by eliminating unnecessary session reporting. It’s like getting those extra large lockers where you can hide yourself from a dreaded and mean principal!
Seamless Web Experience and Collaboration
You know the feeling when you waltz into the cafeteria on the first day of school and breeze your way through the lunch line, knowing exactly what foods to avoid and the usual table where all your best friends are sitting at. That’s exactly the smooth experience we created for you with the upgrades to our web dashboard.
We’ve added new functionality so that the number of comments, crashes and other key information are updated in real-time — so you can relax, sit back and get all the relevant data without having to refresh the page. It’s like having all the answers to a pop quiz coincidentally saved in your graphing calculator.
Remember that time in kindergarten when someone stole your favorite toy and the teacher yelled and said “you need to share.” Well, we haven’t forgotten the importance of sharing, which is why earlier this month we introduced our sharing feature. You can now share your crash reports on sites like Stackoverflow with greater context and lucid details, while keeping all sensitive information private.
We wanted to give you the power to not only collaborate with your team, but to tap into the expertise of your entire developer network. So you can be confident that you can quickly resolve any issues — like senior-year-of-high-school-football-quarterback-confident!
Here’s our internal changelog:
- Dramatically improved support for the arm64 architecture.
- Improved app icon update logic to reduce network bandwidth.
- Fixed a bug that leads to an ANR, in extremely rare cases, after crashes that can occur during an app launch.
- Added a default versionName to prevent a minor issue when versionName is not in the AndroidManifest.
- Fixed a bug that occured when the versionCode is omitted from the AndroidManifest.
- Improved plugin behavior on attempted logins without an internet connection.
- Improved support for communicating with our servers through network proxies.
- Improved user flow for confirming and disabling crash collections.
There’s an age-old saying: talent wins games, but teamwork wins championships. Here at Crashlytics, we made it our goal to help you and your team collaborate to build amazing and the most stable apps, so that you can hit a homerun…Bottom-of-the-9th-walkoff-1988-World-Series style!
Developers who use Crashlytics have been able to find and fix their bugs with tremendously less effort, thanks to our real-time reports that intelligently prioritize issues. But like any MVP, even the brightest developers run into hurdles at some point and need help from their team. So we set out to make our crash reports shareable, giving you the power to fix the most challenging bugs in minimal time.
Detailed, Easy-to-Share Crash Reports
As a Crashlytics user, in just a simple click of a button, you can share the intricate details of each issue with your team — without even leaving the admin dashboard.
You can also collaborate with your team to fix incoming bugs in real-time, either by sharing the report via the email button, or using the sexy short link (crashes.to/…) in your favorite IRC client. While it may not be exactly what James Earl Jones said in Field of Dreams, developers now have a new motto: “if you share it, they will help.”
Beyond Your Team’s Expertise
It’s clear that collaboration is key to building awesome apps. Beyond just your team, you can now tap into the expertise within the developer community. With the short direct link, you can share your crash report on sites like Stackoverflow, without having to format code blocks or type out any cumbersome device information.
Many top apps have already started sharing their crash reports, and absolutely love the feature. In their words:
“This feature has already proven extremely useful. Not only can i show the exception to my team, but also post it on StackOverflow with greater context and finite details, which makes it more likely for others to be able to help!”
JOE SCOTT – BROAKENMEDIA
“The sharing feature is
so simple yet extremely helpful. We can now quickly share
crash reports within our team, as well as with 3rd party SDK developers and others within the community, all the while keeping our
BRYAN RAHN – MOBIATA
“Sharing is great when we need to attach crash logs to Apple bug reports, especially when we can’t reproduce the crashes locally. All we have to do is copy and paste, and Apple receives a perfectly symbolicated crash log. Perfect!”
ANDREW AUDE – VENMO
Imagine getting feedback from developers who know their craft; it’s like having thousands of John Maddens, live on ESPN, in your pocket, always–if John Madden only ever gave you super constructive feedback on your code!
Private and Secure
We understand that sharing your crashes can be a sensitive subject. No worries! Our shared reports show only the information that will be most helpful for you in resolving the issues. Each one comes with the usual deliciousness that you could expect: stacktraces, device state, operating systems etc. We don’t share the total volume of crashes, or the number of users that were affected. Also, you can always make your crash report private with one click, after having shared it publicly.
We’re developers too, so we know that you enjoy sharing big challenges that you solved, especially the really hard problems from OS nuances, 3rd party libraries, or tricky workarounds.
Despite #23’s multiple MVP seasons (that’s Michael Jordan for anyone who doesn’t speak sports…), he too recognized the need for a strong team to win those back-to-back championships. That’s where we come in; we build tools to help you solve big challenges with your team and the help of the community, so your app continues to win in the big leagues!
While the Peter Pan in all of us loves a good summer vacation, over at Crashlytics we’ve been working hard the last couple months to make sure that by the time those back to school ads start running, and all the sand is washed out of your hair, we’ll have tons of upgrades to show off to you, along with all the “true” stories about how we totally got into that P-Diddy party in the Hamptons that one time.
In July (while you were working on your tan) we enhanced our SDKs’ features, shipping even more robust crash reporting functionality and powerful processing capabilities. And in August (while you were nursing your sunburn) we took it one step further, improving even the finest details of our Android IDE plugins with a seamless user experience, as well as enhancing the flexibility of our Gradle plugin to support any custom builds!
Dazzling Experience for Intellij and Eclipse Plugins
We get it. When adding new libraries or plugins to development projects, you want to see how the change might affect your code and feel completely confident—like I-stood-up-on-my-paddleboard-on-the-first-try-confident. That’s why we created a new, slick UI for getting Crashlytics up and running with a preview screen that gives you even greater visibility into the code. But we didn’t stop there, we’ve made the UI extra responsive, with hover and pressed states on clickable links.
To keep your project folders streamlined, we moved all Crashlytics data caches to OS-dependent cache locations. This way, the caches are still there, and you can access them whenever you need to. As a bonus (think free tickets to that labor day destination wedding) we also fixed a critical issue for you here, if you weren’t running your IDE with admin privileges.
Upgraded Support for Custom Builds in Gradle
Picture this: you arrive at your favorite beach, strut down the sand greeting friends, score the perfect spot near the snack shack, then drop and successfully unfurl your beach chair on the first try without the slightest hesitation. That’s the type of flawless experience we want you to have when using Crashlytics to build APKs, so we set out to improve the support for non-standard build configurations in our Gradle plugin. Because we automatically detect customizations from the gradle file directly, you don’t need to add extra Crashlytics-specific configuration params!
Here’s our internal changelog:
- Solved build processing and graphics related bugs.
Android IDE Tools
- Added a prompt for users with an expired token to re-login.
- Greatly improved the runtime performance of the plugin updater.
- Fixed a bug that can cause updates to fail in rare circumstances.
- Deployed a new WWW architecture based on modules allowing the client to request only the code required for that specific page. This should make page loads much, much faster.
We hope these updates make developing out-of-this-world apps, and the transition from summer to fall a bit easier on you. And as you pack away your miniature drink umbrellas and mentally prepare for pumpkin flavored beer you can now proudly add another Crashlytics blog post to your summer reading list. Don’t worry, we won’t tell anyone you didn’t get all the way through Infinite Jest like you had planned