惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Schneier on Security
L
LangChain Blog
博客园 - Franky
Microsoft Security Blog
Microsoft Security Blog
M
MIT News - Artificial intelligence
月光博客
月光博客
云风的 BLOG
云风的 BLOG
MongoDB | Blog
MongoDB | Blog
量子位
AWS News Blog
AWS News Blog
Jina AI
Jina AI
Webroot Blog
Webroot Blog
L
Lohrmann on Cybersecurity
Cisco Talos Blog
Cisco Talos Blog
Latest news
Latest news
Y
Y Combinator Blog
The GitHub Blog
The GitHub Blog
NISL@THU
NISL@THU
The Register - Security
The Register - Security
美团技术团队
博客园 - 三生石上(FineUI控件)
I
Intezer
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
N
Netflix TechBlog - Medium
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
The Exploit Database - CXSecurity.com
C
Cisco Blogs
Attack and Defense Labs
Attack and Defense Labs
S
Securelist
Know Your Adversary
Know Your Adversary
MyScale Blog
MyScale Blog
C
CERT Recently Published Vulnerability Notes
D
Darknet – Hacking Tools, Hacker News & Cyber Security
U
Unit 42
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
雷峰网
雷峰网
B
Blog
P
Privacy International News Feed
W
WeLiveSecurity
T
Threatpost
P
Palo Alto Networks Blog
O
OpenAI News
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园_首页
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Forbes - Security
Forbes - Security
K
Kaspersky official blog
Recent Announcements
Recent Announcements
A
About on SuperTechFans
B
Blog RSS Feed

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
Expo SDK 56 Is Out, and a Few Things Finally Clicked Into Place
Manthan Kasl · 2026-05-24 · via DEV Community

React Native 0.85, much faster builds, and the one change that will probably break your imports._

Based on the official release notes: expo.dev/changelog/sdk-56

SDK 56 dropped on May 22, and I spent the weekend pulling one of my apps onto it. Most release notes read like a wall of changelog entries, so instead of repeating all of that, I want to walk through the handful of changes that actually show up in your day to day.

Quick version up top: SDK 56 ships React Native 0.85 and React 19.2. If you came from SDK 55 you skipped 0.84, so this is two RN versions in one jump.

Builds got faster, and you don’t have to do anything

I noticed it before I even opened the changelog.

On iOS, the heaviest Expo modules now ship as prebuilt frameworks. No config change, it just happens, locally and on EAS. Expo measured around a one minute cut on median clean builds, roughly 16 percent. EAS goes a step further and precompiles common community libs like Reanimated and Screens too, which stacks another minute or so on top.

Android got the bigger architectural win. A new Kotlin compiler plugin replaces the old reflection based module setup with metadata generated at build time. The numbers Expo published: cold starts about 40 percent faster, time to interactive 1.5x, onCreate 1.7x. Nothing for you to wire up, you just get it on upgrade.

captionless image

There’s also an experimental flag for Android codegen using precompiled headers. In their benchmark a CMake task dropped from 17 minutes to 6. It’s off by default and you opt in through expo-build-properties, so worth a try if your build graph is heavy.

captionless image

Hermes v1 is the default now

Faster startup, lower memory, better runtime. If something breaks you can flip useHermesV1 back off in expo-build-properties, but I'd leave it on and see how it goes.

One thing to check before you start: Node below v20.19.4 is no longer supported. Look at your CI image first, or you’ll waste twenty minutes wondering why nothing installs.

Expo UI is stable

After three SDK cycles, the SwiftUI and Jetpack Compose APIs in Expo UI are stable and in the default template. There’s now a universal component set (Host, Row, Column, Text, TextInput, Button, Switch, Slider, and a few more) that runs on iOS, Android, and web without splitting files into .ios.tsx and .android.tsx. Web is still experimental though, so don't lean on it for production yet.

The part I actually like is the drop in replacements for community libraries. You change the import and move on:

// before
import DateTimePicker from '@react-native-community/datetimepicker';
// after
import DateTimePicker from '@expo/ui/community/datetime-picker';

Enter fullscreen mode Exit fullscreen mode

Same idea works for the bottom sheet, picker, segmented control, masked view, and slider. Some props differ because it’s backed by SwiftUI and Compose instead of UIKit, so read the docs before swapping everything blindly.

