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
The Crashlytics team has been incredibly busy this summer supporting the explosive demand for Crashlytics for Android! Last month alone we increased our crash reporting capabilities by nearly 5x as the team worked to ensure our backend continues to support this growth. This month, while still maintaining performance and stability, we enhanced the features and functionality of our SDKs to make our crash reporting and processing even more robust and powerful.
Android SDK Enhancements – Supporting Plugins and Build Tools
We’ve worked to provide seamless integrations with the tools developers use across the Android ecosystem. This month, we released a new version of our IntelliJ plugin which provides a more powerful experience for users who build with Maven in IntelliJ. Android projects using IntelliJ with Maven scripts are now compiled through the Maven script builder within IntelliJ or through IntelliJ’s custom Android builder. We also added support for flavors and non-standard build configurations in our Gradle plugin. This added flexibility is especially beneficial for users migrating to Gradle from Ant or Maven.
We also released two updates to our Android SDK (now at version 1.0.2) that addressed some frequently-requested features and improved performance. We moved additional background initialization logic from an AsyncTask to a dedicated thread to remove competition with other AsyncTasks and further minimize the footprint of Crashlytics on your app. We further improved our logging API to better match Android’s platform logger so that you’ll see information in both LogCat and the Crashlytics web dashboard.
A More Powerful Mac App and iOS SDK
With the latest release of our Mac app, we greatly improved navigation, making it much easier for you to manage large numbers of apps and organizations. We enhanced the application to show view-based tables, improved the scrolling capabilities, keyboard navigation and ability to show or hide data. With this upgrade, we also streamlined the Mac app’s ability to detect missing dSYM files and upload them automatically.
We want to make it faster and easier for you to add any number of apps to Crashlytics. We’ve improved support for larger organizations and white-labeled apps by adding auto-configuration, which provides a more streamlined process when adding new apps.
Here’s our internal changelog:
- Updated Crashlytics custom logging to handle international character sets so developers can see logs in languages other than English.
- Improved compliance with Android’s “StrictMode” by moving an I/O operation off the main thread.
IDE Plugins and Build Tools:
- Improved API Key insertion into AndroidManifest.xml when adding Crashlytics to an app using Eclipse for Windows.
- We enhanced the Maven repository by adding this user-facing page: http://download.crashlytics.com/maven/.
- Added support for non-standard resource paths, a common feature request from developers as they moved from Maven to Gradle.
- Addressed an issue with custom key values that contain JSON or NSDictionary description content.
- Fixed an issue with app version being reported as 0.
- Crisp new artwork for your Retina MacBook.
- Increased use of push notifications resulting in much less networking overhead.
- Improved the login experience for users with multiple accounts.
- Addressed build processing bugs.
- Removed nearly all developer environment dependencies, improving functionality after upgrading or changing Xcode.
- Fixed up a number of issues surrounding our support for Xcode Workspaces.
- Improved the Crashlytics app’s ability to position itself in the menu bar.
- Added avatar icon for the currently logged-in user.
- Improved handling of multiple accounts (this is distinct from multiple orgs).
- Workaround for instability caused by the Metadata API and related to push notifications.
- Added the ‘platform’ for hooks written in https://github.com/crashlytics/crashlytics-services.
- Fixed a bug with the ‘suggested fix’ feature when using CLSLog.
- Fixed a bug with showing log lines on session details page.
- Fixed a bug with following links to the issue summary page from email notifications.
- Fixed a z-index bug on the issue summary page.
Things are really heating up this summer at Crashlytics! Last month, we launched Crashlytics for Android, adding support for developers on one of the largest mobile platforms to our award-winning crash analysis platform. This month our engineers are heads down improving stability and performance across all our systems.
Performance Performance Performance
Enhancing performance is a priority for our engineers – we’re already seeing a 3x speed increase on our dashboard! This month we began working on separating transition functionality and unifying our chrome functionality for handling anchor click interception and routing, as well as body manipulation. This allowed us to implement single load functionality, which enhances performance by performing a page reload rather than a complete refresh. You’ll now have a seamless transition when switching between apps within your org, and when changing between orgs within your account.
Since the launch of Crashlytics for Android, we’ve continued to add more features and functionality to our Android product. This month we shipped support for Gradle, Maven and Ant build tools. We want to fully support the way in which you develop, whether it’s through an IDE or integrating a secondary build tool. We delivered a customized onboarding experience with each build tool to account for the unique configuration of each tool, and to ensure a seamless integration into your workflow.
We also launched our Integrations page to highlight and celebrate the third-party integrations built by our amazing developer community!
Here’s our internal changelog:
- Improved support for Linux graphics drivers.
- Reduced output to the IDE platform logger.
- The plugin no longer creates a Crashlytics-specific resource file for non-Crashlytics projects.
- App selection page is correctly refreshed when new modules are added.
- Created our and Android SDK page and updated the iOS SDK, Real-time, Reports, and Security pages.
- Fixed redirect loop when a user changed the alias of an organization.
- Added iOS 7 icon to the issue summary page.
- Bug fixes for z-indexing problems.
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:
At Crashlytics we’re passionate about delivering an unparalleled customer experience, so we’re always looking for ways to improve and enhance our product to benefit our customers. From small design tweaks to new and improved features, we’ve been very busy enhancing the overall Crashlytics experience.
To help improve navigation, visibility and usability, we’ve enhanced our design and redesigned our menu structure by removing the header and adding side bar navigation. We’ve consolidated and reorganized the dashboard to make insights more actionable, adding more data points to the issue summary page about the number of crashes per day and a more information-dense charts, showing number of crashes over time. We’ve also improved the display of number of issues and users affected so that you can gather quick insights from your dashboard. Overall, this provides you with a cleaner, more polished experience, giving you the ability to more easily find your top issues and immediately dive deeper into fixing them.
We’ve also revamped the notes section in your issues detail page to improve collaboration between you and your team members. You can now have detailed conversations with your team right within an issue detail page, allowing your team to be more efficient at fixing issues. We’ve also added autolinking of URLs pasted in this section, giving you the ability to include links to your ticket tracker and jump right into them.
Here’s our internal changelog for our Crashlytics Web app:
- Improved account settings to be more inclusive, with drop down tabs, making it easier to manage your apps, orgs and account
- Added platform identification for your app to be shown in both the URL header and in the UI
- Updated highlighting in stack frames to reflect whether it’s your code or from third-party code, to help you zero in on the cause of the crash
- Streamlined the onboarding process to make it faster and easier to get up and running
- Improved layout of device state information on session details page for more actionable insights
- Added suggestions on the issue summary page for how to fix issues with your code when using our custom logging features
- Added tooltips for longer issues names on issues list page
- Created a new login experience for web dashboard using CSS3 transitions
- Dedicated a new tab on our side bar for direct access to our support channel
- Added feature sniffing for browsers (warns if your browser is out of date) and added better error message handling for browser failures
Posted by Kristin Dziadul on May 22, 2013 in Event, Featured
After our blow out bash last year, we decided to do it again! Tons of Crashlytics users will be there, including many of the top mobile app developers. The party will be at Chambers Eat + Drink, where we’ve reserved the pool patio as well as the indoor area for the night. Come and have drinks at any of our three endless bars — on us. Learn more about our infamous WWDC party.
Demand is high so make sure you reserve your spot ASAP!
- When: June 10th from 8pm – 11pm
- Where: Chambers Eat + Drink
- How: RSVP here