# Firebase

Published articles for Firebase.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## The Original Serverless Architecture is Still Here

DevFeed: [The Original Serverless Architecture is Still Here](<https://devfeed.tech/articles/the-original-serverless-architecture-is-still-here-27398.md>)

Original publisher: [Read original article](<http://engineering.khanacademy.org/posts/original-serverless.htm>)

Author: Khan Academy

Published: 2018-05-31T22:00:00Z

Content type: opinion

Language: en

Sources: [Khan Academy](<https://devfeed.tech/sources/khan-academy.md>)

Topics: [serverless architecture](<https://devfeed.tech/topics/serverless-architecture.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Orchestration](<https://devfeed.tech/topics/orchestration.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>), [DynamoDB](<https://devfeed.tech/topics/dynamodb.md>)

Tags: [amazon](<https://devfeed.tech/tags/amazon.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [containers](<https://devfeed.tech/tags/containers.md>), [docker](<https://devfeed.tech/tags/docker.md>), [dynamodb](<https://devfeed.tech/tags/dynamodb.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [news](<https://devfeed.tech/tags/news.md>), [orchestration](<https://devfeed.tech/tags/orchestration.md>), [serverless](<https://devfeed.tech/tags/serverless.md>), [serverless-architecture](<https://devfeed.tech/tags/serverless-architecture.md>)

### AI overview

This commentary compares Kubernetes-based architectures with serverless approaches. It explains that Kubernetes offers flexibility through containers, Helm, ingress controllers, monitoring tools, and service meshes, but requires substantial configuration and maintenance. Serverless platforms such as Firebase and Amazon Lambda abstract away server infrastructure so developers can focus on applications and stateless functions.

### Source excerpt

By Kevin Dangoor This month, my colleague Dave Rosile and I went to GlueCon 2018 in sunny Denver, ... Read more

## Introducing Firebase spend caps

DevFeed: [Introducing Firebase spend caps](<https://devfeed.tech/articles/introducing-firebase-spend-caps-17466.md>)

Original publisher: [Read original article](<https://firebase.blog/posts/2026/09/firebase-spend-caps>)

Author: Yvonne Monterroso

Published: 2026-09-14T00:00:00Z

Content type: release

Language: en

Sources: [Firebase Blog](<https://devfeed.tech/sources/firebase-blog.md>)

Topics: [Firebase](<https://devfeed.tech/topics/firebase.md>), [API](<https://devfeed.tech/topics/api.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [Google](<https://devfeed.tech/topics/google.md>)

Tags: [ai-logic](<https://devfeed.tech/tags/ai-logic.md>), [api](<https://devfeed.tech/tags/api.md>), [app-hosting](<https://devfeed.tech/tags/app-hosting.md>), [billing](<https://devfeed.tech/tags/billing.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [cloud-functions](<https://devfeed.tech/tags/cloud-functions.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [financial](<https://devfeed.tech/tags/financial.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [firebase-console](<https://devfeed.tech/tags/firebase-console.md>), [google-cloud](<https://devfeed.tech/tags/google-cloud.md>)

### AI overview

Firebase introduces spend caps for eligible services, including Firebase AI Logic, Cloud Functions for Firebase, and Firebase App Hosting. Developers can set service-level limits, receive alerts at 50%, 80%, and 100% of the budget, and pause a service when the cap is reached.

### Source excerpt

Spend caps are designed to act as a circuit breaker for services like the Gemini API and Cloud Functions, reducing the risk of a financial surprise from a simple coding error or an unexpected spike in traffic.

## Announcing ADK for Kotlin 1.0: Building Production-Ready AI Agents in Kotlin, Android, and Beyond

DevFeed: [Announcing ADK for Kotlin 1.0: Building Production-Ready AI Agents in Kotlin, Android, and Beyond](<https://devfeed.tech/articles/announcing-adk-for-kotlin-1-0-building-production-ready-ai-agents-in-kotlin-android-and-beyond-4204.md>)

Original publisher: [Read original article](<https://developers.googleblog.com/announcing-adk-for-kotlin-10-building-production-ready-ai-agents-in-kotlin-android-and-beyond/>)

Author: Guillaume Laforge

Published: 2026-09-12T11:04:33.891311Z

Content type: release

Language: en

Sources: [Google Developers Blog](<https://devfeed.tech/sources/google-developers-blog.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [AI Development](<https://devfeed.tech/topics/ai-development.md>), [Android](<https://devfeed.tech/topics/android.md>), [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Orchestration](<https://devfeed.tech/topics/orchestration.md>), [Google](<https://devfeed.tech/topics/google.md>), [Persistence](<https://devfeed.tech/topics/persistence.md>), [Agent Skill](<https://devfeed.tech/topics/agent-skill.md>), [LiteRT](<https://devfeed.tech/topics/litert.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>)

Tags: [agent-skill](<https://devfeed.tech/tags/agent-skill.md>), [agents](<https://devfeed.tech/tags/agents.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [ai-agents](<https://devfeed.tech/tags/ai-agents.md>), [android](<https://devfeed.tech/tags/android.md>), [building](<https://devfeed.tech/tags/building.md>), [database](<https://devfeed.tech/tags/database.md>), [development-kit](<https://devfeed.tech/tags/development-kit.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [incident](<https://devfeed.tech/tags/incident.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [orchestration](<https://devfeed.tech/tags/orchestration.md>), [persistence](<https://devfeed.tech/tags/persistence.md>), [production](<https://devfeed.tech/tags/production.md>)

### AI overview

Google announces the 1.0 general availability release of the Agent Development Kit (ADK) for Kotlin, a production-ready toolkit for building multi-agent applications with Kotlin, Java, and Android. Built on Kotlin Multiplatform, it provides feature parity with the ADK 1.0 Core and adds Android-first extensions for on-device agents with LiteRT-LM and ML Kit, hybrid cloud workflows through Firebase AI Logic, and state persistence with Room and AppSearch. The release also includes type-safe, compile-time function calling through KSP and declarative agent skills.

### Source excerpt

Google has officially released version 1.0 of the Agent Development Kit (ADK) for Kotlin, achieving full feature parity with the Python and Java ADK cores to enable idiomatic, multi-agent AI development. Built on Kotlin Multiplatform (KMP), the framework leverages Kotlin Symbol Processing (KSP) for zero-reflection, type-safe function calling, alongside advanced orchestration capabilities like human-in-the-loop workflows and context compaction. Additionally, the release introduces a robust suite of Android-first extensions, allowing mobile developers to integrate local models via LiteRT-LM, cloud reasoning through Firebase AI, session persistence using Room, and semantic memory powered by AppSearch.

## 5 ways to use Gemini text-to-speech (TTS) in your apps with Firebase AI Logic

DevFeed: [5 ways to use Gemini text-to-speech (TTS) in your apps with Firebase AI Logic](<https://devfeed.tech/articles/5-ways-to-use-gemini-text-to-speech-tts-in-your-apps-with-firebase-ai-logic-16675.md>)

Original publisher: [Read original article](<https://firebase.blog/posts/2026/09/ai-logic-text-to-speech>)

Author: Ankita Saxena

Published: 2026-09-09T00:00:00Z

Content type: tutorial

Language: en

Sources: [Firebase Blog](<https://devfeed.tech/sources/firebase-blog.md>)

Topics: [Firebase](<https://devfeed.tech/topics/firebase.md>), [voice ai](<https://devfeed.tech/topics/voice-ai.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [digital accessibility](<https://devfeed.tech/topics/digital-accessibility.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Web](<https://devfeed.tech/topics/web.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-logic](<https://devfeed.tech/tags/ai-logic.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [firebase-ai-logic](<https://devfeed.tech/tags/firebase-ai-logic.md>), [gemini](<https://devfeed.tech/tags/gemini.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [speech](<https://devfeed.tech/tags/speech.md>), [text-to-speech](<https://devfeed.tech/tags/text-to-speech.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

The article presents five use cases for Gemini text-to-speech through Firebase AI Logic, including language-learning conversation practice, hands-free content reading, and accessibility-focused audio content. It also describes examples involving Finnish language exercises and recipe instructions.

### Source excerpt

News, tutorials, and updates from the Firebase team.

## Authentication made easy: Building a secure e-commerce shopping cart with Firebase

DevFeed: [Authentication made easy: Building a secure e-commerce shopping cart with Firebase](<https://devfeed.tech/articles/authentication-made-easy-building-a-secure-e-commerce-shopping-cart-with-firebase-16676.md>)

Original publisher: [Read original article](<https://firebase.blog/posts/2026/09/secure-shopping-cart-firebase>)

Author: Karl Weinmeister

Published: 2026-09-01T00:00:00Z

Content type: tutorial

Language: en

Sources: [Firebase Blog](<https://devfeed.tech/sources/firebase-blog.md>)

Topics: [Authentication](<https://devfeed.tech/topics/authentication.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>), [Firestore](<https://devfeed.tech/topics/firestore.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>), [Security](<https://devfeed.tech/topics/security.md>)

Tags: [authentication](<https://devfeed.tech/tags/authentication.md>), [cloud-run](<https://devfeed.tech/tags/cloud-run.md>), [e-commerce](<https://devfeed.tech/tags/e-commerce.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [firestore](<https://devfeed.tech/tags/firestore.md>), [security-rules](<https://devfeed.tech/tags/security-rules.md>), [shopping](<https://devfeed.tech/tags/shopping.md>), [tutorials](<https://devfeed.tech/tags/tutorials.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

This tutorial explains how to build a secure e-commerce shopping cart with Firebase Authentication and Cloud Firestore. It covers guest onboarding through anonymous authentication, migration of guest carts to permanent accounts, real-time synchronization, and checkout while addressing database permissions and security.

### Source excerpt

News, tutorials, and updates from the Firebase team.

## 3 ways to optimize Firebase Remote Config fetch usage

DevFeed: [3 ways to optimize Firebase Remote Config fetch usage](<https://devfeed.tech/articles/3-ways-to-optimize-firebase-remote-config-fetch-usage-16674.md>)

Original publisher: [Read original article](<https://firebase.blog/posts/2026/08/optimize-remote-config-usage>)

Author: Sumit Chandel; Siddhant Jain

Published: 2026-08-31T00:00:00Z

Content type: tutorial

Language: en

Sources: [Firebase Blog](<https://devfeed.tech/sources/firebase-blog.md>)

Topics: [Firebase](<https://devfeed.tech/topics/firebase.md>), [App](<https://devfeed.tech/topics/app.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [Network](<https://devfeed.tech/topics/network.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>)

Tags: [a-b-testing](<https://devfeed.tech/tags/a-b-testing.md>), [battery](<https://devfeed.tech/tags/battery.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [feature-rollouts](<https://devfeed.tech/tags/feature-rollouts.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [firebase-remote-config](<https://devfeed.tech/tags/firebase-remote-config.md>), [latency](<https://devfeed.tech/tags/latency.md>), [network](<https://devfeed.tech/tags/network.md>), [pricing](<https://devfeed.tech/tags/pricing.md>), [remote-config](<https://devfeed.tech/tags/remote-config.md>)

### AI overview

This article presents three strategies for reducing Firebase Remote Config fetch traffic. It explains how smarter fetch and activation patterns can reduce network overhead, latency, battery consumption, and usage-based costs.

### Source excerpt

Reduce network fetches, battery consumption and usage costs

## The multi-layered defenses that harden Chrome against abusive notifications

DevFeed: [The multi-layered defenses that harden Chrome against abusive notifications](<https://devfeed.tech/articles/the-multi-layered-defenses-that-harden-chrome-against-abusive-notifications-7634.md>)

Original publisher: [Read original article](<https://blog.google/security/the-multi-layered-defenses-that-harden-chrome-against-abusive-notifications/>)

Author: Nidhi Davawala

Published: 2026-08-11T17:00:00Z

Content type: article

Language: en

Sources: [Security](<https://devfeed.tech/sources/security.md>)

Topics: [Chrome](<https://devfeed.tech/topics/chrome.md>), [Security](<https://devfeed.tech/topics/security.md>), [Android](<https://devfeed.tech/topics/android.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>), [API](<https://devfeed.tech/topics/api.md>), [Networks](<https://devfeed.tech/topics/networks.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [api](<https://devfeed.tech/tags/api.md>), [chrome](<https://devfeed.tech/tags/chrome.md>), [chrome-security](<https://devfeed.tech/tags/chrome-security.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [malware](<https://devfeed.tech/tags/malware.md>), [none](<https://devfeed.tech/tags/none.md>), [safety-security](<https://devfeed.tech/tags/safety-security.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

Chrome describes a defense-in-depth system for reducing abusive web notifications. The approach combines automatic permission revocation, behavioral detection of coordinated abuse networks, Safe Browsing and Firebase Cloud Messaging collaboration, and server-side Push API throttling to limit deceptive or unwanted notifications.

### Source excerpt

Image of a URL with a small window saying "Get notifications?"

## Eval-driven development: How we build better agent skills for Firebase

DevFeed: [Eval-driven development: How we build better agent skills for Firebase](<https://devfeed.tech/articles/eval-driven-development-how-we-build-better-agent-skills-for-firebase-16673.md>)

Original publisher: [Read original article](<https://firebase.blog/posts/2026/08/eval-driven-development-agent-skills>)

Author: Charlotte Liang

Published: 2026-08-11T00:00:00Z

Content type: article

Language: en

Sources: [Firebase Blog](<https://devfeed.tech/sources/firebase-blog.md>)

Topics: [Agent Skills](<https://devfeed.tech/topics/agent-skills.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>), [AI-assisted coding](<https://devfeed.tech/topics/ai-assisted-coding.md>), [Development](<https://devfeed.tech/topics/development.md>), [Model Context Protocol](<https://devfeed.tech/topics/model-context-protocol.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [agent-skills](<https://devfeed.tech/tags/agent-skills.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-agents](<https://devfeed.tech/tags/ai-agents.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [cli](<https://devfeed.tech/tags/cli.md>), [coding-agents](<https://devfeed.tech/tags/coding-agents.md>), [development](<https://devfeed.tech/tags/development.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [mcp](<https://devfeed.tech/tags/mcp.md>)

### AI overview

This article explains how Firebase combines Agent Skills, the Firebase CLI, and MCP servers to help AI coding agents produce better Firebase code. It describes skills as focused, outcome-driven guidance for current APIs, best practices, Firestore development, and Firebase Security Rules, and notes that they can help agents discover recent features beyond their training data.

### Source excerpt

How we build better agent skills for Firebase

## Building AI Agents in Dart with the Genkit Dart SDK

DevFeed: [Building AI Agents in Dart with the Genkit Dart SDK](<https://devfeed.tech/articles/full-stack-ai-in-dart-because-learning-python-is-for-snakes-22850.md>)

Original publisher: [Read original article](<https://medium.com/google-developer-experts/ai-in-dart-5070243b0407?source=rss----a67bd6fa7d58---4>)

Author: Abhishek Doshi

Published: 2026-08-10T23:16:05Z

Content type: tutorial

Language: en

Sources: [Google Developer Experts - Medium](<https://devfeed.tech/sources/google-developer-experts-medium.md>)

Topics: [Dart](<https://devfeed.tech/topics/dart.md>), [Genkit](<https://devfeed.tech/topics/genkit.md>), [AI Development](<https://devfeed.tech/topics/ai-development.md>), [Flutter](<https://devfeed.tech/topics/flutter.md>), [Cloud Functions](<https://devfeed.tech/topics/cloud-functions.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [ai-agents](<https://devfeed.tech/tags/ai-agents.md>), [ai-development](<https://devfeed.tech/tags/ai-development.md>), [cloud-functions](<https://devfeed.tech/tags/cloud-functions.md>), [dart](<https://devfeed.tech/tags/dart.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [flutter](<https://devfeed.tech/tags/flutter.md>), [generative-ai-tools](<https://devfeed.tech/tags/generative-ai-tools.md>), [genkit](<https://devfeed.tech/tags/genkit.md>), [sdk](<https://devfeed.tech/tags/sdk.md>)

### AI overview

This tutorial introduces the Genkit Dart SDK for building AI agents natively in Dart and deploying them to Cloud Functions for Firebase. It explains agent orchestration, conversational state, history, streams, models, tools, flows, and multi-agent delegation.

### Source excerpt

Because your Flutter app deserves a brain, and you deserve to never look at a Python traceback again. Let's be honest. We all love Dart. It's clean, it's safe, and it powers our beloved Flutter. But until recently, if you wanted to build serious, multi-step AI agents, the industry basically told you to pack your bags, leave your cozy typed ecosystem, and go write Python. Gross 🤮 Thankfully, Google finally heard our collective sighs and dropped the Genkit Dart SDK. Now, you can build full-stack, hyper-intelligent AI agents natively in Dart and deploy them straight to Cloud Functions for Firebase. No context-switching. No spinning up a random Node.js microservice just to talk to an LLM. Grab your coffee (or your energy drink of choice). Let's look at how Genkit turns your Dart code into an absolute powerhouse. https://medium.com/media/91c2efa4198c043f3f400f216214650e/hrefThe Shift: From "Dumb Chatbots" to "Autonomous Overlords" Building traditional chatbots or strict multi-step UI flows often feels like playing one of those terrible, rigid video games that block you at a level until you do exactly what the developers scripted. Agentic AI, by contrast, is the ultimate open-ended sandbox. An agent doesn't just blindly answer a prompt. It analyzes what the user wants, figures out which tools it needs to achieve the goal, and dynamically orchestrates the steps to get there. With Genkit's new Agents API, all the messy plumbing: maintaining conversational state, keeping track of history, and parsing streams, is handled behind a single API. You just focus on giving it a brain. The Holy Trinity: Models, Tools, and Flows To stop your AI from just hallucinating fan-fiction, Genkit uses a few core primitives. Think of this as the toddler-proofing stage of AI development. Models (ai.generate()): The actual brain. Whether you are using Gemini, Claude, or OpenAI, the API stays exactly the same. Tools (defineTool): This is how you give your AI hands. By defining strict input schemas

## How We Moved 1,500 Android Screenshot Tests to Roborazzi

DevFeed: [How We Moved 1,500 Android Screenshot Tests to Roborazzi](<https://devfeed.tech/articles/how-we-moved-1-500-android-screenshot-tests-to-roborazzi-24726.md>)

Original publisher: [Read original article](<https://medium.com/thumbtack-engineering/how-we-moved-1-500-android-screenshot-tests-to-roborazzi-9a5247d61340?source=rss----1199c607a13f---4>)

Author: Zachary Wander

Published: 2026-08-08T05:03:41Z

Content type: tutorial

Language: en

Sources: [Thumbtack Engineering - Medium](<https://devfeed.tech/sources/thumbtack-engineering-medium.md>)

Topics: [screenshot-testing](<https://devfeed.tech/topics/screenshot-testing.md>), [Android](<https://devfeed.tech/topics/android.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>), [Git](<https://devfeed.tech/topics/git.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [compose](<https://devfeed.tech/tags/compose.md>), [consistency](<https://devfeed.tech/tags/consistency.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [git](<https://devfeed.tech/tags/git.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [robolectric](<https://devfeed.tech/tags/robolectric.md>), [roborazzi](<https://devfeed.tech/tags/roborazzi.md>), [screenshot](<https://devfeed.tech/tags/screenshot.md>), [screenshot-testing](<https://devfeed.tech/tags/screenshot-testing.md>), [software-testing](<https://devfeed.tech/tags/software-testing.md>), [technology](<https://devfeed.tech/tags/technology.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

Thumbtack Engineering describes migrating 1,500 Android screenshot tests from Firebase Test Lab to Roborazzi, which runs locally on the JVM. The article covers porting existing suites, comparing screenshots in Git, and addressing rendering, test-data injection, and dependency-injection differences.

### Source excerpt

How we moved 1,500 Android screenshot tests to Roborazzi.Introduction If you're a mobile developer you're probably no stranger to screenshot tests. Making sure that layouts remain consistent as time goes on and code changes is important for ensuring functionality and accessibility. Since Thumbtack uses Kotlin and Jetpack Compose for its Android apps, we had historically been using Firebase Test Lab to capture and compare layouts. However, using Firebase can be slow, tedious, and error-prone, so we decided it was time for a change. Instead of Firebase, we decided to migrate to using Roborazzi, a screenshot testing framework that runs fully locally inside the local JVM instead of relying on remote emulators and devices. For more details on why we migrated and the alternatives we evaluated, check out the previous blog post from Brian. This post is going to go into the details of how we migrated, and the challenges we faced along the way. Porting Loop Because the purpose of screenshot tests is ensuring consistency over time, we wanted to bring over our existing test suites into Roborazzi. Deleting the old ones and just creating new tests as we built new layouts was a potential option, but it would wipe out a lot of our automated verification. Instead, we ported our existing Firebase Test Lab screenshot test suites over to Roborazzi. In general, the porting process was pretty simple: Delete the old screenshots. Move the test suites over from androidTest to test. Adjust the code for any API differences. Record new screenshots. Compare the old and new screenshots in the git diff to make sure nothing is broken. Fix broken screenshots. Since Roborazzi uses Robolectric, and Robolectric implements the Android API, most of the test suites needed very few changes to work, with updating the main test rule and test annotations being enough to get them running. A few, like those that relied on permission granting rules or interacted directly with the test Activity, needed some more

## GenUI Beyond Chat: Designing a Grammar Book with Flutter GenUI -- Part 1

DevFeed: [GenUI Beyond Chat: Designing a Grammar Book with Flutter GenUI -- Part 1](<https://devfeed.tech/articles/genui-beyond-chat-designing-a-grammar-book-with-flutter-genui-part-1-23051.md>)

Original publisher: [Read original article](<https://medium.com/flutter-community/genui-beyond-chat-building-a-grammar-book-with-flutter-and-caching-the-a2ui-output-with-firebase-ecab7b093ccc?source=rss----86fb29d7cc6a---4>)

Author: Cagatay Ulusoy

Published: 2026-08-03T15:15:45Z

Content type: article

Language: en

Sources: [Flutter Community - Medium](<https://devfeed.tech/sources/flutter-community-medium.md>)

Topics: [Flutter](<https://devfeed.tech/topics/flutter.md>), [App](<https://devfeed.tech/topics/app.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [personalization](<https://devfeed.tech/topics/personalization.md>), [ui](<https://devfeed.tech/topics/ui.md>), [Learning](<https://devfeed.tech/topics/learning.md>), [SDK](<https://devfeed.tech/topics/sdk.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [app](<https://devfeed.tech/tags/app.md>), [article](<https://devfeed.tech/tags/article.md>), [feature](<https://devfeed.tech/tags/feature.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [flutter](<https://devfeed.tech/tags/flutter.md>), [framework](<https://devfeed.tech/tags/framework.md>), [gemini](<https://devfeed.tech/tags/gemini.md>), [generative-ui](<https://devfeed.tech/tags/generative-ui.md>), [genuis](<https://devfeed.tech/tags/genuis.md>), [learning](<https://devfeed.tech/tags/learning.md>), [personalization](<https://devfeed.tech/tags/personalization.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

This article describes using Flutter GenUI to build an interactive Finnish grammar course inside a language-learning app. It focuses on generating personalized lessons from the learner's language and presenting them as Flutter pages rather than as a long Markdown response.

### Source excerpt

Last year on #FlutterFlightPlans live stream, I asked the Flutter team a question that has stayed with me: Are there any use cases for Generative UI other than chat responses? Can you share some inspiration? Seth Ladd answered, "Let's see what is beyond chat together." 🚀 Since that moment, exploring GenUI beyond chat has been my primary focus. https://medium.com/media/7c53d065806a0337fcf3a8db1412ec82/href I shared my first journey with GenUI in an article series: a small GenUI framework built with Gemini structured outputs, and a migration to Flutter GenUI SDK and A2UI surfaces. Then I tried a different kind of use case: a Finnish 🇫🇮 grammar course inside my Finnish it language-learning app. In this feature, the learner browses a curriculum in their own language, opens one small grammar topic, and moves through a sequence of Flutter pages. https://medium.com/media/3ac419e10db257e4f9652bdfb9ad5165/hrefProblem Definition I had four constraints: I do not speak Finnish, and I am not a language teacher. I don't have time to manually plan and structure a grammar book's worth of micro-lessons in every language. I want interactive application UI, not a long Markdown response. Hyper-personalization is crucial. The explanation should begin from the learner's language. A Turkish learner can approach Finnish vowel harmony through Turkish vowel harmony; an English learner needs another bridge since it has no similar concept. Vowel harmony lessons in English and TurkishThe same rule does not feel equally foreign That fourth constraint is more than UI localization. Turkish speakers will find two familiar concepts in Finnish grammar: attaching grammatical markers directly to the ends of nouns, and changing suffix vowels to match the root word. For example, expressing "in" or "at" requires the exact same mental process in both languages: Turkish: ev + -de = evde (in the house) Finnish: talo + -ssa = talossa (in the house) An English speaker has a completely different starting point.

## Triple-layer security for Firebase web apps

DevFeed: [Triple-layer security for Firebase web apps](<https://devfeed.tech/articles/triple-layer-security-for-firebase-web-apps-16672.md>)

Original publisher: [Read original article](<https://firebase.blog/posts/2026/07/three-layer-security>)

Author: Roger Martinez

Published: 2026-07-30T00:00:00Z

Content type: tutorial

Language: en

Sources: [Firebase Blog](<https://devfeed.tech/sources/firebase-blog.md>)

Topics: [Firebase](<https://devfeed.tech/topics/firebase.md>), [Security](<https://devfeed.tech/topics/security.md>), [Web app](<https://devfeed.tech/topics/webapp.md>), [Firestore](<https://devfeed.tech/topics/firestore.md>)

Tags: [app-check](<https://devfeed.tech/tags/app-check.md>), [apps](<https://devfeed.tech/tags/apps.md>), [article](<https://devfeed.tech/tags/article.md>), [cloud-functions](<https://devfeed.tech/tags/cloud-functions.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [firestore](<https://devfeed.tech/tags/firestore.md>), [security](<https://devfeed.tech/tags/security.md>), [security-rules](<https://devfeed.tech/tags/security-rules.md>), [tutorials](<https://devfeed.tech/tags/tutorials.md>), [web](<https://devfeed.tech/tags/web.md>), [web-apps](<https://devfeed.tech/tags/web-apps.md>)

### AI overview

This tutorial explains three layers of security for Firebase web apps: Firebase Security Rules, Google Cloud service accounts, and Firebase App Check. It focuses on narrowing Firestore rules by resource, allowed operations, and client identity, including a rule that limits reads to published articles.

### Source excerpt

News, tutorials, and updates from the Firebase team.

## Bringing Google Maps to Friendly Meals with Firebase AI Logic

DevFeed: [Bringing Google Maps to Friendly Meals with Firebase AI Logic](<https://devfeed.tech/articles/bringing-google-maps-to-friendly-meals-with-firebase-ai-logic-16671.md>)

Original publisher: [Read original article](<https://firebase.blog/posts/2026/07/bringing-google-maps-friendly-meals>)

Author: Marina Coelho

Published: 2026-07-28T00:00:00Z

Content type: tutorial

Language: en

Sources: [Firebase Blog](<https://devfeed.tech/sources/firebase-blog.md>)

Topics: [Firebase](<https://devfeed.tech/topics/firebase.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Google Maps](<https://devfeed.tech/topics/google-maps.md>), [Android](<https://devfeed.tech/topics/android.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Google](<https://devfeed.tech/topics/google.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [personalization](<https://devfeed.tech/topics/personalization.md>), [real-time](<https://devfeed.tech/topics/real-time.md>), [configuration](<https://devfeed.tech/topics/configuration.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-logic](<https://devfeed.tech/tags/ai-logic.md>), [android](<https://devfeed.tech/tags/android.md>), [build](<https://devfeed.tech/tags/build.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [features](<https://devfeed.tech/tags/features.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [firebase-ai-logic](<https://devfeed.tech/tags/firebase-ai-logic.md>), [gemini](<https://devfeed.tech/tags/gemini.md>), [google](<https://devfeed.tech/tags/google.md>), [google-maps](<https://devfeed.tech/tags/google-maps.md>), [grounding](<https://devfeed.tech/tags/grounding.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [personalization](<https://devfeed.tech/tags/personalization.md>), [prompt](<https://devfeed.tech/tags/prompt.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [sdks](<https://devfeed.tech/tags/sdks.md>), [time](<https://devfeed.tech/tags/time.md>)

### AI overview

A Firebase team tutorial explains how to add a Store Finder feature to the Friendly Meals Android app using Grounding with Google Maps through Firebase AI Logic. The Kotlin implementation uses location-aware Gemini responses to provide nearby businesses, operational details, and geographic personalization.

### Source excerpt

News, tutorials, and updates from the Firebase team.

## Practical Kotlin Multiplatform: Implementing the Firebase Sign-up Operation with Ktor

DevFeed: [Practical Kotlin Multiplatform: Implementing the Firebase Sign-up Operation with Ktor](<https://devfeed.tech/articles/practical-kotlin-multiplatform-implementing-the-firebase-sign-up-operation-with-ktor-25189.md>)

Original publisher: [Read original article](<https://joebirch.co/android/practical-kotlin-multiplatform-implementing-the-firebase-sign-up-operation-with-ktor/>)

Author: hitherejoe

Published: 2026-07-26T07:37:53Z

Content type: tutorial

Language: en

Sources: [Joe Birch](<https://devfeed.tech/sources/joe-birch.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>), [Ktor](<https://devfeed.tech/topics/ktor.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [Android](<https://devfeed.tech/topics/android.md>), [interfaces](<https://devfeed.tech/topics/interfaces.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Exception](<https://devfeed.tech/topics/exception.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [code](<https://devfeed.tech/tags/code.md>), [exception](<https://devfeed.tech/tags/exception.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [ios](<https://devfeed.tech/tags/ios.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [ktor](<https://devfeed.tech/tags/ktor.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>)

### AI overview

A tutorial on implementing a Firebase sign-up API request in a Kotlin Multiplatform application using Ktor. It defines an authentication repository interface and service implementation for Android and iOS clients, including API key, email, and password parameters and exception handling.

### Source excerpt

This post is part four of a series adapted from Practical KMP, my book on building production Kotlin Multiplatform apps for Android and iOS. Part two built the authentication remote store and modelled its response. Implementing the Sign-up Endpoint Now that we've created the models for receiving back an authentication response, it's time for us... Continue reading ->

## The challenge of adding a Web target to DroidconKotlin - Kevin Schildhorn

DevFeed: [The challenge of adding a Web target to DroidconKotlin - Kevin Schildhorn](<https://devfeed.tech/articles/the-challenge-of-adding-a-web-target-to-droidconkotlin-kevin-schildhorn-38156.md>)

Original publisher: [Read original article](<https://touchlab.co/adding-web-target-to-droidcon>)

Published: 2026-07-22T18:00:00Z

Content type: tutorial

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Web](<https://devfeed.tech/topics/web.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [compose-multiplatform](<https://devfeed.tech/topics/compose-multiplatform.md>), [wasm](<https://devfeed.tech/topics/wasm.md>), [browser](<https://devfeed.tech/topics/browser.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [browsers](<https://devfeed.tech/tags/browsers.md>), [compose-multiplatform](<https://devfeed.tech/tags/compose-multiplatform.md>), [crashlytics](<https://devfeed.tech/tags/crashlytics.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [droidcon](<https://devfeed.tech/tags/droidcon.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [project](<https://devfeed.tech/tags/project.md>), [wasm](<https://devfeed.tech/tags/wasm.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

This post explains how Touchlab added browser Web support to the DroidconKotlin multiplatform app. It covers dependency limitations, the decision to use Web instead of Kotlin WASM, SQLDelight support, Coil and Okio filesystem issues, the lack of Firebase Crashlytics Web support, and localization and resource handling with Compose Multiplatform.

### Source excerpt

We recently added support for Web to our DroidconKotlin app. In this post we'll go over our process and the difficulties of adding a Web target to an existing project.

## Build intelligent Android apps: Cloud and hybrid inference

DevFeed: [Build intelligent Android apps: Cloud and hybrid inference](<https://devfeed.tech/articles/build-intelligent-android-apps-cloud-and-hybrid-inference-22680.md>)

Original publisher: [Read original article](<http://android-developers.googleblog.com/2026/07/build-intelligent-android-apps-cloud-hybrid-inference.html>)

Author: Android Developers (noreply@blogger.com)

Published: 2026-07-21T13:00:00Z

Content type: tutorial

Language: en

Sources: [Android Developers Blog](<https://devfeed.tech/sources/android-developers-blog-3.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Inference](<https://devfeed.tech/topics/inference.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [ML Kit](<https://devfeed.tech/topics/ml-kit.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-models](<https://devfeed.tech/tags/ai-models.md>), [android](<https://devfeed.tech/tags/android.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [firebase-ai-logic](<https://devfeed.tech/tags/firebase-ai-logic.md>), [gemini](<https://devfeed.tech/tags/gemini.md>), [grounding](<https://devfeed.tech/tags/grounding.md>), [hybrid-inference](<https://devfeed.tech/tags/hybrid-inference.md>), [inference](<https://devfeed.tech/tags/inference.md>), [on-device](<https://devfeed.tech/tags/on-device.md>)

### AI overview

This tutorial explains how to build cloud-hosted and hybrid AI features in Android apps with Firebase AI Logic. Using the Jetpacker app as an example, it covers web-grounded museum assistance, hybrid restaurant review drafting with Gemini Nano and cloud fallback, and custom-routed live translation for hotel support.

### Source excerpt

Posted by Thomas Ezan, Jolanda Verhoef, Caren Chang, Senior Developer Relations Engineers, Android Developer Relations Welcome back to the blog post series "Build intelligent Android apps" where we take a basic Android app and transform it into a personalized, intelligent, and agentic experience. In our previous post we explored how to build intelligent on-device features using Gemini Nano through ML Kit's Prompt API. In this post, we will look at how you can leverage Firebase AI Logic to build cloud-hosted and hybrid AI features: Grounding answers in real-world context Routing requests dynamically between cloud and local execution using hybrid inference Translating content with custom routing systems Sometimes a use case requires AI models with greater world knowledge, a much larger context window, or the ability to handle complex queries. In those scenarios, we can leverage cloud models. Other times, you want the best of both worlds: using hybrid inference to run on-device when available to lower costs, while falling back to the cloud to ensure compatibility for all devices. Cloud and hybrid features in Jetpacker: Museum assistant with web grounding, hybrid restaurant review drafting, and support chat featuring custom-routed live translation. Let's look at how we implemented three cloud and hybrid features in Jetpacker: a museum assistant with web grounding hybrid restaurant review drafting hotel support chat featuring custom-routed live translation. Use LLM grounding for up-to-date informationMuseum assistant chatbot with LLM grounding The Museum assistant is an interactive chatbot designed to help users plan their museum visits. It provides visitors with up-to-date details regarding specific exhibits, current opening hours, ticket pricing, and more. Museum assistant is a chatbot that answers questions, such as 'How can I get a ticket discount for Le Louvre?' When building AI features, getting the model to answer with fresh, accurate, and specific real-world info

## Build intelligent Android apps: Cloud and hybrid inference

DevFeed: [Build intelligent Android apps: Cloud and hybrid inference](<https://devfeed.tech/articles/build-intelligent-android-apps-cloud-and-hybrid-inference-4223.md>)

Original publisher: [Read original article](<https://android-developers.googleblog.com/2026/07/build-intelligent-android-apps-cloud-hybrid-inference.html>)

Author: Android Developers (noreply@blogger.com)

Published: 2026-07-21T13:00:00Z

Content type: tutorial

Language: en

Sources: [Android Developers Blog](<https://devfeed.tech/sources/android-developers-blog.md>), [Android Developers Blog](<https://devfeed.tech/sources/android-developers-blog-2.md>)

Topics: [AI Chat](<https://devfeed.tech/topics/ai-chat.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-models](<https://devfeed.tech/tags/ai-models.md>), [android](<https://devfeed.tech/tags/android.md>), [api](<https://devfeed.tech/tags/api.md>), [apps](<https://devfeed.tech/tags/apps.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [gemini](<https://devfeed.tech/tags/gemini.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [inference](<https://devfeed.tech/tags/inference.md>), [llm](<https://devfeed.tech/tags/llm.md>), [on-device](<https://devfeed.tech/tags/on-device.md>), [routing](<https://devfeed.tech/tags/routing.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

A tutorial on building Android AI features with Firebase AI Logic, including web-grounded chat, hybrid on-device/cloud review generation, and custom-routed translation.

### Source excerpt

Posted by Thomas Ezan, Jolanda Verhoef, Caren Chang, Senior Developer Relations Engineers, Android Developer Relations Welcome back to the blog post series "Build intelligent Android apps" where we take a basic Android app and transform it into a personalized, intelligent, and agentic experience. In our previous post we explored how to build intelligent on-device features using Gemini Nano through ML Kit's Prompt API. In this post, we will look at how you can leverage Firebase AI Logic to build cloud-hosted and hybrid AI features: Grounding answers in real-world context Routing requests dynamically between cloud and local execution using hybrid inference Translating content with custom routing systems Sometimes a use case requires AI models with greater world knowledge, a much larger context window, or the ability to handle complex queries. In those scenarios, we can leverage cloud models. Other times, you want the best of both worlds: using hybrid inference to run on-device when available to lower costs, while falling back to the cloud to ensure compatibility for all devices. Cloud and hybrid features in Jetpacker: Museum assistant with web grounding, hybrid restaurant review drafting, and support chat featuring custom-routed live translation. Let's look at how we implemented three cloud and hybrid features in Jetpacker: a museum assistant with web grounding hybrid restaurant review drafting hotel support chat featuring custom-routed live translation. Use LLM grounding for up-to-date informationMuseum assistant chatbot with LLM grounding The Museum assistant is an interactive chatbot designed to help users plan their museum visits. It provides visitors with up-to-date details regarding specific exhibits, current opening hours, ticket pricing, and more. Museum assistant is a chatbot that answers questions, such as 'How can I get a ticket discount for Le Louvre?' When building AI features, getting the model to answer with fresh, accurate, and specific real-world info

## Practical Kotlin Multiplatform: Creating the Firebase Auth Remote Store with Ktor

DevFeed: [Practical Kotlin Multiplatform: Creating the Firebase Auth Remote Store with Ktor](<https://devfeed.tech/articles/practical-kotlin-multiplatform-creating-the-firebase-auth-remote-store-with-ktor-25188.md>)

Original publisher: [Read original article](<https://joebirch.co/android/practical-kotlin-multiplatform-creating-the-firebase-auth-remote-store-with-ktor/>)

Author: hitherejoe

Published: 2026-07-18T15:17:19Z

Content type: tutorial

Language: en

Sources: [Joe Birch](<https://devfeed.tech/sources/joe-birch.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>), [Ktor](<https://devfeed.tech/topics/ktor.md>), [Android](<https://devfeed.tech/topics/android.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [iOS](<https://devfeed.tech/topics/ios.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [api](<https://devfeed.tech/tags/api.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [ios](<https://devfeed.tech/tags/ios.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [ktor](<https://devfeed.tech/tags/ktor.md>), [networking](<https://devfeed.tech/tags/networking.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

This tutorial, part two of a Kotlin Multiplatform series, explains how to build a Firebase Authentication remote store with Ktor. It models Firebase Authentication's REST API behind a shared interface for Android and iOS, covering account operations, token refresh, dependency injection, and tests with a mocked client.

### Source excerpt

This post is part two of a series adapted from Practical KMP, my book on building production Kotlin Multiplatform apps for Android and iOS. If you missed it, part one covered setting up the shared networking module. Introduction With our shared module now set up, we have the foundations that we need to start building... Continue reading ->

## Practical Kotlin Multiplatform: Setting up the Kotlin Multiplatform Networking Module with Ktor

DevFeed: [Practical Kotlin Multiplatform: Setting up the Kotlin Multiplatform Networking Module with Ktor](<https://devfeed.tech/articles/practical-kotlin-multiplatform-setting-up-the-kotlin-multiplatform-networking-module-with-ktor-25190.md>)

Original publisher: [Read original article](<https://joebirch.co/android/practical-kotlin-multiplatform-setting-up-the-kotlin-multiplatform-networking-module-with-ktor/>)

Author: hitherejoe

Published: 2026-07-10T16:16:31Z

Content type: tutorial

Language: en

Sources: [Joe Birch](<https://devfeed.tech/sources/joe-birch.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Ktor](<https://devfeed.tech/topics/ktor.md>), [networking](<https://devfeed.tech/topics/networking.md>), [REST API](<https://devfeed.tech/topics/rest-api.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [androiddev](<https://devfeed.tech/tags/androiddev.md>), [app-development](<https://devfeed.tech/tags/app-development.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [ios](<https://devfeed.tech/tags/ios.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [ktor](<https://devfeed.tech/tags/ktor.md>), [library](<https://devfeed.tech/tags/library.md>), [mobile-app-development](<https://devfeed.tech/tags/mobile-app-development.md>), [module](<https://devfeed.tech/tags/module.md>), [networking](<https://devfeed.tech/tags/networking.md>), [rest-api](<https://devfeed.tech/tags/rest-api.md>)

### AI overview

A tutorial series installment that sets up a Kotlin Multiplatform networking module with Ktor for shared Android and iOS code. It describes building a portable Firebase Authentication and Firestore REST API layer without relying on platform-specific SDKs.

### Source excerpt

This post is part one of a series adapted from Practical KMP, my book on building production Kotlin Multiplatform apps for Android and iOS. Part 1: Creating the Kotlin Multiplatform Module In this part of the book, we'll build the complete authentication remote store, defining a repository that handles every operation our app needs for... Continue reading ->

## Antigravity TagSpotter - Share data with Firebase

DevFeed: [Antigravity TagSpotter - Share data with Firebase](<https://devfeed.tech/articles/antigravity-tagspotter-share-data-with-firebase-32039.md>)

Original publisher: [Read original article](<https://www.maiatoday.net/p/antigravity-tagspotter-share-data-with-firebase/>)

Published: 2026-07-09T20:34:04Z

Content type: tutorial

Language: en

Sources: [maiatoday](<https://devfeed.tech/sources/maiatoday.md>)

Topics: [Firebase](<https://devfeed.tech/topics/firebase.md>), [Google](<https://devfeed.tech/topics/google.md>), [SDK](<https://devfeed.tech/topics/sdk.md>), [data](<https://devfeed.tech/topics/data.md>), [iOS](<https://devfeed.tech/topics/ios.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-agents](<https://devfeed.tech/tags/ai-agents.md>), [antigravity](<https://devfeed.tech/tags/antigravity.md>), [code](<https://devfeed.tech/tags/code.md>), [data](<https://devfeed.tech/tags/data.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [google](<https://devfeed.tech/tags/google.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kmp](<https://devfeed.tech/tags/kmp.md>), [sdk](<https://devfeed.tech/tags/sdk.md>)

### AI overview

The article describes planning and implementing Firebase-based cloud storage for TagSpotter, including authentication, offline use, cross-device syncing, shared data packs, schema changes, migrations, and platform SDK constraints. It finds that defining requirements and edge cases required substantial planning before implementation.

### Source excerpt

The challenge - Firebase with Google Plugins Now that I can see my graffiti spots on multiple platforms the obvious next step is I want to keep the data in the cloud so that I can capture spots when I'm out and about and then look at them and edit them on the laptop later. For this I need some kind of auth and data storage - like Firebase. Like before, can I do the implementation on a weekend. Easy enough? Well Antigravity 2.0 has firebase super powers in the form of Google shipped plugins but figuring out what I really want and what the edge cases are was not trivial. The prep grill-me grill-me grill-me For this exercise I was pretty confident antigravity could code up my solution. Just look at all these built in firebase skills. What I wasn't sure of was what I actually wanted. Let's get some ideas. I wanted users that didn't want to log in, not to be forced to do this. So there was the idea of an offline mode. Then when I do log in and I happen to change something on my phone and then on the desktop it should take the latest edit. I wanted it to update in the background but realistically only when I finish editing a spot. What happens when I delete a spot? How will it work when I import a pack? What happens when the photographer name is the same but the email differs? Can I have a way to save a pack of spots and just share a code to see it? What then, will I be able to change them? How does the db schema change? What migrations are needed? Will the old share packs work? How do I even set things up properly on firebase? What about desktop, there isn't an SDK for desktop? And so on and so on. I was clearly better at asking questions than building especially since I didn't know how to integrate the SDK on iOS. I spent about two evenings planning and changing my mind to come up with this plan It required multiple rounds of /grill-me and also asking antigravity for some suggestions on how things could work and picking the options I liked best. The plan had important s

## From Structured Outputs to A2UI Surfaces: Migrating to Flutter GenUI SDK

DevFeed: [From Structured Outputs to A2UI Surfaces: Migrating to Flutter GenUI SDK](<https://devfeed.tech/articles/from-structured-outputs-to-a2ui-surfaces-migrating-to-flutter-genui-sdk-23050.md>)

Original publisher: [Read original article](<https://medium.com/flutter-community/from-structured-outputs-to-a2ui-surfaces-migrating-to-flutter-genui-sdk-4f09aeacee80?source=rss----86fb29d7cc6a---4>)

Author: Cagatay Ulusoy

Published: 2026-07-08T15:52:59Z

Content type: tutorial

Language: en

Sources: [Flutter Community - Medium](<https://devfeed.tech/sources/flutter-community-medium.md>)

Topics: [Flutter](<https://devfeed.tech/topics/flutter.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>), [Finite-state machine](<https://devfeed.tech/topics/finite-state-machine.md>), [JSON](<https://devfeed.tech/topics/json.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>), [Database](<https://devfeed.tech/topics/database.md>)

Tags: [a2ui](<https://devfeed.tech/tags/a2ui.md>), [ai](<https://devfeed.tech/tags/ai.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [flutter](<https://devfeed.tech/tags/flutter.md>), [gemini](<https://devfeed.tech/tags/gemini.md>), [generative-ui](<https://devfeed.tech/tags/generative-ui.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [json](<https://devfeed.tech/tags/json.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [state](<https://devfeed.tech/tags/state.md>)

### AI overview

A tutorial on migrating a hand-built generative UI feature based on Gemini structured outputs to the official Flutter GenUI SDK. It describes a Finnish language-learning app that generates images on demand and uses a five-step wizard to improve image variety.

### Source excerpt

Part 3 of a series "Building Image Assisted Language Learning Practice with Flutter, Firebase and Gemini." Part 1 built the image generation and annotation pipeline. Part 2 built a generative UI framework by hand, using Gemini structured outputs. This part is the migration: same feature, official Flutter GenUI SDK. A year ago, Finnish It was just a side project. This spring, I watched it at the Google Cloud Next developer keynote, and again in the Flutter keynote at Google I/O. It still feels surreal to type that. I am grateful to the Flutter and Firebase teams for the collaboration. This series is my way of giving back. I hope it makes Flutter GenUI SDK click for you the way building this feature made it click for me. Finnish it app featured in Cloud Next and Google IOQuick Recap One of the app's practice exercises is simple: show the learner an image, and they describe it in 🇫🇮 Finnish. The images are generated on demand, not fetched from a fixed image database. In Part 2 the problem was variety. A broad topic like "a native Finnish animal in its habitat" kept producing the same handful of scenes. Turning up temperature did not fix it, because it was never really a sampling problem. An under-specified prompt has a few big probability peaks, and the sampler just jitters around them. The fix was to stop asking the model to "be random" and move the entropy into the UI: a five-step wizard where the user picks the season, the setting, the story, the framing, and the visible details. Gemini designs the questions; the user provides the variety. That worked. The repetition problem was solved. The machine I built by hand To make it work, I built a small finite state machine (FSM) which walked the user through five steps. Each step asked Gemini for question set, constrained by a response schema, and parsed the JSON into a typed object that a widget could render: final response = await model.generateContent( [Content.text(_buildRefinementStateRequest(state, topic, selections

## Zero-flicker Firestore SSR with React

DevFeed: [Zero-flicker Firestore SSR with React](<https://devfeed.tech/articles/zero-flicker-firestore-ssr-with-react-16670.md>)

Original publisher: [Read original article](<https://firebase.blog/posts/2026/06/firestore-serialization-react>)

Author: Jeff Huleatt

Published: 2026-06-24T00:00:00Z

Content type: tutorial

Language: en

Sources: [Firebase Blog](<https://devfeed.tech/sources/firebase-blog.md>)

Topics: [Firestore](<https://devfeed.tech/topics/firestore.md>), [Server-side rendering](<https://devfeed.tech/topics/server-side-rendering.md>), [React](<https://devfeed.tech/topics/react.md>), [Next.js](<https://devfeed.tech/topics/next-js.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>)

Tags: [firebase](<https://devfeed.tech/tags/firebase.md>), [firestore](<https://devfeed.tech/tags/firestore.md>), [next-js](<https://devfeed.tech/tags/next-js.md>), [react](<https://devfeed.tech/tags/react.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [serialization](<https://devfeed.tech/tags/serialization.md>), [server-side-rendering](<https://devfeed.tech/tags/server-side-rendering.md>), [ssr](<https://devfeed.tech/tags/ssr.md>), [web](<https://devfeed.tech/tags/web.md>), [web-app](<https://devfeed.tech/tags/web-app.md>)

### AI overview

This tutorial explains how to use Firebase JS SDK SSR-specific APIs to serialize Firestore query results on the server, resume them on the client, and support realtime updates in a Next.js and React application. It also discusses payload size and when serialization is unnecessary.

### Source excerpt

News, tutorials, and updates from the Firebase team.

## How we built a Flutter-powered AI coffee shop

DevFeed: [How we built a Flutter-powered AI coffee shop](<https://devfeed.tech/articles/how-we-built-a-flutter-powered-ai-coffee-shop-23039.md>)

Original publisher: [Read original article](<https://blog.flutter.dev/how-we-built-a-flutter-powered-ai-coffee-shop-878c60a11f1a?source=rss----4da7dfd21a33---4>)

Author: Craig Labenz

Published: 2026-06-22T15:16:53Z

Content type: article

Language: en

Sources: [Flutter - Medium](<https://devfeed.tech/sources/flutter-medium.md>)

Topics: [Flutter](<https://devfeed.tech/topics/flutter.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>), [monorepo](<https://devfeed.tech/topics/monorepo.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Web](<https://devfeed.tech/topics/web.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>)

Tags: [a2ui](<https://devfeed.tech/tags/a2ui.md>), [ai](<https://devfeed.tech/tags/ai.md>), [android](<https://devfeed.tech/tags/android.md>), [app](<https://devfeed.tech/tags/app.md>), [apps](<https://devfeed.tech/tags/apps.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [code](<https://devfeed.tech/tags/code.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [flutter](<https://devfeed.tech/tags/flutter.md>), [gemini](<https://devfeed.tech/tags/gemini.md>), [genuis](<https://devfeed.tech/tags/genuis.md>), [go](<https://devfeed.tech/tags/go.md>), [google](<https://devfeed.tech/tags/google.md>), [hosting](<https://devfeed.tech/tags/hosting.md>), [ios](<https://devfeed.tech/tags/ios.md>), [monorepo](<https://devfeed.tech/tags/monorepo.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

The Flutter team describes building GenLatte, a coffee-shop demo that combined a Flutter app with Nano Banana for customized images and GenUI for dynamically generated, personalized questions. The system let visitors order coffee topped with an image of their happy place, and the demo was presented at Cloud Next and Google I/O.

### Source excerpt

Dash sits on a coffee shop's checkout counter drinking a latte with the Flutter logo printed on top If you start giving away coffee, people will show up. The Flutter team had been trying for a while to find a way to put this principle to work with a demo that started with a Flutter app and ended with a hot, tasty beverage. The problem was how to make it more interesting, more personal than just taking orders and delivering. Coffee's cool, but it's not The One Thing You Definitely Remember from Google I/O cool. So what changed? Two new bits of tech arrived on scene. One is Nano Banana, with its ability to quickly generate customized images. The second is GenUI, with its ability to generate UX dynamically at runtime and offer attendees personally tailored questions about how they'd like to modify those images. Put the two together with Flutter and you can offer folks the chance to order coffee with an image of their happy place printed on top with an inkjet printer. Now that's pretty memorable. All we had to do was execute. Twice, as it turned out -- the demo was called "GenLatte" at Cloud Next and "Antigravity Coffee Co." at Google I/O. For simplicity and to save a few tokens for the agent summarizing this article for you, the name "GenLatte" is used below. We built a coffee shop Realizing a vision as ambitious as GenLatte involves a lot of people. Like, a lot of people. There are teams to spec out the physical space and decide how "customers" [1] will flow. There are branding and concept teams to create the aesthetic. There are of course construction teams to go to the hardware store and buy lumber. Eventually, there's also the software engineers slapping code together to build the various apps, which is where I happened to come in. This blog post will only outline the software, but that is not to minimize the incredible work that went into the many other layers required for GenLatte to eventually open its doors. [1] Are they still customers if you don't charge anyth

## Android Journey Tests with Gemini: CI Setup & 11-Week Review

DevFeed: [Android Journey Tests with Gemini: CI Setup & 11-Week Review](<https://devfeed.tech/articles/android-journey-tests-with-gemini-ci-setup-11-week-review-40090.md>)

Original publisher: [Read original article](<https://www.rea-group.com/about-us/news-and-insights/blog/android-journey-tests-with-gemini-ci-setup-11-week-review/>)

Author: Swapnil Gupta

Published: 2026-06-19T03:27:13Z

Content type: opinion

Language: en

Sources: [REA Group](<https://devfeed.tech/sources/rea-group.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [ui-testing](<https://devfeed.tech/topics/ui-testing.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Android Studio](<https://devfeed.tech/topics/android-studio.md>), [adb](<https://devfeed.tech/topics/adb.md>)

Tags: [adb](<https://devfeed.tech/tags/adb.md>), [android](<https://devfeed.tech/tags/android.md>), [android-studio](<https://devfeed.tech/tags/android-studio.md>), [ci](<https://devfeed.tech/tags/ci.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [gemini](<https://devfeed.tech/tags/gemini.md>), [qa-engineer](<https://devfeed.tech/tags/qa-engineer.md>), [quality](<https://devfeed.tech/tags/quality.md>), [tech](<https://devfeed.tech/tags/tech.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

An 11-week experiment evaluated Android Journeys powered by Gemini for AI-driven UI testing in REA Group's production Android app and CI infrastructure. The tests generally remained resilient through UI changes, but CI setup took eight weeks, Firebase Test Lab was unsupported, and manual QA hours did not decrease. The team rated the experience 8.75 out of 10 and voted to continue.

### Source excerpt

Writing AI-powered UI tests took minutes. Getting them on CI took eight weeks. Here's what we learned after 11 weeks with Android Journeys and Gemini.

[Next page](<https://devfeed.tech/tags/firebase.md?cursor=WyIyMDI2LTA2LTE5VDAzOjI3OjEzKzAwOjAwIiwgIjJmNmQ5ZTk2LTJkNDctNDVkZi1iMTQxLTkzY2Y4MTcwMTllNyJd>)