The one that will bite you: expo-router split from react-navigation

Expo Router forked the navigation primitives it used to borrow from React Navigation. It still sits on react-native-screens, and React Navigation is still fully supported if you prefer it. But if your code imports directly from @react-navigation/* inside an Expo Router project, those imports break.

There’s a codemod that handles most of it:

npx expo-codemod sdk-56-expo-router-react-navigation-replace [your-source-dir]

Enter fullscreen mode Exit fullscreen mode

expo-doctor will also now warn you if you have both expo-router and react-navigation installed, since that combo is usually a mistake after this change.

expo-file-system caught up

The new file-system API became the default back in SDK 54, and it had gaps. SDK 56 closes most of them. Downloads report progress and can be cancelled with AbortSignal, copy and move take an overwrite flag, and there are proper task based upload and download APIs with progress and resumable transfers. File picking handles multiple files and MIME types in one call now too.

If you held off moving from the legacy module because of missing features, this is probably the release where you stop holding off.

Smaller things worth knowing

  • Calendar, Contacts, and MediaLibrary APIs are now stable, with an object based design. The old ID based APIs are deprecated.
  • iOS Widgets and Live Activities are stable.
  • expo/fetch is now the global fetch. Usually invisible, but set EXPO_PUBLIC_USE_RN_FETCH=1 if you need the old behavior.
  • copy() and move() in file-system are async now. Use copySync() and moveSync() if you depended on the sync versions.
  • New projects scaffold AGENTS.md and CLAUDE.md, plus official Expo skills for Claude Code and the other agents.

Version bumps to plan for

  • Minimum iOS is now 16.4, up from 15.1. That drops some old devices like the iPhone 7 and the first gen SE.
  • Xcode 26.4 is required to compile native iOS.
  • TypeScript moves to 6.0.3.

Expo Skills, and why I let an agent do the upgrade

I didn’t expect to care about this one.

Expo now ships official Skills for AI agents. If you haven’t run into Skills yet, they’re structured instruction files that teach an agent the correct way to do a specific Expo task instead of letting it improvise from half remembered docs. They work with Claude Code, Cursor, Codex, and the others. New SDK 56 projects even scaffold AGENTS.md and CLAUDE.md for you.

Install them in Claude Code:

/plugin marketplace add expo/skills
/plugin install expo

Enter fullscreen mode Exit fullscreen mode

For any other agent, the skills CLI does the same job:

npx skills add expo/skills

Enter fullscreen mode Exit fullscreen mode

There’s a long list (building native UI, deployment, dev client, modules, EAS workflows, brownfield, and more), but the one that matters for this post is [upgrading-expo](https://github.com/expo/skills/blob/main/plugins/expo/skills/upgrading-expo/SKILL.md). It handles SDK upgrades as an actual sequence rather than a single command: it reads your package.json, runs the install with --fix, walks the breaking changes, validates your config plugins, checks native module compatibility, and flags the bits it can't safely auto-fix. It also carries migration references for the trickier moves like the New Architecture, React 19, native tabs, and expo-av to expo-audio/expo-video.

The Expo docs straight up recommend it now: if you use a coding agent, install Skills and run the [upgrading-expo](https://github.com/expo/skills/blob/main/plugins/expo/skills/upgrading-expo/SKILL.md) skill rather than upgrading by hand. The full list lives at docs.expo.dev/skills.

Upgrading

If you’d rather drive it yourself, for an app on 55:

npx expo install expo@^56.0.0 --fix
npx expo-doctor@latest

Enter fullscreen mode Exit fullscreen mode

Then read the breaking changes section twice before you push, bump your iOS deployment target to 16.4 in any custom module podspecs, and make a fresh dev build if you use expo-dev-client.

For my upgrade I let the [upgrading-expo](https://github.com/expo/skills/blob/main/plugins/expo/skills/upgrading-expo/SKILL.md) skill take the first pass, then went through the diff myself. It caught the react-navigation imports and the async copy/move changes before I hit them at runtime, which is exactly the kind of thing you forget when you're moving fast. The router codemod did the rest of the heavy lifting, and the build speed difference on EAS was real, not a benchmark you only see in a blog post. If you maintain a production app, this is one of the more worthwhile jumps in a while.