Barcelona, Spain
2014
  |  By Aleix Ventayol
Rubber duck debugging allows us to discover our own coding errors by retracing our steps. Instead of relying on complex black-box tools, we simply explain our own logic until the problem reveals itself. This is one of the most straightforward debugging techniques around, and it can be easily enhanced by AI tools.
  |  By Aleix Ventayol
SonarQube is a code quality and security platform that helps teams detect bugs, vulnerabilities, and maintainability issues early in development, using static code analysis rather than manual reviews. SonarQube fits directly into modern workflows, integrating with CI/CD pipelines and development environments to continuously verify code through quality gates, dashboards, and automated checks. And in this guide, we’ll give you.
  |  By Aleix Ventayol
console.log() is a foundational tool for developers learning JavaScript. It sends messages to the browser’s DevTools console, so we can see what our code is doing at runtime. This allows us to: Because it prints information directly to the console, we can observe values, program flow, and potential issues. In this post we’re going to cover the basics of console.log() syntax, the nuances of formatting and the essential DevTools add-ons that turn console.log() from a window into a dashboard.
  |  By Sachin Siwal
Mobile crash reporting tools don’t just tell us when our app’s broken down. They help us pick up the pieces and build better next time. As such they play a vital role in our quest to deliver excellent user experience, so it’s important we choose the right tool for our team, users and operating systems. In this guide, we’ll compare the best mobile crash reporting tools in 2026, including Android-focused and cross-platform solutions.
  |  By Aleix Ventayol
A JavaScript array allows us to group related data like product names, user IDs, log entries, cart items, or API results. Arrays play a vital role in all kinds of user functions, from shopping carts to game scores. However the sheer flexibility of JavaScript arrays can also cause mistakes around mutation, copying, sorting, and searching. Soo we’ve put together this post to show you.
  |  By Aleix Ventayol
The Apple Push Notification Service (APNs) allows developers to send real-time alerts and data to Apple devices. But it can create a number of problems as your app scales including silent throttling, deep link errors and push payload incompatibility. This post will help you proactively avoid these issues. You’ll learn about: This guide is intended for developers already using push notifications or planning to operate notification systems at scale.
  |  By Aleix Ventayol
From booking flows to subscription screens, formatting dates correctly is a core requirement in almost every Android app. In this post we’ll show you how to master the specific Android date format, understand its unique features and avoid common formatting pitfalls.
  |  By Aleix Ventayol
MCP (Model Context Protocol) is an open standard that lets AI agents connect to external tools and data sources in a consistent, secure way. We can think of the MCP as a USB-C port for AI agents. This open protocol from Anthropic (the guys who built the Claude chatbot) enables AI applications to plug into external tools without any custom glue code.
  |  By Aleix Ventayol
You asked for it. We built it. Our new MCP server means you can debug directly inside your AI coding tool using real app data from Bugfender. You can use it to: It works with Cursor, Claude Code, Codex and Gemini CLI. This article will show you how to install the Bugfender MCP server, which tools your agent can access, and how the companion skills help you fix bugs faster.
  |  By Flávio Silvério
Since its debut in June 2023, SwiftData has fundamentally changed how Apple developers approach persistence. Devs the world over love it for its versatility, its declarative ease and its powerful querying system. But if you’re new, SwiftData can take some getting used to. Failures can feel less transparent and relationships can play out differently to how you might expect. So in this tutorial we’ll show you how SwiftData works and how to.
  |  By Bugfender
JavaScript dates look simple until they’re not. Here’s the second way to create a date: pass the components manually. Year, month, day, hour, minute—each as a separate number. And anything you skip defaults to zero. So you can write just the year, month, and day like this……but there’s a catch coming.
  |  By Bugfender
Learn how to use the JavaScript Date object, format dates correctly, handle timezones, and avoid common bugs with the Date and Time API. This 2025 guide covers parsing, formatting, new date formats, and everything developers need to work reliably with date and time in JavaScript. If you’ve ever seen a date shift by one day, hours changing unexpectedly, or confusing “Invalid Date” errors… this tutorial will finally make it all make sense.
  |  By Bugfender
Learn how to get the current date and time in JavaScript using the new Date() constructor. Quick tip for beginners and developers who want clean, reliable time data.
  |  By Bugfender
Every JavaScript Date object starts at one moment: the Unix Epoch. Here’s how JavaScript handles date and time, timestamps, and milliseconds.
  |  By Bugfender
When should you actually use async and await in Swift? Waiting for external data (like APIs or images) Long-running tasks (saving, processing, or calculations) Learn how to use them without freezing your app again.
  |  By Bugfender
Async runs long tasks in the background. Await pauses just one line until the result’s ready. Here’s the cleanest way to understand Swift’s async/await in under a minute — with real examples.
  |  By Bugfender
Ever tapped a button and your Swift app just froze? That’s what happens when your code runs synchronously. In this short, we break down what async and await actually solve — and why they keep your UI smooth and responsive.
  |  By Bugfender
In this video, we’ll cover async and await, real syntax examples, and the biggest mistakes developers still make. Not just theory — real examples built and tested in Xcode.
  |  By Bugfender
Learn how to animate a SwiftUI button using just withAnimation, scaleEffect, and shadow. We make the button shrink slightly on tap, then bounce back with a smooth spring animation — no extra frameworks, just native SwiftUI.
  |  By Bugfender
Learn how to navigate between views in SwiftUI using NavigationStack and NavigationLink. In this quick demo, we’ll build a button that opens a second screen — clean, modern, and ready for any iOS app. Bugfender helps developers fix bugs faster with real-time app logging.
  |  By Bugfender
Our free ebook is a practical guide to bug solving. Besides the obvious testing phase in software engineering, there are many other strategies you can follow to increase the effectiveness and reduce the cost of your Quality Assurance phase, we'll focus on those.
  |  By Bugfender
Bugfender grants you fast remote access to your applications' log files on users' devices - wherever they are in the world. Bugfender logs virtually everything, going beyond simple app crashes. It even logs when the device is offline.

Bugfender is a modern remote logger tailor-made for mobile development.

Most developers debug their apps by looking at the logs generated by their application. Usually this means connecting the mobile device with a debugging cable and looking into NSLogs or logcat.

Bugfender is a cloud storage service with an easy to use SDK that lets developers send their application logs for later use. Works for early development phases, beta testing and production applications. Bugfender unlocks the possibility to detect errors earlier, assist better users who contact your customer support and ultimately achieve an excellent customer satisfaction.

Bugfender represents a new opportunity, log collection services have existed for years on the back-end and network monitoring industry but never applied yet to mobile devices.