Fabric + Firebase: Now stronger together

by Rich Paret, GM, Fabric

DevSummit-Banner-blog.png

Since joining forces with Firebase early this year, we’ve been working closely with our new teammates on the same mission: helping you build apps, understand your users, and grow your business. We want to combine our unique strengths to give you access to better tools and infrastructure, all while continuing to upgrade Fabric. That’s why in May at Google I/O, we upgraded Digits to Firebase phone authentication and launched more features for Fabric.

After I/O, the Fabric + Firebase team have been working hard to integrate our two platforms - with the goal of bringing you the best of both in a thoughtful way. Today, we have some more news to share with you. Check it out:

Upgraded Fabric

As we work on integrating Fabric and Firebase, we're still continuing to improve Fabric. We started by officially releasing crash insights out of beta, so you can triage and resolve issues faster than ever before. Additionally, we launched fastlane precheck to help you avoid unnecessary delays from the iOS app store. We also built a new tool called snapshot in fastlane, which automagically generates app screenshots for all of your devices at the same time.

Crashlytics is now available on Firebase

Eliminating crashes is crucial to improving user experience. That’s why today at the Firebase Dev Summit, we unveiled a beta version of Crashlytics in Firebase to give Firebase developers access to our market-leading crash reporter. Firebase Crashlytics has the core crash reporting features of Fabric’s Crashlytics, but it also includes integrations with other Firebase tools. For example, Firebase customers can use Crashlytics to power custom workflows and get alerts about stability issues that impact a critical app flow (i.e. a payment flow).

Right now, Firebase Crashlytics is still in beta, so there’s no need to switch over if you’re happy with Crashlytics on Fabric. We plan to release more integrations over the coming months and make Crashlytics as awesome on Firebase as it is on Fabric in the future - stay tuned :)

Better together

Over the past months, we’ve been encouraging you to use both Fabric and Firebase since the two platforms are stronger together. Some of you have already started using Crashlytics with Firebase tools, which has been incredibly exciting to see. For instance, Doodle, an app that brings people together, used Crashlytics with Firebase Remote Config to redesign their app and improve engagement by 42%. Learn more about how they did it here:



Additionally, we have started to incorporate what you love about the Fabric dashboard into Firebase. Today, we helped launch a new dashboard experience on Firebase, which begins with a mission control and a new left-hand navigation bar similar to Fabric:

We also helped release a new analytics dashboard that is organized around the questions and tasks that you tackle on a day-to-day basis - with similar traits to Fabric’s dashboard we launched early this year. And much like Fabric’s “Latest Release” dashboard, Firebase now includes a similar section under their analytics as well as real-time data on crashes and active users.

If you’re already using Firebase, these updates will be rolling out over the next few weeks (you can get early access here). We hope these updates are helpful to you, and we’re actively working on giving you one place to build, understand, and grow your app in the future!

Celebrating with the community

We love celebrating with our passionate community. Kristen Johnson (Product Manager, Fabric) shared the new Firebase Crashlytics with many of you during today's Firebase Dev Summit. We also hosted these technical sessions:

  • “Automating your app's release process using fastlane” - by Felix Krause (Creator of fastlane) and Josh Liebowitz (Fabric Engineer)
  • “Building high-quality apps with Crashlytics and Firebase Performance” - by Jason St. Pierre (Product Manager, Fabric)

We hope you enjoyed our conference and found it helpful. If you couldn't make the event this time, check out the recordings for our keynote and technical talks!

Onwards,

-


Fabric + Firebase: Building momentum together

By Rich Paret, GM, Fabric

Fabric + Firebase: Building Momentum Together

It’s been an exciting four months since we joined Google to work alongside our friends at Firebase. We teamed up for two reasons: 1) By joining forces, we can combine our unique strengths and give you access to better tools and infrastructure. 2) We’re driven by the same mission, to help teams build apps, understand their users, and grow their business.  

So, what have we been up to in our new home, with our new teammates?

Continuing to improve Fabric

As always, our customers are our top priority. Over the past few months, we’ve been hard at work shipping awesome improvements for Fabric. For example, we recently introduced the new Fabric dashboard to align your app’s data with your top goals. We also made it easier to monitor retention in Fabric, added new sharing functionality to Fabric’s iOS and Android app, and launched a beta version of crash insights. Insights surfaces underlying problems causing your crashes and gives you resources to solve them faster. Plus, we traveled all over the world to show you how to supercharge your app release process with fastlane.

Integrating with Firebase

Many of you have asked us how the integration with Firebase is going. The short answer is: it’s going great! We’re learning a ton from each other and we’re marching towards the same goal, which is to bring the best of our platforms together, in a thoughtful and seamless way.

Today, you can start to see some of the fruits of this labor. We’re going to make Crashlytics the flagship stability solution for Firebase, so if you don’t already use it, we recommend installing it and checking it out. In addition, Digits is being upgraded to Firebase phone authentication, which is the next evolution of phone number identity and authentication.

