"매 각기 다른 hardware / OS 위에 매 하나의 application surface 를 통합 제공하는 architecture 전략.". Mobile (iOS/Android) + Desktop (macOS/Windows/Linux) + Web + XR 의 매 boundary 가 매 흐려지는 흐름. 2026 의 매 driver 는 매 Apple Silicon 의 unified architecture, Mac Catalyst, visionOS, Android desktop mode, ChromeOS Linux subsystem, Web Capabilities API.
매 핵심
매 Convergence vector
Hardware: 매 ARM 통일 (M-series, Snapdragon X, Tegra) → 매 single binary build target.
Input: 매 touch + mouse + keyboard + voice + gaze 의 매 동일 OS 처리.
Form factor: 매 foldable, dual-screen, XR — 매 same OS 가 매 다른 layout.
Distribution: 매 same app bundle 의 매 multi-platform store 배포.
Data: 매 iCloud / Google Drive / OneDrive 의 매 cross-device state sync.
Streaming: Cloud rendering — Stadia (RIP), GeForce Now, Xbox Cloud.
매 trade-off
Native: 매 best fidelity, 매 highest cost.
Hybrid: 매 single codebase, 매 platform-specific UX 손실.
Web: 매 reach, 매 hardware API 제한.
Streaming: 매 zero-install, 매 latency / cost burden.
매 응용
SaaS 제품의 multi-platform 배포 — Notion, Figma, Linear.
Game 의 cross-play (PC, console, mobile, cloud).
Productivity suite (MS Office, iWork) 의 universal binary.
AI assistant (ChatGPT, Claude) 의 매 OS-level integration.
💻 패턴
Pattern 1 — SwiftUI universal target (Apple 생태)
importSwiftUI@mainstructApp:App{varbody:someScene{WindowGroup{ContentView()}#ifos(visionOS).windowStyle(.volumetric)#endif}}// 매 single project — iOS, macOS, visionOS, watchOS, tvOS 빌드 가능.// 매 #if os(...) 로 매 platform-specific.
import{Platform,Pressable,Text}from'react-native';exportfunctionButton({onPress,label}:Props){return(<PressableonPress={onPress}style={({pressed})=>({opacity: pressed?0.7 : 1,cursor: Platform.OS==='web'?'pointer':undefined,})}><Text>{label}</Text></Pressable>);}// 매 iOS, Android, Web 의 매 single component.
Pattern 4 — Flutter responsive layout
classHomeScreenextendsStatelessWidget{@overrideWidgetbuild(BuildContextcontext){finalwidth=MediaQuery.of(context).size.width;if(width>=1200)return_DesktopLayout();if(width>=600)return_TabletLayout();return_MobileLayout();}}// 매 same widget tree, 매 form factor 별 분기.
Pattern 5 — PWA with Web Capabilities (2026)
// 매 File System Access API.
consthandle=awaitwindow.showSaveFilePicker({suggestedName:'doc.txt',});constwritable=awaithandle.createWritable();awaitwritable.write(content);awaitwritable.close();// 매 Web Bluetooth, USB, Serial, NFC, WebHID — 매 native 영역 침투.
Pattern 6 — Tauri (Web UI + Rust core)
// src-tauri/src/main.rs
#[tauri::command]fnread_log()-> Result<String,String>{std::fs::read_to_string("/var/log/app.log").map_err(|e|e.to_string())}fnmain(){tauri::Builder::default().invoke_handler(tauri::generate_handler![read_log]).run(tauri::generate_context!()).expect("error");}// 매 Web frontend + 매 Rust backend, 매 single binary.
// 매 Electron 대비 매 size / memory 우위.
Pattern 7 — Adaptive input handling
typeInputModality='touch'|'mouse'|'pen'|'keyboard'|'gaze';functiondetectModality(e: PointerEvent):InputModality{if(e.pointerType==='touch')return'touch';if(e.pointerType==='pen')return'pen';return'mouse';}// 매 hover state 는 매 mouse / pen 만 — 매 touch 는 매 X.
button.addEventListener('pointerover',(e)=>{if(detectModality(e)!=='touch')showTooltip();});
import{BroadcastChannel}from'broadcast-channel';constchannel=newBroadcastChannel('document-state');// 매 device A → cloud sync.
syncToCloud(state);// 매 device B → 매 cloud poll + local broadcast.
constremote=awaitfetchFromCloud();channel.postMessage({type:'state-arrived',state: remote});// 매 actual handoff: iCloud / WidgetKit / Activity API.
매 결정 기준
상황
Strategy
매 Apple-only 생태
SwiftUI universal
매 iOS + Android primary
Kotlin Multiplatform / React Native
매 Mobile + Web 동시
React Native + RN-Web / Flutter web
매 Desktop primary, web tech
Tauri / Electron
매 maximum reach, low fidelity
PWA
매 latency 허용, GPU heavy
Cloud streaming
기본값: 매 product 의 매 platform priority 에 따른 매 strategy 선택. 매 single codebase 환상 의 회피 — 매 항상 매 platform-specific tweak 필요.
언제: 매 multi-platform product roadmap, 매 framework 선정, 매 platform-specific divergence 설계.
언제 X: 매 single-platform 으로 충분한 product 에 매 overengineering. 매 native fidelity 필수 (game, AR) 인데 매 hybrid 강제.
❌ 안티패턴
"Write once, run anywhere" naivety: 매 항상 매 platform-specific work 발생.
Lowest common denominator UI: 매 모든 platform 에 매 동일 UX — 매 native feel 손실.
무분별 abstraction layer: 매 abstraction over abstraction — 매 debug 지옥.
매 platform 의 native API 회피: 매 OS 의 differentiator 미활용.
Late-stage convergence: 매 product 의 maturity 후 매 plat-add — 매 architecture 재작성.
🧪 검증 / 중복
Verified (Apple WWDC 2025, Google I/O 2025, KMP roadmap 2026).