Learn from app makers: How Levi Bostian used Fabric & fastlane to scale

By Todd Burner, Developer Advocate

Learn from app makers

In this series, we feature customers that have used our platform in an innovative way. For this installment, we chatted with freelancer and indie app developer Levi Bostian, who uses Fabric and fastlane to scale his one-person development shop.

Levi Bostian is a native Android and iOS app developer from Cedar Rapids, Iowa, who spends his days building apps for a rotating set of external clients. As a one-man app development shop, he needs to set-up a streamlined development process so he can focus his attention on client work without being bogged down with tedious tasks. But since Levi is extremely busy running his business, he doesn’t have much time to learn complicated new tools. Let’s learn more about Levi, his work, and his experience streamlining his development process.

Levi's workstation

Levi's workstation

What types of apps do you work on?

"I am a freelancer building native Android and iOS apps with Node.js APIs for startups. I’m also an indie developer building my own apps like Your Circle, a virtual support group app for cancer patients. In the past, I have built social media, mobile banking, beauty, manufacturing, and music streaming apps as well as apps that connect to Arduinos. I have also worked with Google, Salesforce, Jack Henry and Associates, and a dozen startups on their apps. I love the variety of apps I get to work on."

What challenges have you run into as a freelance developer?

"Because I work with external clients, I distribute a lot of builds for many separate apps. My biggest pain point has been distributing beta apps as I make incremental changes and add testers. Every time I need to beta test a new build, I have to update the provisioning profile, update beta testing devices, build and sign the app and then distribute it - which is a lot of steps. This gets repetitive and is very error prone especially since I don’t have access to the users’ devices for troubleshooting. I need to get everything right the first time."

Finding fastlane

Levi was looking for a way to automate the distribution of these daily beta builds to each of his clients. For a while, he tried to script the signing and distribution steps on his own, but it required too much maintenance to keep up and running. After talking to some friends, he learned about fastlane. fastlane is an open source toolset that automates app deployment. In other words, it does the heavy lifting of streamlining code signing, distribution, and more. While Levi was already using Fabric to distribute beta builds and monitor app stability, he decided to try using fastlane to speed up distribution of his native Android and iOS apps to his external customers.

When did you first start using fastlane?

“I was using Crashlytics Beta, which is part of the Fabric platform, for my Android and iOS beta testing because  it makes adding new testers and managing versions very easy. I had been manually uploading builds using the Fabric plugin, but with my business growing, I also needed a way to automate the build, signing and deployment process. It was getting really hard to manage all of the provisioning profiles and devices registered to each app.

After many headaches with code signing, I decided I was going to get fastlane setup and I did.  Whoa! It handles the code signing and building steps and also lets me automate the submission of the beta app after those are done. It saves me tons of time, which I can now use to focus on building apps! I’m so glad I picked it up!”

What was your initial reaction and experience?

“I was blown away by how easy it was to get up and running. The documentation on GitHub is very thorough and you can generate everything you need on the Fabric site. The first time I ran 'fastlane run crashlytics' it distributed my app with a few simple inputs. That’s when I knew I had found something great!"

Growing & scaling with fastlane

Now that Levi has used fastlane in more than 10 shipped projects, he's uncovered new, creative ways to use our toolset to scale his business and make working with external clients easier.

Now that you’ve been using fastlane for 8 months, how has it impacted your development process?

“It’s been saving me so much time. I’ve been able to take on more work and do more side projects. I love it! And in addition to distributing my beta apps, I’ve been gradually adopting other fastlane tools too.

For example, I just started using match. Match saves me the headache of creating and syncing a huge amount of provisioning profiles. I really dislike dealing with those manually and using match in fastlane to manage all your apps, devices, certs, profiles all via a git repo is magic. I want to give fastlane a big kiss for all it does for me there.

I’m also delighted by how I can configure fastlane to be a hands free build system. I have my iOS and Android Fastfiles setup with parameters so that when I run a fastlane action, it doesn't require any work on my end. It just runs in the background and does all the hard work for me. I can spend my time working on features instead!”

Did anything else about fastlane surprise you?

“The amount of Android support. Initially, my friend told me it was just for iOS but after poking around, I realized I can do so many things with it in Android too! Outside of distributing betas, I’m able to manage Play Store metadata and APK uploads and I even use it to run gradle tasks. I use it for complex tasks, such as building versions of my app via gradle and releasing those builds to Crashlytics, as well as simple tasks, such as running gradle clean. It’s much easier to type "fastlane install" rather than "./gradlew installDevelopmentDebug."

What resources do you use to get help with fastlane?

“There is a very active GitHub community for support and bugs. I’ve thought about contributing code to the project as well, but fastlane has everything that I need at the moment. When the time comes, I will make sure to do so - and I would be happy to be a part of it. The product is so rock solid and it would be an honor to help out.”

