Skip to content

Commit c0226aa

Browse files
committed
feat: docs
1 parent b1081e8 commit c0226aa

4 files changed

Lines changed: 40 additions & 30 deletions

File tree

docs/docs/brownie/codegen.mdx

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,11 @@ brownfield --version # Show version
1414

1515
## Configuration
1616

17-
Add to your app's `package.json`:
17+
Add to your app's `package.json` (only needed for Kotlin):
1818

1919
```json
2020
{
2121
"brownie": {
22-
"swift": "./ios/Generated/",
2322
"kotlin": "./android/app/src/main/java/com/example/",
2423
"kotlinPackageName": "com.example"
2524
}
@@ -28,11 +27,10 @@ Add to your app's `package.json`:
2827

2928
| Field | Required | Description |
3029
| ------------------- | -------- | ---------------------------------------------------------- |
31-
| `swift` | No\* | Output directory for Swift files |
32-
| `kotlin` | No\* | Output directory for Kotlin files |
30+
| `kotlin` | No | Output directory for Kotlin files |
3331
| `kotlinPackageName` | No | Kotlin package name (extracted from path if not specified) |
3432

35-
\*At least one of `swift` or `kotlin` is required.
33+
**Note:** Swift files are always generated to `node_modules/@callstack/brownie/ios/Generated/`. This path is auto-resolved and not configurable.
3634

3735
## Generated Output
3836

@@ -47,16 +45,18 @@ interface BrownfieldStore extends BrownieStore {
4745

4846
### Swift Output
4947

48+
Generated to: `node_modules/@callstack/brownie/ios/Generated/BrownfieldStore.swift`
49+
5050
```swift
5151
import Brownie
5252

53-
struct BrownfieldStore: Codable {
54-
var counter: Double
55-
var user: User
53+
public struct BrownfieldStore: Codable {
54+
public var counter: Double
55+
public var user: User
5656
}
5757

58-
struct User: Codable {
59-
var name: String
58+
public struct User: Codable {
59+
public var name: String
6060
}
6161

6262
extension BrownfieldStore: BrownieStoreProtocol {
@@ -66,6 +66,7 @@ extension BrownfieldStore: BrownieStoreProtocol {
6666

6767
The generated struct:
6868

69+
- Uses `public` access level for framework compatibility
6970
- Conforms to `Codable` for JSON serialization
7071
- Conforms to `BrownieStoreProtocol` with auto-generated `storeName`
7172
- Uses mutable `var` properties

docs/docs/brownie/overview.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,13 +98,13 @@ function Counter() {
9898
import Brownie
9999

100100
struct ContentView: View {
101-
@UseStore<AppStore> var store
101+
@UseStore(\AppStore.counter) var counter
102102

103103
var body: some View {
104104
VStack {
105-
Text("Count: \(Int(store.state.counter))")
105+
Text("Count: \(Int(counter))")
106106
Button("Increment") {
107-
store.set { $0.counter += 1 }
107+
$counter.set { $0 + 1 }
108108
}
109109
}
110110
}

docs/docs/brownie/store-definition.mdx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,17 +43,17 @@ interface BrownfieldStore extends BrownieStore {
4343
}
4444
```
4545

46-
Generated Swift:
46+
Generated Swift (to `node_modules/@callstack/brownie/ios/Generated/`):
4747

4848
```swift
49-
struct BrownfieldStore: Codable {
50-
var counter: Double
51-
var user: User
49+
public struct BrownfieldStore: Codable {
50+
public var counter: Double
51+
public var user: User
5252
}
5353

54-
struct User: Codable {
55-
var name: String
56-
var email: String
54+
public struct User: Codable {
55+
public var name: String
56+
public var email: String
5757
}
5858
```
5959

packages/brownie/ArchitectureOverview.md

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ Add to your app's `package.json`:
4848
```json
4949
{
5050
"brownie": {
51-
"swift": "./ios/Generated/",
5251
"kotlin": "./android/app/src/main/java/com/example/",
5352
"kotlinPackageName": "com.example"
5453
}
@@ -57,11 +56,10 @@ Add to your app's `package.json`:
5756

5857
| Field | Required | Description |
5958
| ------------------- | -------- | ----------------------------------------- |
60-
| `swift` | No\* | Output directory for Swift files |
61-
| `kotlin` | No\* | Output directory for Kotlin files |
59+
| `kotlin` | No | Output directory for Kotlin files |
6260
| `kotlinPackageName` | No | Kotlin package name (extracted from path) |
6361

64-
\*At least one of `swift` or `kotlin` is required.
62+
**Note:** Swift files are always generated to `node_modules/@callstack/brownie/ios/Generated/`. This path is auto-resolved and not configurable.
6563

6664
### Store Definition
6765

@@ -110,16 +108,18 @@ declare module '@callstack/brownie' {
110108

111109
### Generated Output
112110

113-
**Swift** (`Codable` struct with mutable properties):
111+
**Swift** (`Codable` struct with public access and mutable properties):
114112

115113
```swift
116-
struct BrownfieldStore: Codable {
117-
var counter: Double
118-
var isLoading: Bool
119-
var user: String
114+
public struct BrownfieldStore: Codable {
115+
public var counter: Double
116+
public var isLoading: Bool
117+
public var user: String
120118
}
121119
```
122120

121+
Generated to: `node_modules/@callstack/brownie/ios/Generated/BrownfieldStore.swift`
122+
123123
**Kotlin** (data class):
124124

125125
```kotlin
@@ -185,7 +185,9 @@ packages/brownie/
185185
├── ios/
186186
│ ├── BrownieModule.h/.mm # TurboModule, installs JSI bindings
187187
│ ├── BrownieStoreBridge.h/.mm # ObjC++ wrapper for Swift access
188-
│ └── BrownieStore.swift # Swift Store<T>, StoreManager, @UseStore
188+
│ ├── BrownieFollyConvert.h # FollyConvert import compatibility header
189+
│ ├── BrownieStore.swift # Swift Store<T>, StoreManager, @UseStore
190+
│ └── Generated/ # Auto-generated Swift store types (codegen output)
189191
```
190192

191193
### C++ Core
@@ -216,6 +218,13 @@ packages/brownie/
216218

217219
### iOS Bridge
218220

221+
**BrownieFollyConvert.h** - Compatibility header for FollyConvert imports:
222+
223+
- Handles different import paths depending on CocoaPods configuration
224+
- Supports static libs with header maps (default)
225+
- Supports `use_frameworks! :linkage => :static` setups
226+
- Falls back to `RCTFollyConvert.h` when available
227+
219228
**BrownieStoreBridge** (ObjC++) - Exposes C++ to Swift:
220229

221230
- `registerStore(withKey:)` - Create C++ store, set up notification callback

0 commit comments

Comments
 (0)