GEMINI LABJP
NANOLITE — Nano Banana 2 Lite is here: Google's fastest and most cost-efficient Gemini Image model, made for running lightweight image generation cheaplyOMNIFLASH — Gemini Omni Flash is in public preview, a natively multimodal model that lets enterprises and developers build custom, dynamic video workflowsAGENTS — Managed Agents expand with background: true for async server-side runs and polling, remote MCP server integration, and refreshing credentials across interactionsMEMORY — The Memory Bank IngestEvents API is generally available, decoupling event ingestion from memory generation so you can stream content continuouslyTHROUGHPUT — Provisioned Throughput now lets you submit up to seven pending orders for the same model and regionDEPRECATE — Image generation models shut down on August 17, and the Grok 4.1 family on the Gemini Enterprise Agent Platform on August 20NANOLITE — Nano Banana 2 Lite is here: Google's fastest and most cost-efficient Gemini Image model, made for running lightweight image generation cheaplyOMNIFLASH — Gemini Omni Flash is in public preview, a natively multimodal model that lets enterprises and developers build custom, dynamic video workflowsAGENTS — Managed Agents expand with background: true for async server-side runs and polling, remote MCP server integration, and refreshing credentials across interactionsMEMORY — The Memory Bank IngestEvents API is generally available, decoupling event ingestion from memory generation so you can stream content continuouslyTHROUGHPUT — Provisioned Throughput now lets you submit up to seven pending orders for the same model and regionDEPRECATE — Image generation models shut down on August 17, and the Grok 4.1 family on the Gemini Enterprise Agent Platform on August 20
Back to Blog

Gemini Lab Weekly Highlights (May 9–15, 2026) — Art × Gemini Experiments, Wallpaper App Implementations, and Google I/O Eve

weekly-highlightsGeminiGemini 3.2Imagen 4wallpaper-appindie-dev

Masaki Hirokawa here from Gemini Lab.

Week 3 of May is wrapped up. The whole week felt like a prelude — Google I/O 2026 opens in two days — yet the articles I ended up writing kept pulling toward something more grounded: implementations built to last in production rather than to chase the announcement cycle.

Looking back, four pillars shaped the week. Art × Gemini experiments (verifying for myself where visual expression and AI actually intersect), Gemini integrations inside my 50M-download wallpaper apps (Function Calling, Embedding, asyncio parallelization, AdMob integration), deep-dives into iOS / Android / Expo implementations, and cost optimization alongside an honest three-month evaluation. Throughout it all, I was quietly trying to answer: "With Gemini as it stands today, what's genuinely possible — and where does it hit a wall?"

Pillar 1: Art × Gemini — Testing It as a Tool for Visual Expression

The most personally significant piece this week was 30 Days Expanding Original Artwork into 120 Wallpaper Variants with Gemini 3.2 Pro × Imagen 4 — An Artist-Developer's Asset Pipeline.

In the autumn of 2019, I looked up at a ring of light above Kichijoji Station and something shifted in how I related to visual expression. Since then I've kept making photocollage works by hand — but the conversion layer between "art piece" and "product wallpaper" had always been a bottleneck. Designing prompts in Gemini 3.2 Pro and generating wallpaper variations through Imagen 4 let me produce 120 wallpaper assets in 30 days. The artwork itself stays handmade; AI handles the derivative production. That division of labor finally feels real.

The follow-up was I Showed My Artwork to Gemini Vision — An Honest Review from an Artist with 17 International Awards. I fed several pieces — including work recognized in the A'Design Award DAC (World's 14th Best Designer) — to Gemini Vision and watched how it interpreted them. The interesting part wasn't accuracy; it was where the model looks. Running that experiment clarified something about the boundaries of what AI considers "visually meaningful." These two posts are closer to artistic exploration than technical guides.

Pillar 2: Wallpaper App × Gemini — Implementation Patterns from the 50M-DL Trenches

In parallel with the art work, this week I focused on writing up Gemini integrations I actually shipped inside the wallpaper app portfolio.

I Used Gemini Function Calling as a Recommendation Engine Inside My 50M-Download Wallpaper App is about having Gemini infer what wallpaper a user is looking for and returning categories and tags. Written against the Beautiful HD Wallpapers codebase, so the lens is less benchmark and more "does this actually match real user behavior."

On the Embedding side, Trimming Gemini Embedding's output_dimensionality from 768 to 256 Cut My Vector DB Storage by Two-Thirds was the most practically impactful experiment this week. Quality degradation was nearly zero, and Cloudflare Vectorize storage costs dropped to one-third. The honest version of this story is that I'd never actually checked whether 768 dimensions were necessary. It took deliberately questioning a default to find out.

Parallelizing Gemini API Calls with asyncio Made My Wallpaper App's Multilingual Description Generation 12× Faster is one of those pieces where the number speaks for itself. Switching from sequential calls (Japanese → English → Korean → Chinese → Spanish) to asyncio.gather() produced a 12× speedup — and that's measured, not theoretical. If you've been putting off parallelizing your Gemini calls, this week's a good time to revisit that.

For the AdMob side, I Built a System That Tells Me About AdMob Revenue Drops by 8 AM — Using Gemini API and Architecture Patterns for Maximizing AdMob Revenue in an Indie iOS Wallpaper App with Gemini API cover both "protecting revenue" and "growing revenue." In 12 years of running an app business, detecting AdMob anomalies late has cost me more than once. Even just having the morning detection in place changes the game.

Pillar 3: iOS / Android / Expo — Making It Work on Real Devices

Mobile implementation got thorough coverage this week.

One Week of Using Gemini CLI for iOS App Development — What I Actually Learned came directly from using Gemini CLI throughout the Beautiful HD Wallpapers iOS update. I tried to write honestly about "how it differs from Claude Code" and "how far you can delegate Swift code." It's a first-impressions report rather than a verdict.

Integrating the Gemini TTS API into a SwiftUI App — Two Problems I Hit Connecting It with AVAudioEngine came from trying to add TTS to Relaxing Healing and running straight into errors the official docs don't warn you about. The AVAudioEngine integration path breaks in specific ways if you follow the example code literally.

Building and Shipping an AI Chat App with Expo + Gemini API — An Implementation Record Through App Store Approval is a record of a small React Native / Expo AI chat app making it through App Store review. I left in the parts about "design decisions I wanted to revisit after approval" rather than cleaning them up into a success story.

Pillar 4: Cost Optimization and an Honest Three-Month Evaluation

A few pieces this week came from sustained use rather than fresh experiments.

Controlling Gemini 2.5 Pro's thinking_budget — A Pattern for Cutting Costs by Two-Thirds While Preserving Reasoning Quality walks through stepping back from "full power on every task" and setting thinking_budget proportionally to task complexity. Running that change in production cut costs by two-thirds without meaningful quality loss.

Three Months Running Gemini API as a Real App Backend — A Solo Developer's Honest Evaluation is the kind of post I can only write after time passes. The parts that held up, the parts that quietly disappointed me — both are in there. Read it alongside A 12-Year Indie Developer's Measured Cost-Effectiveness Comparison of Gemini API, Claude API, and GPT-4o for a fuller picture of which API fits which type of project.

With Google I/O 2026 Two Days Away

The I/O 2026 keynote opens in two days. I'll be publishing first-response pieces as announcements land — but the pieces I'll prioritize are the ones asking "is this actually usable, and is it worth integrating into production?" More than "new feature dropped!", the question that's shaped my judgment over 12 years of shipping apps is "will this still be worth depending on three months from now?"

Thanks for reading along this week. See you on the other side of I/O.