Looking forward

By using fastlane and Fabric together, Levi has been able to successfully scale his business without needing to hire additional help. He’s quickly become a power user of fastlane and wants to explore the many more fastlane tools.

How has your use of Fabric & fastlane evolved over time?

“I started by only using Fabric to distribute beta builds, then added fastlane into the mix. Now, I’ve been gradually adding a bunch of other fastlane tools to my flow. I use match for iOS and the gradle action heavily for Android.

Today, all projects that I build (or apps that I make some updates to) I install fastlane right away. I distribute 5 - 8 beta releases a week for both (Android and iOS) apps. By using fastlane in conjunction with Crashlytics Beta, I have way fewer headaches because I have the fastfile fully configured to ask for no input. One command and within 3 - 8 minutes a build is out to my client.

One of my products I mentioned earlier, Your Circle, is a white labeled app. All of its builds share the same code base with nice theming added to each. I have fastlane setup so that I can build and release updates to all of the white labeled apps with 1 command. Plus, I use fastlane to generate all of the separate icons for each white labeled app target. So awesome! All commands, certificates, list of devices, synced via Git with the project. I have no idea what I would have done if I didn’t have fastlane to distribute this app.

Your Circle app

Your Circle app

Since adding fastlane into my workflow, my client relationships have greatly improved because I’m able to sync everything I need into my git repo so that it’s contained in the project. This helps me keep track of my code and metadata in the same place, makes it easier to communicate updates to clients, and speeds up releases.”

Are you thinking about trying any other fastlane tools?

“Taking screenshots for the app stores is something I hope to try soon. I plan to set up fastlane up to a CI so it can automatically take screenshots for me in the background and make it a hands-off process. I’m excited about the potential there.”

What advice would you give to new fastlane users?

“Come into fastlane with an idea of what you want the toolset to do for you. Do not get overwhelmed by the dozens of plugins and actions it provides, come in with a game plan. If that is to sync your provisioning profiles with your team, start there. It's easy to add to your configuration at any time, but just start with one problem to solve and get to it.”

Join us at the Firebase Dev Summit 2017 in Amsterdam!

By Frank van Puffelen, Developer Advocate

We’re excited to announce that the registration for the Firebase Dev Summit is opening today!

Please join us in Amsterdam on October 31st for a day of talks, codelabs, and office hours, as well as (of course) an after-party.

I had a blast at last year’s Dev Summit in Berlin

I had a blast at last year’s Dev Summit in Berlin

Three months ago, thousands of developers joined us at Google I/O to hear about improvements to the Firebase platform, like Performance Monitoring, Phone Authentication, and our newly open sourced SDKs. We haven’t slowed down since then and now we’re excited to bring the Firebase and Fabric teams to Amsterdam to talk about a bunch of new announcements, as well as hear your feedback on how we can improve Firebase to help you build even more extraordinary experiences for your users.

Registration is now open, but keep in mind that space will be filled on a first-come, first-serve basis, so make sure to request an invitation today.

What is the Firebase Dev Summit?

The Firebase Dev Summit is full day event for app developers that will focus on solving core infrastructure and growth challenges in app development. We’ll have deep dive sessions, as well as introductory overviews, so all levels of Firebase familiarity are welcome!

We also want you to get your hands dirty with Firebase. You’ll get a chance to put your new knowledge into practice with instructor-led codelabs, as well as ask our team any questions you have at our #AskFirebase lounge.

The day isn’t just about us talking to to you, though. Our product managers and engineering team (including me!) are excited to meet you in person and hear your feedback about what is and isn’t working in Firebase. Our community is what makes Firebase great, so we couldn’t be more excited to get your help in shaping the future of Firebase.

As a native Dutchie, I’m thrilled that we’ll be combining two of my favorite things at the Dev Summit this year: Firebase & The Netherlands! If you’ll be traveling to Amsterdam for the conference, I highly recommend you stay an extra day. Take a canal tour, visit one of the many museums, rent a bike, or just take a stroll and say hi to a local. We’re friendly, I promise :-).

We’re looking forward to meeting you in person. Dank je en tot gauw!

This post originally appeared on the Firebase blog.

Launching crash insights: tackle and triage stability issues faster

By Jason St. Pierre, Product Manager

By now, every mobile team in the world knows that building a stable app is not a key to success - it’s a necessity. That’s why it’s critical to include a powerful crash reporting tool in your mobile arsenal. We’ve spent years helping you understand how stability issues are impacting your app and highlighting additional information about those issues. As the leading app performance SDK, we’re proud to continue our commitment to taking stability to a whole new level.

At Google I/O back in May, we announced a beta version of crash insights, to help you understand crashes better by giving you more context and clarity on why those crashes occurred. Since then, we’ve gathered feedback on what types of insights are most critical to you and greatly expanded our coverage of problems. Some of you have even submitted your own ideas for insights!

