You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+8Lines changed: 8 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,14 @@
2
2
3
3
Detailed changelog for Perry. See CLAUDE.md for concise summaries.
4
4
5
+
## v0.2.178
6
+
-**Splash screen support for iOS and Android**
7
+
- Parse `perry.splash` config from `package.json` with three tiers: universal (single image + color), per-platform overrides, full custom file override
8
+
- iOS: auto-generate LaunchScreen.storyboard with centered image (128x128pt, scaleAspectFit) and custom background color; or use a custom storyboard
9
+
- Android: `Theme.Perry.Splash` style with `windowBackground` layer-list drawable; activity calls `setTheme()` in `onCreate` to switch to normal theme
10
+
- New template file: `perry-ui-android/template/app/src/main/res/drawable/splash_background.xml`
Copy file name to clipboardExpand all lines: docs/src/getting-started/project-config.md
+74Lines changed: 74 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -48,6 +48,80 @@ When a package is listed here, Perry:
48
48
49
49
This is useful for pure TypeScript/JavaScript packages that don't rely on Node.js APIs. Packages that use native bindings, `eval()`, or dynamic `require()` won't work.
50
50
51
+
#### `splash`
52
+
53
+
Configure a native splash screen for iOS and Android. The splash screen appears instantly during cold start, before your app code runs.
54
+
55
+
**Minimal (both platforms share the same splash):**
56
+
57
+
```json
58
+
{
59
+
"perry": {
60
+
"splash": {
61
+
"image": "logo/icon-256.png",
62
+
"background": "#FFF5EE"
63
+
}
64
+
}
65
+
}
66
+
```
67
+
68
+
**Per-platform overrides:**
69
+
70
+
```json
71
+
{
72
+
"perry": {
73
+
"splash": {
74
+
"image": "logo/icon-256.png",
75
+
"background": "#FFF5EE",
76
+
"ios": {
77
+
"image": "logo/splash-ios.png",
78
+
"background": "#FFFFFF"
79
+
},
80
+
"android": {
81
+
"image": "logo/splash-android.png",
82
+
"background": "#FFFFFF"
83
+
}
84
+
}
85
+
}
86
+
}
87
+
```
88
+
89
+
**Full custom override (complete control):**
90
+
91
+
```json
92
+
{
93
+
"perry": {
94
+
"splash": {
95
+
"ios": {
96
+
"storyboard": "splash/LaunchScreen.storyboard"
97
+
},
98
+
"android": {
99
+
"layout": "splash/splash_background.xml",
100
+
"theme": "splash/themes.xml"
101
+
}
102
+
}
103
+
}
104
+
}
105
+
```
106
+
107
+
| Field | Description |
108
+
|-------|-------------|
109
+
|`splash.image`| Path to a PNG image, centered on the splash screen (both platforms) |
110
+
|`splash.background`| Hex color for the background (default: `#FFFFFF`) |
Copy file name to clipboardExpand all lines: docs/src/platforms/android.md
+34Lines changed: 34 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -48,6 +48,40 @@ Perry maps UI widgets to Android views via JNI:
48
48
-**Alerts**: `PerryBridge.showAlert`
49
49
-**Sheets**: Dialog (modal)
50
50
51
+
## Splash Screen
52
+
53
+
Perry's Android template includes a splash theme (`Theme.Perry.Splash`) that displays a `windowBackground` drawable during cold start. Configure it via `perry.splash` in `package.json`:
54
+
55
+
```json
56
+
{
57
+
"perry": {
58
+
"splash": {
59
+
"image": "logo/icon-256.png",
60
+
"background": "#FFF5EE"
61
+
}
62
+
}
63
+
}
64
+
```
65
+
66
+
The image is centered via a `layer-list` drawable with a solid background color. The activity switches to the normal theme in `onCreate` before inflating the layout, so the splash disappears as soon as the app is ready.
67
+
68
+
For full control, provide custom drawable and theme XML files:
69
+
70
+
```json
71
+
{
72
+
"perry": {
73
+
"splash": {
74
+
"android": {
75
+
"layout": "splash/splash_background.xml",
76
+
"theme": "splash/themes.xml"
77
+
}
78
+
}
79
+
}
80
+
}
81
+
```
82
+
83
+
See [Project Configuration](../getting-started/project-config.md#splash) for the full config reference.
84
+
51
85
## Differences from Desktop
52
86
53
87
-**Touch-only**: No hover events, no right-click context menus
Copy file name to clipboardExpand all lines: docs/src/platforms/ios.md
+29Lines changed: 29 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -70,6 +70,35 @@ perry widget.ts --target ios-widget
70
70
71
71
See [Widgets (WidgetKit)](../widgets/overview.md) for details.
72
72
73
+
## Splash Screen
74
+
75
+
Perry auto-generates a native `LaunchScreen.storyboard` from the `perry.splash` config in `package.json`. The splash screen appears instantly during cold start.
76
+
77
+
```json
78
+
{
79
+
"perry": {
80
+
"splash": {
81
+
"image": "logo/icon-256.png",
82
+
"background": "#FFF5EE"
83
+
}
84
+
}
85
+
}
86
+
```
87
+
88
+
The image is centered at 128x128pt with `scaleAspectFit`. You can provide a custom storyboard for full control:
0 commit comments