React Native의 Modal (3. 구조적인 성능 한계점과 해결법)
개요 Android 에서 Modal 을 쓰다 보면 코드로는 설명이 안 되는 증상들을 만난다. 모달을 열고 닫을 때 한 박자 끊긴다 모달이 뜬 직후의 첫 탭이 무시된다 모달 안에서 setState 가 일어날 때마다 버벅인다 API 응답을 모달에 반영하는 순간 프레임이
A tag-first restructuring of my frontend and React Native learning notes and retrospectives, curated on Velog (@diso592).
개요 Android 에서 Modal 을 쓰다 보면 코드로는 설명이 안 되는 증상들을 만난다. 모달을 열고 닫을 때 한 박자 끊긴다 모달이 뜬 직후의 첫 탭이 무시된다 모달 안에서 setState 가 일어날 때마다 버벅인다 API 응답을 모달에 반영하는 순간 프레임이
Maestro는 mobile.dev가 만든 모바일 UI 자동화·E2E 테스트 도구다.
개요 React Native 의 Modal 이 Android 에서 유독 무겁게 느껴지는 이유를 코드에서 찾다 보면 답이 안 나온다. 원인이 JS 쪽이 아니라 그 아래, 안드로이드가 화면을 그리는 방식에 있기 때문이다. Android 에서 ` 은 android.app
개요 Modal 은 React Native 가 기본으로 제공하는 코어 컴포넌트다. 현재 화면 위에 콘텐츠를 띄워 사용자의 흐름을 잠시 끊고 확인이나 입력을 받을 때 쓴다. 알림, 확인 다이얼로그, 이미지 뷰어, 짧은 폼 정도가 흔한 용도다. 이름만 보면 zIndex
개요 앞 편들에서 dev/beta/pro 세 환경을 TestFlight·Play Store까지 올리는 뼈대를 완성했다. 이번 편은 그 위에 얹는 마감 작업 세 가지를 다룬다. 환경별 아이콘·표시 이름 분리 — 한 폰에 dev/beta/pro를 깔았을 때 눈으로 구분
개요 reanimated, gesture-handler, mmkv, vision-camera 같이 네이티브 코드를 포함한 라이브러리를 다룰 때, 실무에서 반복적으로 부딪히는 것들만 추렸다. 한 줄 요약하면 "JS 패키지만 올리면 끝이 아니다. 플랫폼별 한 단계가 더
개요 AppState는 React Native가 제공하는 모듈로, 앱이 포그라운드에 있는지 백그라운드에 있는지를 알려준다. AppState.currentState는 그중에서 현재 앱 상태를 동기적으로 읽을 수 있는 정적 프로퍼티이다. 이벤트를 기다리지 않고 즉시 현
개요 출시 준비를 "스토어 심사를 통과하는가"로만 보면 절반만 보는 것이다. 실제로 문제가 되는 건 올린 뒤다. 디버그에서 멀쩡하던 화면이 릴리스 빌드에서 흰 화면이 되고, 심사에서 막히는 지점은 대부분 코드가 아니라 정책 신고 항목이며, 출시 후에 가장 아쉬운 건
개요 React Native로 앱을 만들다 보면 한 번쯤 이런 의문이 생긴다. iOS에는 UINavigationController가 있고 Android에는 Fragment와 백스택이 있는데, 왜 React Navigation은 이걸 그대로 쓰지 않고 JS에서 화면 스
1. 문제 현상 Android에서 상세 화면 상단의 헤더(뒤로가기 · 공유 등 액션 버튼이 있는 바)에서 공유하기를 누르면 OS 기본 공유 시트(시스템 바텀시트)가 올라온다. 그 시트를 닫는 순간, 헤더가 한 번 아래로 내려갔다가 다시 제자리로 튀어 올라오는 스프링 같
1. 개요 운영체제는 메모리(RAM)를 한 바이트씩 다루지 않는다. 너무 비효율적이기 때문이다. 대신 메모리를 일정한 크기의 고정된 덩어리로 잘라서 관리하는데, 이 덩어리 하나를 페이지(page)라고 부른다. 그리고 그 덩어리의 크기가 페이지 크기(page size)
개요 @gorhom/bottom-sheet로 바텀시트를 구현하다 보면, 동일한 UI/UX 요구사항임에도 BottomSheetModal과 BottomSheet 사이에 드래그 응답성 차이가 발생하는 경우가 있다. 두 컴포넌트는 내부적으로 동일한 코어를 공유하지만, 마운트
Velog GraphQL → deployment pipeline → RSC static rendering
Velog @diso592
GraphQL API
scripts/fetch-velog.ts
try/catch + exit(0)
src/data/velog-posts.json
committed seed
Next.js 16 RSC
utilFetchVelogArchive
/{locale}/writings
static HTML
A GitHub Actions cron polls the velog RSS and triggers a deploy webhook when a new post is detected.
SOURCE
velog.io/@diso592 posts + tags
FETCH
GraphQL cursor pagination on deploy
SEED
committed seed, previous JSON retained on failure
RENDER
server fs load, RSC static rendering
OUTPUT
/{locale}/writings static HTML