Today, we’re excited to officially release crash insights out of beta. Now, you can triage and resolve issues faster than ever before, giving you more time to focus on enhancing your app’s experience.

What is crash insights?

Crash insights makes analyzing crashes easier. The first component of crash insights leverages our massive scale and processing power to centralize valuable information and provide you with troubleshooting resources to tackle and triage stability issues faster. Second, crash insights highlights potential root causes that are common across multiple issues to save you time and speed up your workflow.

Together, these two components shed light on underlying problems that are causing a variety of crashes, and illuminate next steps.

Fabric has become an essential part of how we track and understand crashes within our mobile apps at Hudl. In the few weeks that we've been working with crash insights, it's been quite helpful on a few particularly pesky issues. The description and quality of the linked resources makes it easy to immediately start debugging. Insights is a welcome addition to the Fabric toolbox, and we can't wait to see what they come up with next.

Understand the cause-effect relationship between underlying problems & crashes

For years, Crashlytics has helped teams stay on top of stability by grouping an avalanche of crashes into more manageable issues. Now, we’ve taken this a step further. Crash insights examines your list of issues, unearths the commonalities, and identifies the potential underlying problem - like an SDK bug, API misuse, OS issues, etc. Our goal is to help you better understand the cause of your crashes. By grouping crashes by their causality and providing additional context, Crashlytics shows you the aggregate impact a root problem is having on your stability. Equipped with this insight, you can make a more informed decision on what action to take.

For example, this cause-effect grouping can reveal things like, “I didn't realize how widespread incorrect UIKit rendering was in my app. I should fix that as soon as possible.”

Quick access to collective knowledge & domain expertise

Whether you’re a newbie developer or a seasoned software veteran, your unique development experience has impacted your depth of knowledge on certain issues. You might be well-equipped at deciphering low level issues, but find it tough to keep up with the latest breaking changes from your external dependencies.

Now, as you may have already noticed, a green lightning bolt icon will appear beside all issues that have a corresponding insight available - and clicking on this icon will reveal the actual insight. The goal of these insights is to help you solve known problems faster by providing additional context, serving as a starting point for investigation, or by influencing triaging.


Crashlytics comes with solutions, not problems

We built crash insights to elevate the role of a crash reporter from the bearer of bad news (“FYI: your app is crashing”) to the provider of solutions (“Here’s where you should start”). Our goal is to help you better understand the cause of your crashes so you can drastically reduce the time it takes to resolve issues.

Today’s launch is the first step in redefining the way teams triage and tackle stability issues. We will continue to invest in this goal and evolve Crashlytics based on your feedback. We’ve already heard from many of you, and we can’t wait to get more feedback!

5 reasons to set up events in Fabric

By Shobhit Chugh, Product Manager


You’ve probably heard the famous saying, “Actions speak louder than words” many times before. This idiom means a person’s behavior tells you more about them than what they say - and this sentiment holds true in mobile too.

The actions your users take inside your app shed light on how engaged they are and how intuitive your user interface is. This information is vital to retaining users, improving your app, and growing your mobile business. Fabric makes it easy to track user actions and other important in-app events, so you can see how people interact with your app in real-time.

Here are five reasons why you should instrument events in Fabric and what you can learn by doing so.

1. Events illuminate in-app user behavior and patterns, so you can take the right action

Events track a wealth of user actions - including in-app purchases, content shares, logins, etc. to help you understand how people use your app, what actions they take most (and least), and if user behavior is changing week over week. Events can also provide additional context, color, and insight into trends about each action in the form of attributes. For example, news and media apps can learn which content is most popular by instrumenting Fabric’s “Content View” event with supporting attributes like content name and content type. The “Content View” event will tabulate each time a piece of content is viewed, while the attributes will help you pinpoint the most popular one.

In Fabric, you can find all of this information (and more) by clicking into the event page from the new dashboard.

Let's review the main sections of the event page.

The first row of graphs gives you raw counts.

The second row of graphs tells you the average number of times each user has completed this event today, and what percent of your total active users have taken this action.

These graphs reveal interesting user engagement trends. For example, if you manage a social media app and you notice that a smaller percentage of people are sharing things, you may need to run marketing campaigns to encourage sharing and boost engagement.

As you scroll down the event’s page, you’ll see that each event attribute has its own chart.

These charts highlight the top 10 values of the attribute over a 30 day period.

For example, if the event you are looking at is “Sign In” then a corresponding attribute could be “Sign In Method.” The top 10 section would list which log-in methods are used most (for that particular day), such as Facebook, Twitter, email address, etc.

Finally, Fabric provides audience insights for every event

