[2026-05-27] taiga sync: wiki/concepts/watchlist-automation.md wiki/tech/reflect-skip-fuse.md
This commit is contained in:
@@ -82,7 +82,7 @@ Eagle previously ran `watchlist-nightly` via SSH; now Kraken runs it locally.
|
|||||||
|
|
||||||
**Paths on Kraken HDD (UUID 49e8f586-3839-4c5d-a1e1-58bfc3579ade):**
|
**Paths on Kraken HDD (UUID 49e8f586-3839-4c5d-a1e1-58bfc3579ade):**
|
||||||
- `/home/kraken/obsidian` → symlink to `/srv/dev-disk-by-uuid-.../obsidian`
|
- `/home/kraken/obsidian` → symlink to `/srv/dev-disk-by-uuid-.../obsidian`
|
||||||
- watchlist-sync: `/srv/dev-disk-by-uuid-.../watchlist-sync`
|
- watchlist-sync: `/srv/dev-disk-by-uuid-.../Developer/watchlist-sync`
|
||||||
|
|
||||||
## Discover — Фильтрация
|
## Discover — Фильтрация
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
title: Reflect — Skip Fuse (SwiftUI/Kotlin)
|
title: Reflect — Skip Fuse (SwiftUI/Kotlin)
|
||||||
created: '2026-05-23'
|
created: '2026-05-23'
|
||||||
updated: '2026-05-28'
|
updated: '2026-05-23'
|
||||||
type: tech
|
type: tech
|
||||||
namespace: personal
|
namespace: personal
|
||||||
tags: [reflect, swift, kotlin, ios, android, pitfalls]
|
tags: [reflect, swift, kotlin, ios, android, pitfalls]
|
||||||
@@ -30,15 +30,3 @@ require explicit Kotlin stubs until Skip's transpilation coverage catches up.
|
|||||||
- [ ] Create matching Kotlin stub in `android/src/.../views/`
|
- [ ] Create matching Kotlin stub in `android/src/.../views/`
|
||||||
- [ ] Register in Android router/factory
|
- [ ] Register in Android router/factory
|
||||||
- [ ] Run `./gradlew build` to verify no missing class errors
|
- [ ] Run `./gradlew build` to verify no missing class errors
|
||||||
|
|
||||||
## `#if SKIP` vs `#if SKIP_BRIDGE` — Definitive Rule
|
|
||||||
|
|
||||||
| Macro | When to use |
|
|
||||||
|-------|-------------|
|
|
||||||
| `#if SKIP` | Any code that runs **only on Android** via Skip (UI layout, Android-only APIs, SAF file access). Works in all Skip-compiled code. |
|
|
||||||
| `#if SKIP_BRIDGE` | **Only** for JNI bridge calls: `AnyDynamicObject`, calling Kotlin statics from Swift, `import SkipBridge`. Available only in bridge modules. |
|
|
||||||
|
|
||||||
**Rule**: UI buttons, conditional layouts, Android-only views → `#if SKIP`.
|
|
||||||
`AnyDynamicObject(forStaticsOfClassName:)` and JNI → `#if SKIP_BRIDGE`.
|
|
||||||
|
|
||||||
Using `#if SKIP_BRIDGE` for UI will silently exclude the code on Android (it's not a bridge module), causing buttons/views to disappear with no error.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user