Better together

Fabric and Firebase are stronger together, so we encourage you to use both of our platforms. In due time, we’ll bridge the gap and give you one place to build, understand, and grow your app.

We’re working on solving the biggest mobile challenges so you have more time to innovate and do what you love.

You can count on us to make app success simple.

Join us at I/O and WWDC

As we go forward, fueled by the same mission, we also want to celebrate with our passionate community.

If you’re at I/O, join us on May 18th at 10:30 am PST for a fireside chat with myself (Rich Paret, GM, Fabric), Andrew Lee (Co-founder, Firebase), and Jason Titus (VP of Engineering, Google Developer Platform) as we discuss joining Google, recent launches, and talk more about what’s next. Throughout I/O, we’ll also be hanging out at the sandbox area - ready to listen to your feedback and answer any questions you have.

Next month, we’re co-hosting a party with Firebase at WWDC and we’d love to see you there. Request an invite on our event website.

Come say hello, we can’t wait to see you!

-


Fabric is Joining Google

by Rich Paret, VP of Engineering & GM of Fabric

When we launched Fabric in 2014, our goal was to provide the best tools to help developers create amazing apps. Since then, Fabric has evolved from a suite of tools for mobile developers to a powerful platform that helps entire teams build better apps, understand their users, and grow their business. In just two years, Fabric has grown to reach 2.5 billion active mobile devices, and Fabric's Crashlytics and Answers kits were recently recognized as the #1 SDKs for app stability and analytics. We are incredibly proud of the products we have built and grateful to this community of more than 580K passionate mobile developers.

Today we enter the next chapter for Fabric and are pleased to announce that we’ve signed an agreement for Fabric to be acquired by Google and for our team to join Google’s Developer Products Group, working with the Firebase team.

When we met the team at Google we quickly realized that our missions are the same - helping mobile teams build better apps, understand their users, and grow their businesses. Fabric and Firebase operate mobile platforms with unique strengths in the market today. We’re excited to combine these platforms together to make the best mobile developer platform in the world for app teams. Fabric customers: there’s no action you need to take in order to keep using these products. You can preview the new terms of use that will apply when the transaction is closed.*

We love our customers and are excited to continue to offer world-class developer products to all of you in this next chapter. Thank you all for being a part of this adventure with us! You can read more about today’s announcement on Google’s blog.

-


*When the acquisition is complete, Google will begin providing Fabric, Crashlytics, Answers, and associated beta products under terms that you can preview here. During a transition period, Digits will continue to be maintained by Twitter under its existing terms. If you have any questions or need support for Digits, please ping the Twitter Community forums as usual. If you use any of the Answer’s Enhanced Features Set, such as Audience Insights reporting, those features will continue to be available to you leveraging Twitter data under our Enhanced Features Agreement found here. If you do not wish to continue receiving any of these services, you can stop using them or terminate your agreement before the acquisition is completed, as described in your current agreement with Twitter.

Fabric lands top spots for app analytics, stability, and monetization

by Annum Munir, Product Marketing Manager

Fabric is #1 for app analytics, stability, and monetization

About a year ago, we were thrilled that Fabric’s stability solution, Crashlytics, was ranked the #1 most implemented performance SDK by SourceDNA. Shortly afterwards, SourceDNA also named our analytics offering, Answers, the #1 most implemented mobile analytics SDK on iOS! Since then, we’ve rolled out new features like out-of-memory (OOM) reporting to extend stability coverage, activity segments to give you insight into user retention, and unveiled a growth dashboard to provide a real-time snapshot of app growth.

As 2016 comes to a close, we’re excited to share that Fabric has once again earned top honors in stability, app analytics, and now: monetization.

A few days ago, an up-and-coming mobile intelligence startup, MightySignal, released a report highlighting the most-used SDKs across millions of mobile apps. We were delighted and humbled to be recognized in the following categories for the top 200 free iOS apps:

  • Fabric’s Crashlytics is the #1 stability SDK
  • Fabric’s Answers is the #1 analytics SDK
  • Fabric’s MoPub kit is the #2 monetization SDK

With Fabric, we symbolicate over 1000 crashes per second to help customers identify, prioritize, and resolve stability issues that have the biggest impact on their app quality. Thank you for continuing to trust us to improve your app experience!

Last year, Fabric’s Answers was distilling data from 150 billion app sessions every month to help you understand your users. Now, we’re processing over 310 billion sessions every month

As we’ve scaled, we’ve loved hearing from our customers about how insights from Fabric’s dashboard helps them engage and retain users.

Time is precious as an indie dev, and Fabric gives me high level user metrics with no extra work on my part. Now I know when retention is a problem in my apps.


Finally, MightySignal’s data also shows that Fabric’s monetization solution is the second most widely implemented monetization SDK - trusted by many of the top 200 apps to turn their app into a thriving business.

We launched Fabric in 2014 as a suite of tools to help developers build the best apps. We’re excited to have grown to become the most trusted platform for app stability, analytics, and monetization in the world. In 2017, we’re looking forward to building and expanding on this platform to supercharge app development teams.