For instance, this chart can answer questions like, “Do people with interests in politics tend to log in more often?” or “Do females tend to share more on social media?”

2. You can set a key performance indicator to track your most important in-app action

Although you can instrument up to 3,000 events in your app, there is probably one key event that matters most to your business. For example, an ecommerce app’s KPI (key performance indicator) will likely be “Purchase” while a gaming app’s KPI could be “Level End.” Fabric allows you star this event as your key performance indicator so it appears prominently in your dashboard and across other areas of the platform. Setting a KPI makes it easy to see how your app is doing at a glance. When there are major changes to your KPI, we’ll let you know immediately by highlighting them.

Pro tip: As a general rule of thumb, your KPI should be the ultimate in-app action you want users to complete - this is the action that has the biggest impact on your app’s success.

3. By instrumenting events, you can unlock new insights within the platform

In addition to learning how users are behaving in your app, you can also unlock new insights across other areas of Fabric’s platform by setting up events and picking a KPI. On the growth page, you’ll start to see what percent of new users are completing your KPI. If you allow purchases within your app and you set up the purchase event, you’ll get a dedicated revenue tile in your Fabric dashboard that tracks how much money you’re earning daily.

4. We’ll guide you through the set-up process

Now that you know how events can illuminate user behavior, you’re probably wondering how to set them up. Don’t worry - we’ve made this process easy! When we launched events a few years ago, we listened to your feedback and examined our data to identify a set of core actions that a majority of app teams want to track. Then, we built a guided set-up process so you can start tracking these core events quickly, straight from your Fabric dashboard.

We even provide recommendations for which events might be worthwhile to track and outline their corresponding attributes. Here’s a sample of these predefined events and their suggested attributes:

  1. E-Commerce apps → Add to cart, Start checkout,
  2. PurchaseContent apps → Content view, Share, Search, Rating
  3. Gaming apps → Level start, Level end
  4. All apps → Signup, Login

5. You have the flexibility to create custom events

We realize that apps may want to track unique user actions, so in addition to the core events listed above, Fabric also gives you the option to instrument custom events and custom attributes (we accept both numeric and string attributes). For example, if your app is available in many different countries, you could use a custom event to track keyboard setup with a custom attribute of language. This would help you understand your users’ geographic dispersion and preferred language of communication.

Pro tip: You can also use custom events to set up negative event tracking. For instance, a sports app could track when users are unable to view videos because they encounter a playback error. This type of event tracking would help unearth backend or network issues.

Get started with Fabric events today

Fabric events help you understand what users are doing inside your app in real-time, so you’re empowered to nurture the right behavior and keep people engaged. It’s easy to get started with events - here are our best practices on how to set them up correctly.

Introducing fastlane precheck: Submit your app to the app store with confidence

By Joshua Liebowitz, Software Engineer


We’ve all been in this situation before: you work tirelessly to build a great app, you spend countless hours beta testing and fixing bugs, and you even put together a comprehensive marketing plan in time for your app’s launch. Months of anticipation finally culminate when you submit your app to the app store… but instead of celebrating the new release, you find out that your app didn’t meet the right criteria for listing so it got rejected 😱.

There’s nothing quite as deflating as tripping at the finish line.

App store guidelines can be complicated and hard to remember because they’re constantly changing, but developers still need to follow them in order to get their apps approved. Sometimes, these guidelines get overlooked or lost in the shuffle of all the other important pre-launch tasks. To help you avoid unnecessary delays and rejection, we’re excited to introduce fastlane precheck for iOS apps! You can count on us to remember the rules so you can submit your app with confidence.

Review your app in seconds to save days of delays

Often, apps get rejected from app stores because of simple, solvable issues with their metadata (such as title, description, changelog, keywords, etc.). Once rejected, you have to resubmit your app and it can take days before it’s reviewed again. This wastes time and can throw off your schedule.

Instead of risking rejection or painstakingly auditing your own metadata, you can now use fastlane precheck to save you the time and hassle. fastlane will review your app for the most common causes of rejection 👍.

For example, we’ll check your metadata to ensure it follows iOS app store rules such as:

  1. No other platforms are mentioned in the description
  2. There are no curse words in your copy
  3. No placeholder text is left
  4. No URLs are broken

If we detect any issues, we’ll flag them for you so you can resolve them before you submit your app to the app store. And since fastlane can automatically download your app’s metadata, this whole process takes only seconds!

fastlane precheck in action

More exciting things ahead

fastlane precheck is the first new tool we’ve added to our app automation toolkit since joining Google - and we have even more exciting updates planned! Now that we’ve settled into our new home, we can’t wait to move fastlane forward with our passionate community of iOS and Android developers.

In the meantime, install fastlane or update your version of fastlane (just run 'fastlane update_fastlane') to try precheck and submit your app with confidence and peace of mind 🚀.