Systems | Development | Analytics | API | Testing

Bugfender compatibility with SwiftUI and Project Catalyst

When Apple introduced SwiftUI back in July we immediately knew it was going to generate a lot of expectations. As app developers ourselves, we are very aware about the complexity of User Interface development in iOS. UI has been keeping apps especially expensive and error prone along the years. Many frameworks were created to improve this situation like ComponentKit, Texture or even React Native.

Bugfender Growth: from side-project to a sustainable $20k MRR business

It’s nearly five years since we started Bugfender as an offshoot of our software company Mobile Jazz. We’d gotten tired of chasing users who were experiencing problems with our apps and wanted to build an internal remote logging tool that would feed the information straight to us. It really was a garage project back then. We were running code sprints on our own time, so we wouldn’t have to dig into our savings. But we soon realized this could be much more than an internal experiment.

Conditional breakpoints: How to Debug iOS and Android apps from Zero (Part 2)

Conditional Breakpoints and their variants, Exception and Symbolic Breakpoints are powerful tools for advanced debugging, applicable to both iOS and Android. We’ll explore them in this article. In the first post of our How to Debug from Zero series we learnt the basics of breakpoints. At this point, you should know how to add a new breakpoint and how to use the “step over”, “step in” and “step out” commands.

Updates from Bugfender Q2, 2019

Welcome to the Bugfender summer newsletter. Over the past few months you may noticed a few improvements to Bugfender’s web app, if not, we’ve summarised them here and you should go and check them out. The machine learning algorithm, which solves problems without requiring detailed instructions, is one of the most exciting technologies on the planet.

Reactive X: RxJava Data Flows: Observable, Flowable, Single, Maybe and Completable

Reactive programming is a programming technique for asynchronous applications that lets you structure your code based on “reaction” to data input changes instead of an imperative programming style where you have to poll or block and wait for changes to happen. If you’re not 100% familiar with ReactiveX (RxJava being the implementation for the JVM), perhaps you know Java Stream, which is a similar concept introduced in Java 8.

How to Gather Data for Machine Learning

Unless you’ve been living in a cave these last few months (a cave that somehow carries sufficient WiFi coverage to reach our blog), you’ll doubtless have heard about machine learning. If you’re a developer, chances are you’re intrigued. The machine learning algorithm, which solves problems without requiring detailed instructions, is one of the most exciting technologies on the planet.

Firebase Crashlytics and Bugfender: a Step-by-Step Integration Guide

Ever since we started logging with Bugfender back in 2015, we’ve been working towards integration with Firebase, the app development platform created by Google. Firebase is famous for the breadth of its integration libraries and millions of people use the product around the world, drawn to its sleek UI and range of features.

How to Fix Crashing Apps on iPhone and Android: A (Non) Developer's Guide

If you’ve got an app that keeps going down for no apparent reason, don’t worry: this quick and easy guide will give you the tools to get it up and running smoothly. If you’re not from the tech world yourselves, you probably think us programmers get everything right all the time. That everything in our world is so cutting-edge it can slice through ice, and app crashes are practically an alien concept for us.