On a final note, we wanted to thank our customers for your incredible support and feedback. Every day, your passion, innovation, and hard work inspire us. Our mission is to make it easy to build apps, understand users, and grow your business - and we can’t wait to work with you to make Fabric even better in the New Year!


Check out MightySignal’s full report of the top SDKs here.

Building an energy-efficient analytics SDK for iOS

By Stephen Panaro, Software Engineer

The primary goal of any analytics SDK is to gather accurate data. Answers goes a step further by putting an equal focus on timeliness. Correct analytics are one thing, but tracking them in real-time is a super power. Is your latest release stable and well-adopted? Is your 24-hour sale driving more purchases? We’ll give you the answer immediately so you can take appropriate action. To deliver this real-time insight, we have to pay special attention to how we design Answers for iOS, tvOS, and macOS.

Low power as a feature

We could have built Answers to make a network request for every app event as it happens. This would have been the most timely SDK, but it would have also drained battery life. Or, we could have designed Answers to collect large batches of events and sacrifice all timeliness for great battery life. Instead, we took a balanced approach in between these two extremes. It has served Answers well, but we wanted to revisit our implementation to see how much better we could make it.

With Answers 1.3 for Apple platforms, we introduced several new power optimizations throughout the SDK. We prioritized application performance and user battery life while keeping latency as low as we could. In some cases, these optimizations produced significant power gains. This allowed us to have a large impact on battery life with a negligible aggregate impact on Answers’ latency. In the next section, we’ll walk through some of the improvements we made to enable these gains.

Limit networking

First, we turned our focus to Answers’ networking. Networking can have a substantial power impact, which made it a great place to look for optimizations. A simple way to reduce its impact is by limiting the number of requests you make. Answers has always done this by sending data in batches. For our latest release, we try even harder to ensure that app events that occur close in time to each other are sent in the same batch. This is most beneficial for heavy users of Answers Events, especially when events are logged in bursts. We also tuned our retry policy to help prevent us from making requests that are unlikely to succeed.

Background uploads

It’s impossible to talk about power-efficient networking without mentioning NSURLSession’s background uploading capability. We’ve used this capability for several years in crash reporting and seen really good power and reliability wins, so we wanted to bring those to Answers. Unfortunately, we found some issues with the background uploading API in iOS 10. Because of that, it is currently only suitable for extremely low volume networking. We hope to enable it in a future release when these issues have been addressed.

Low power mode

Next, we took advantage of NSProcessInfo’s lowPowerModeEnabled property, which notifies apps when a device enters low power mode. Introduced in iOS 9, this is a very strong indication that the user wants battery life to be maximized. When devices are in low power mode, Answers retries network requests less frequently. On macOS, we take similar action when thermal conditions are elevated. This is an easy way to further reduce our power impact, and is particularly effective when networking conditions are poor. We also have plans to expand our adoption of low power mode to other parts of the SDK.

Quality of service

In addition to the low power mode API, we also adopted two easy to use APIs to better inform the OS of the priority of Answers’ work. First, we made sure to set the qualityOfService property of our NSOperationQueues. This was a one-line change and makes sure that Answers always defers to your app’s needs. We also made extensive use of NSProcessInfo’s activity APIs to help the OS understand what we’re doing and how our work should be prioritized. As an added benefit, this makes it more obvious what Answers’ threads are doing if you happen to catch them in a debugger.

Optimized timers

Finally, we wanted to improve our usage of timers. Answers has always relied on timers because we have to make sure we periodically relay any events back to our system. In this release, we updated our timers to fire less frequently. We also now choose a timer’s tolerance value based on its duration to help the OS schedule work more efficiently. On macOS, we’ve adopted NSBackgroundActivityScheduler. This is similar to a timer but takes into account even more system conditions when scheduling work. We discovered this API while reading Apple’s Energy Efficiency guidelines, which has many other useful tips.

Same Answers, more battery

When we started to plan for Answers 1.3, we knew improving energy efficiency and satisfying Answers’ design goals would be challenging. Being accurate and being real-time are inherently power-hungry, but they’re essential to Answers so we were determined to find a solution.

We stepped back, took a holistic look at Answers and identified our best opportunities for improvement. Fortunately, there was a large overlap between the problems we wanted to solve and the problems that Apple supplies a solution for as a part of iOS. This was fantastic on two fronts: it let us write less code and in many cases, it unlocked optimizations that wouldn’t be possible otherwise.

We’re thrilled with how this approach turned out and are even more excited to share these changes with you in the latest Answers release. We hope that this makes it easier for you to build the best apps with the lowest impact on your users’ battery.

If you’re interested in further reducing your app’s impact on battery life, we encourage you to incorporate these best practices into your development workflow. Most are simple to learn and implement and the more apps that adopt them, the greater impact they will have. Plus, no one wants their app to be at the top of the battery section as the worst offender in Settings!