본문으로 건너뛰기

#ios

nextjsbffmiddlewarecookieauthenticationreactresize-observercss-variablesperformancerenderingpostmessagereact-hook-formbrowser-apifrontendnext-jshealthkitiosswiftworkoutapple-watchwatchosreact-19useeffectrenderanti-patternmonorepopnpmturboreposemverworkspacepackage-managementpythonvenvvirtual-environmenttroubleshootinggpspedometerlive-activityreact-nativeauto-pauseclaude-coderemote-controlmobile-developmentweb-sessionproductivityrtktoken-optimizationfigma-apideveloper-toolscdnimage-optimizationinfrastructuremermaidmdxdiagramaws-s3presigned-urlfile-uploadhmacsecurityagentic-looptoken-flowhooksprompt-cachingshell-scriptautomationfigmacliskillagentresponsive-publishingcontext-windowsubagentteammulti-agentai-collaborationpublishingclaude-mdmemoryai-workflowhistory-apiformxcodeeasexpowidgetswiftuiapp-groupsandboxhtmlaccessibilitya11yseonice-authpost-vs-getcallbackin-app-browserssgstatic-site-generationgetstaticpropsgetstaticpathscsscontainbrowserjavascriptanimationlerplinear-interpolationrequestanimationframecode-splittingreact-lazydynamic-importpreloadingreflowrepaintcomposite-layertransformwill-changebrowser-renderingbrowser-image-compressionimage-uploadmobile-webdocusaurusmintlifydocumentationopenapistatic-site-generator3d-transformperspectivetransform-stylesearch-consolesitemapmetadatacanonicaljsxtranspileastvirtual-domdomreconciliationsynthetic-eventfluxdeclarativeimmutabilityfrontend-historymvcmvvmjquerybackboneswiperoauthuser-agent-detectionpost-messagesession-storagessrisrcache-controlvercelawsroute53dnsdomaintxt-recordintersection-observerinfinite-scrollchat-uiscroll-behaviortypescriptvpcec2iamcloud-basicsperformance-nowdom-high-res-timestampmonotonic-clockuser-timing-apinode-perf-hooksjenkinsci-cdgithub-webhookkubernetesdockercicdcontinuous-integrationcontinuous-deliverycontinuous-deploymentdevopsdata-structuremapsetgitgithubforkcloneversion-controloss-contributiongenericstype-systemkeyofinterfacegit-branchremotepruneclosurelexical-scopeexecution-contextdeep-divelexical-environmenthoistingscopethisbindingcssomrender-treetcpfirst-class-objectfunctionargumentsvarletconsttype-aliasreduxredux-toolkitstate-managementmouse-eventdrag
Article

HealthKit API 완전 정복 — Workout 트래킹 관점에서 본 API 비교

iOS 러닝 앱을 만들면서 HealthKit API 이름들이 너무 비슷해 길을 잃었다. 다음에 또 헤매지 않으려고 한 번 정리한 학습 일지다.

READ MOREREAD MORE
Article

iOS 러닝 앱 측정 기능 구현 회고

iOS 러닝 앱 개발 중 마주친 Auto-Pause, GPS/Pedometer 이중 거리 측정, 위젯 동기화, 백그라운드 처리 등 실제 트러블슈팅 10가지를 정리한 회고.

READ MOREREAD MORE
Article

iOS 빌드 서명 및 위젯 중복 등록 트러블슈팅

EAS Production 빌드에서 부딪힌 서명 충돌, appex 중복 등록, 위젯 상태 동기화 버그를 어떻게 풀었는지.

READ MOREREAD MORE
Article

Live Activity (위젯) 트러블슈팅

iOS Live Activity 위젯에서 부딪힌 타이머 동기화, 딥링크, 백그라운드 auto-pause 이슈를 어떻게 풀었는지.

READ MOREREAD MORE
Article

Live Activity 추가 후 Xcode 아카이브 및 배포 에러 트러블슈팅

Live Activity 익스텐션 타겟을 추가한 뒤 무너진 프로비저닝 파이프라인을 EAS 원격 빌드로 다시 세운 일지.

READ MOREREAD MORE
Article

React Native에서 Live Activity를 구현하며 이해한 App Group, Sandbox, AsyncStorage 정리

러닝 앱 PIRL에 Live Activity와 위젯을 붙이면서 왜 AsyncStorage만으로는 안 되는지, App Group이 왜 필요한지 이해한 과정을 정리했다.

READ MOREREAD MORE