Thank you for your interest in contributing!
# Install dependencies
npm install
# Run tests
npm test
# Type check
npm run typecheck
# Lint and format
npm run lint
npm run formatResponsibilities:
- Display/hide overlay window
- Read stored metadata from native storage
- Apply
minDurationMsandmaxDurationMstiming constraints - Handle fade and scale animations (based on
animationsettings) - Support animated images (GIF/APNG)
- Manage overlay lifecycle independently of JavaScript
iOS Implementation:
- Uses
UIWindowwithUIImageViewfor overlay ImageIOframework for GIF/APNG frame extractionUIView.animatefor fade effects- Timer-based auto-hide for
maxDurationMs
Android Implementation:
- Uses
DialogwithAnimatedImageViewfor overlay AnimatedImageDrawable(API 28+) for GIF/APNG supportView.animate()for fade effects- Handler-based auto-hide for
maxDurationMs
Responsibilities:
- Fetch splash configuration from remote source
- Download and cache images
- Store metadata in native storage
- Provide API to hide overlay (
DynamicSplash.hide()) - Check overlay visibility (
DynamicSplash.isVisible())
NOT Responsible For:
- Displaying the overlay (native handles this)
- Managing display state (native handles this)
- Timing constraints (native handles this)
- Create a feature branch from
main - Ensure all tests pass (
npm test) - Update documentation if needed
- Follow the existing code style