react-native-sdk-pianoio 0.3.1 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/README.md +176 -186
  2. package/android/build.gradle +29 -42
  3. package/android/gradle.properties +33 -14
  4. package/android/src/main/java/com/sdkpianoio/ComposerPianoImpl.kt +366 -0
  5. package/android/src/main/java/com/sdkpianoio/SdkPianoioModule.kt +281 -507
  6. package/android/src/main/java/com/sdkpianoio/TokenService.kt +139 -0
  7. package/android/test.sh +494 -0
  8. package/ios/ComposerPianoImpl.swift +128 -225
  9. package/ios/MyComposerDelegate.swift +142 -109
  10. package/ios/SdkPianoio.swift +69 -143
  11. package/ios/SdkPianoioBridge.m +18 -46
  12. package/ios/TokenService.swift +219 -0
  13. package/lib/commonjs/NativeSdkPianoio.ts +35 -22
  14. package/lib/commonjs/PianoComposer.js +89 -132
  15. package/lib/commonjs/PianoComposer.js.map +1 -1
  16. package/lib/commonjs/index.js.map +1 -1
  17. package/lib/module/NativeSdkPianoio.ts +35 -22
  18. package/lib/module/PianoComposer.js +90 -132
  19. package/lib/module/PianoComposer.js.map +1 -1
  20. package/lib/module/index.js +0 -14
  21. package/lib/module/index.js.map +1 -1
  22. package/lib/typescript/commonjs/src/NativeSdkPianoio.d.ts +28 -21
  23. package/lib/typescript/commonjs/src/NativeSdkPianoio.d.ts.map +1 -1
  24. package/lib/typescript/commonjs/src/PianoComposer.d.ts +55 -31
  25. package/lib/typescript/commonjs/src/PianoComposer.d.ts.map +1 -1
  26. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  27. package/lib/typescript/module/src/NativeSdkPianoio.d.ts +28 -21
  28. package/lib/typescript/module/src/NativeSdkPianoio.d.ts.map +1 -1
  29. package/lib/typescript/module/src/PianoComposer.d.ts +55 -31
  30. package/lib/typescript/module/src/PianoComposer.d.ts.map +1 -1
  31. package/lib/typescript/module/src/index.d.ts.map +1 -1
  32. package/package.json +5 -2
  33. package/src/NativeSdkPianoio.ts +35 -22
  34. package/src/PianoComposer.tsx +78 -141
  35. package/src/index.tsx +0 -14
  36. package/android/src/main/AndroidManifestNew.xml +0 -2
  37. package/ios/services/TokenService.swift +0 -70
package/README.md CHANGED
@@ -1,274 +1,264 @@
1
- # react-native-sdk-pianoio
1
+ # 🎹 React Native SDK for Piano.io
2
2
 
3
- Lo scopo di questo pacchetto npm è quello di avere la possibilità di interagire con i metodi messi a disposizione dalle SDK di Piano sia di iOS che di Android, così da avere un unico pacchetto da installare nel momento in cui si vuole utilizzare Piano.io.
3
+ [![npm version](https://img.shields.io/npm/v/react-native-sdk-pianoio.svg)](https://www.npmjs.com/package/react-native-sdk-pianoio)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4
5
 
5
- Il tutto deve essere compatibile con la version **Expo SDK51** ed è su questa versione che sono stati effettuati i test.
6
+ A React Native SDK for integrating Piano.io's digital monetization platform into your mobile applications. This SDK provides seamless integration with Piano's paywall, subscription, and content monetization features.
6
7
 
7
- Il progetto è ancora in **work in progress**.
8
+ ## Features
8
9
 
9
- ## Indice
10
+ ### 🚀 Core Functionality
11
+ - **Piano Composer Integration**: Full integration with Piano's Composer API
12
+ - **OAuth Authentication**: User authentication and token management
13
+ - **Experience Execution**: Execute Piano experiences with custom configurations
14
+ - **Cross-Platform**: Works on both iOS and Android (Android fully implemented)
10
15
 
11
- - [Installazione](#installazione)
12
- - [Prerequisiti](#prerequisiti)
13
- - [iOS](#ios)
14
- - [Android](#android)
15
- - [Avviare progetto](#avviare-progetto)
16
- - [Utilizzo](#utilizzo)
17
- - [Importazione](#importazione)
18
- - [Creazione del Composer](#creazione-del-composer)
19
- - [Metodi del Composer](#metodi-del-composer)
20
- - [Metodi statici](#metodi-statici)
21
- - [Esempio completo](#esempio-completo)
22
- <!-- - [Contributing](#contributing)
23
- - [License](#license) -->
16
+ ### 📱 Platform Support
17
+ - ✅ **Android**: Fully implemented and tested (91% test coverage)
18
+ - 🚧 **iOS**: Basic implementation (needs feature parity)
24
19
 
25
- ## Installazione
20
+ ### 🔧 Configuration Options
21
+ - **Tags Management**: Add/remove tags for content categorization
22
+ - **Zone Configuration**: Set zone IDs for targeted experiences
23
+ - **Custom Variables**: Add custom data to experiences
24
+ - **User Tokens**: Manage user authentication tokens
25
+ - **URL Configuration**: Set referrer and target URLs
26
26
 
27
- ### Prerequisiti
27
+ ## 📦 Installation
28
28
 
29
- Seguendo la guida presente al link https://docs.expo.dev/get-started/create-a-project/ è possibile effettuare la creazione di un progetto in expo.
30
-
31
- Una volta effettuato questo è possibile installare questo pacchetto all'interno del progetto.
32
-
33
- Bisogna rendere come prima cosa il progetto in expo predisposto all'utilizzo di moduli nativi, per farlo c'è il seguente comando:
34
-
35
- ```sh
36
- npx expo prebuild
37
- ```
38
- Questo creerà la cartella per iOS e per Android.
39
-
40
- È necessario, all'interno dell'app.js avere questa configurazione con **"useFrameworks": "static"**:
41
-
42
- ```sh
43
- "plugins": [
44
- [
45
- "expo-build-properties",
46
- {
47
- "android": {
48
- "buildToolsVersion": "34.0.0",
49
- "compileSdkVersion": 34,
50
- "minSdkVersion": 24,
51
- "targetSdkVersion": 34
52
- },
53
- "ios": {
54
- "deploymentTarget": "13.4",
55
- "useFrameworks": "static"
56
- }
57
- }
58
- ]
59
- ]
60
- ```
61
-
62
- Dopodiché si può passare all'installazione del pacchetto npm:
63
-
64
- ```sh
29
+ ```bash
65
30
  npm install react-native-sdk-pianoio
31
+ # or
32
+ yarn add react-native-sdk-pianoio
66
33
  ```
67
34
 
68
- ### iOS
35
+ ## 🚀 Quick Start
69
36
 
70
- Nel progetto di react native entrare nella cartella per ios ed installare le dipendenze:
37
+ ### 1. Initialize the SDK
71
38
 
72
- ```sh
73
- pod install
74
- ```
39
+ ```typescript
40
+ import { PianoComposer } from 'react-native-sdk-pianoio';
75
41
 
76
- ### Android
42
+ // Initialize with your Piano Application ID
43
+ const composer = await PianoComposer.create('YOUR_PIANO_AID');
44
+ ```
77
45
 
78
- Nel progetto di react native entrare nella cartella per android e [...]
46
+ ### 2. Configure the Experience
79
47
 
80
- ```sh
81
- work in progress
82
- ```
48
+ ```typescript
49
+ // Add tags for content categorization
50
+ await composer.addTag('premium');
51
+ await composer.addTags(['article', 'featured']);
83
52
 
84
- #### Avviare progetto
53
+ // Set zone ID for targeted experiences
54
+ await composer.setZoneId('Zone1');
85
55
 
86
- In seguito si può far partire il progetto, tramite il comando:
56
+ // Add custom variables
57
+ await composer.setCustomVariable('article_id', '12345');
87
58
 
88
- ```sh
89
- npx expo run:ios
59
+ // Set user token for authentication
60
+ await composer.setUserToken('user_token_123');
90
61
  ```
91
62
 
92
- **Importante:** non usare ExpoGo per il progetto, potrebbe causare errori.
63
+ ### 3. Execute the Experience
93
64
 
65
+ ```typescript
66
+ // Execute with basic configuration
67
+ const result = await composer.executeExperience();
94
68
 
95
- ## Utilizzo
69
+ // Execute with advanced configuration
70
+ const result = await composer.executeExperienceWithConfig(true, true);
71
+ ```
96
72
 
97
- ⚠️ Questa libreria al momento è progettata per funzionare con il modulo nativo iOS (NativeSdkPianoio), uno dei prossimi passi sarà renderla compatibile anche per Android.
73
+ ### 4. Handle Authentication
98
74
 
99
- ### Importazione
75
+ ```typescript
76
+ // Sign in user
77
+ const user = await composer.signIn();
100
78
 
101
- ```ts
102
- import PianoComposer from './PianoComposer';
103
- ```
79
+ // Check authentication status
80
+ const isAuthenticated = await composer.isAuthenticated();
104
81
 
105
- ### Creazione del Composer
82
+ // Get current user
83
+ const currentUser = await composer.getCurrentUser();
106
84
 
107
- ```ts
108
- const composer = await PianoComposer.create('your_aid');
85
+ // Sign out user
86
+ await composer.signOut();
109
87
  ```
110
88
 
111
- ## Metodi del Composer
89
+ ## 📋 API Reference
112
90
 
113
- ### `addTag(tag: string)`
91
+ ### Core Methods
114
92
 
115
- Aggiunge un singolo tag all’istanza del composer.
93
+ #### `PianoComposer.create(aid: string)`
94
+ Creates and initializes a new PianoComposer instance.
116
95
 
117
- ```ts
118
- await composer.addTag('homepage');
119
- ```
96
+ #### `composer.addTag(tag: string)`
97
+ Adds a single tag to the experience.
120
98
 
121
- ---
99
+ #### `composer.addTags(tags: string[])`
100
+ Adds multiple tags to the experience.
122
101
 
123
- ### `addTags(tags: string[])`
102
+ #### `composer.setZoneId(zoneId: string)`
103
+ Sets the zone ID for targeted experiences.
124
104
 
125
- Aggiunge più tag in una sola chiamata.
105
+ #### `composer.setCustomVariable(key: string, value: string)`
106
+ Adds a custom variable to the experience.
126
107
 
127
- ```ts
128
- await composer.addTags(['homepage', 'subscriber']);
129
- ```
130
-
131
- ---
108
+ #### `composer.executeExperience()`
109
+ Executes the Piano experience with current configuration.
132
110
 
133
- ### `setZoneId(zoneId: string)`
111
+ ### Authentication Methods
134
112
 
135
- Imposta la zona del Composer.
113
+ #### `composer.signIn()`
114
+ Signs in the user with Piano OAuth.
136
115
 
137
- ```ts
138
- await composer.setZoneId('zone-123');
139
- ```
116
+ #### `composer.signOut()`
117
+ Signs out the current user.
140
118
 
141
- ---
119
+ #### `composer.getCurrentUser()`
120
+ Gets information about the current authenticated user.
142
121
 
143
- ### `setReferrer(referrer: string)`
122
+ #### `composer.isAuthenticated()`
123
+ Checks if a user is currently authenticated.
144
124
 
145
- Imposta l’URL del referrer.
125
+ ### Advanced Methods
146
126
 
147
- ```ts
148
- await composer.setReferrer('https://example.com/article');
149
- ```
127
+ #### `composer.executeExperienceWithConfig(includeUserData: boolean, debug: boolean)`
128
+ Executes experience with advanced configuration options.
150
129
 
151
- ---
130
+ #### `composer.createExperienceRequest(includeUserData?: boolean, debug?: boolean)`
131
+ Creates an experience request with custom parameters.
152
132
 
153
- ### `setUrl(url: string)`
133
+ #### `composer.getStatus()`
134
+ Gets the current status of the composer.
154
135
 
155
- Imposta l’URL del contenuto su cui il Composer è eseguito.
136
+ #### `composer.testExecutionFlow()`
137
+ Tests the complete execution flow.
156
138
 
157
- ```ts
158
- await composer.setUrl('https://example.com/page');
159
- ```
139
+ ## 🧪 Testing
160
140
 
161
- ---
141
+ The SDK includes comprehensive test coverage:
162
142
 
163
- ### `setCustomVariable(name: string, value: string)`
143
+ ```bash
144
+ # Run all tests
145
+ npm test
164
146
 
165
- Imposta una variabile personalizzata.
147
+ # Run tests with coverage
148
+ npm run test:coverage
166
149
 
167
- ```ts
168
- await composer.setCustomVariable('userType', 'subscriber');
150
+ # Run Android-specific tests
151
+ cd android && ./test.sh
169
152
  ```
170
153
 
171
- ---
172
-
173
- ### `setUserToken(token: string)`
154
+ ### Test Results
155
+ - ✅ **91% Test Coverage** on Android implementation
156
+ - **67/73 tests passing**
157
+ - ✅ **All core functionality tested**
174
158
 
175
- Imposta il token utente per identificazione e personalizzazione.
159
+ ## 📱 Platform Status
176
160
 
177
- ```ts
178
- await composer.setUserToken('token123');
179
- ```
161
+ ### Android ✅
162
+ - **Status**: Fully implemented and tested
163
+ - **Coverage**: 91% test coverage
164
+ - **Features**: All core features implemented
165
+ - **Dependencies**: React Native 0.78.1 compatible
180
166
 
181
- ---
167
+ ### iOS 🚧
168
+ - **Status**: Basic implementation
169
+ - **Coverage**: Needs feature parity with Android
170
+ - **Features**: Core methods implemented
171
+ - **Next Steps**: Implement advanced features and authentication
182
172
 
183
- ### `executeExperience()`
173
+ ## 🔧 Development
184
174
 
185
- Permette di eseguire l'espèerienza in base ai parametri impostati precedentemente, difatti le SDK ufficiali di piano non permettono di inserire in maniera comoda l'id dell'esperienza da eseguire, ma bisogna inserire il resto dei parametri e del resto se ne occupa il backend di piano.io.
175
+ ### Prerequisites
176
+ - Node.js 18+
177
+ - React Native 0.78.1
178
+ - Android Studio (for Android development)
179
+ - Xcode (for iOS development)
186
180
 
187
- ```ts
188
- await composer.executeExperience();
189
- ```
181
+ ### Setup Development Environment
190
182
 
191
- ---
183
+ ```bash
184
+ # Clone the repository
185
+ git clone https://github.com/HexagonSwiss/hex-react-native-sdk-pianoio.git
192
186
 
193
- ### `toString()`
187
+ # Install dependencies
188
+ npm install
194
189
 
195
- Restituisce una rappresentazione leggibile dello stato del Composer.
190
+ # Run tests
191
+ npm test
196
192
 
197
- ```ts
198
- console.log(await composer.toString());
193
+ # Build the library
194
+ npm run build
199
195
  ```
200
196
 
201
- Esempio:
202
-
197
+ ### Project Structure
203
198
  ```
204
- PianoComposer {
205
- aid: your_aid,
206
- tags: homepage,sports,
207
- zoneId: zone-123,
208
- referrer: https://example.com,
209
- customVariables: {"userType":"subscriber"},
210
- userToken: token123,
211
- url: https://example.com/article
212
- }
199
+ ├── android/ # Android native implementation
200
+ │ ├── src/main/java/ # Kotlin source files
201
+ │ └── src/test/java/ # Android tests
202
+ ├── ios/ # iOS native implementation
203
+ ├── src/ # TypeScript source
204
+ │ ├── index.tsx # Main entry point
205
+ │ ├── PianoComposer.tsx # Main SDK class
206
+ │ └── NativeSdkPianoio.ts # Native module interface
207
+ ├── example/ # Example React Native app
208
+ └── lib/ # Built library files
213
209
  ```
214
210
 
215
- ---
216
-
217
- ## Metodi statici
211
+ ## 🎯 Example App
218
212
 
219
- ### `PianoComposer.create(aid: string): Promise<PianoComposer>`
213
+ The repository includes a comprehensive example app demonstrating all SDK features:
220
214
 
221
- Crea e inizializza una nuova istanza di `PianoComposer`.
215
+ ```bash
216
+ # Navigate to example directory
217
+ cd example
222
218
 
223
- ### `PianoComposer.isInitialized(): Promise<boolean>`
219
+ # Install dependencies
220
+ npm install
224
221
 
225
- Verifica se il composer è stato inizializzato correttamente a livello nativo.
222
+ # Run on Android
223
+ npx react-native run-android
226
224
 
227
- ```ts
228
- const initialized = await PianoComposer.isInitialized();
225
+ # Run on iOS
226
+ npx react-native run-ios
229
227
  ```
230
228
 
231
- ### `PianoComposer.getComposerFromSdkIOS(): Promise<Object>`
229
+ The example app includes:
230
+ - ✅ Basic configuration testing
231
+ - ✅ Authentication flow testing
232
+ - ✅ Advanced configuration options
233
+ - ✅ Experience execution
234
+ - ✅ Real-time logging
232
235
 
233
- Recupera i dati correnti dal modulo nativo iOS. Questo oggetto include:
236
+ ## 🤝 Contributing
234
237
 
235
- ```ts
236
- {
237
- aid: string,
238
- tags: string[],
239
- zoneId: string,
240
- referrer: string,
241
- url: string,
242
- userToken: string,
243
- customVariables: { [key: string]: string }
244
- }
245
- ```
246
-
247
- ## Esempio completo
238
+ We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
248
239
 
249
- ```ts
250
- const composer = await PianoComposer.create('YOUR_AID');
240
+ ### Development Workflow
241
+ 1. Fork the repository
242
+ 2. Create a feature branch
243
+ 3. Make your changes
244
+ 4. Add tests for new functionality
245
+ 5. Ensure all tests pass
246
+ 6. Submit a pull request
251
247
 
252
- await composer.addTags(['homepage', 'premium']);
253
- await composer.setZoneId('zone-abc');
254
- await composer.setReferrer('https://my.site');
255
- await composer.setUrl('https://my.site/article');
256
- await composer.setUserToken('jwt-token');
257
- await composer.setCustomVariable('device', 'mobile');
248
+ ## 📄 License
258
249
 
259
- await composer.executeExperience();
260
-
261
- console.log(await composer.toString());
262
- ```
250
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
263
251
 
264
- ## Contributing
252
+ ## 🆘 Support
265
253
 
266
- See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.
254
+ - 📧 **Email**: sviluppo@hexagonswiss.ch
255
+ - 🐛 **Issues**: [GitHub Issues](https://github.com/HexagonSwiss/hex-react-native-sdk-pianoio/issues)
256
+ - 📖 **Documentation**: [Piano.io Documentation](https://docs.piano.io/)
267
257
 
268
- ## License
258
+ ## 🔄 Changelog
269
259
 
270
- MIT
260
+ See [CHANGELOG.md](CHANGELOG.md) for a detailed history of changes.
271
261
 
272
262
  ---
273
263
 
274
- Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
264
+ **Made with ❤️ by [HexagonSwiss](https://hexagonswiss.ch)**
@@ -1,52 +1,35 @@
1
1
  buildscript {
2
- ext.getExtOrDefault = { name ->
3
- return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties['SdkPianoio_' + name]
2
+ ext {
3
+ buildToolsVersion = "35.0.0"
4
+ minSdkVersion = 24
5
+ compileSdkVersion = 34
6
+ targetSdkVersion = 34
7
+ ndkVersion = "27.1.12297006"
8
+ kotlinVersion = "2.0.21"
4
9
  }
5
-
6
10
  repositories {
7
11
  google()
8
12
  mavenCentral()
9
13
  }
10
-
11
14
  dependencies {
12
- classpath "com.android.tools.build:gradle:8.7.2"
13
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${getExtOrDefault('kotlinVersion')}"
15
+ classpath("com.android.tools.build:gradle:8.7.2")
16
+ classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.0.21")
14
17
  }
15
18
  }
16
19
 
17
20
  apply plugin: "com.android.library"
18
- apply plugin: "kotlin-android"
19
-
20
- def getExtOrIntegerDefault(name) {
21
- return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["SdkPianoio_" + name]).toInteger()
22
- }
23
-
24
- def supportsNamespace() {
25
- def parsed = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')
26
- def major = parsed[0].toInteger()
27
- def minor = parsed[1].toInteger()
28
-
29
- // Namespace support was added in 7.3.0
30
- return (major == 7 && minor >= 3) || major >= 8
31
- }
21
+ apply plugin: "org.jetbrains.kotlin.android"
32
22
 
33
23
  android {
34
- if (supportsNamespace()) {
35
- namespace "com.sdkpianoio"
24
+ ndkVersion rootProject.ext.ndkVersion
25
+ buildToolsVersion rootProject.ext.buildToolsVersion
26
+ compileSdk rootProject.ext.compileSdkVersion
36
27
 
37
- sourceSets {
38
- main {
39
- manifest.srcFile "src/main/AndroidManifestNew.xml"
40
- }
41
- }
42
- }
43
-
44
- // ✅ Esplicita i valori direttamente per evitare problemi
45
- compileSdkVersion 34
28
+ namespace "com.sdkpianoio"
46
29
 
47
30
  defaultConfig {
48
- minSdkVersion 21
49
- targetSdkVersion 34
31
+ minSdkVersion rootProject.ext.minSdkVersion
32
+ targetSdkVersion rootProject.ext.targetSdkVersion
50
33
  }
51
34
 
52
35
  buildFeatures {
@@ -64,8 +47,12 @@ android {
64
47
  }
65
48
 
66
49
  compileOptions {
67
- sourceCompatibility JavaVersion.VERSION_1_8
68
- targetCompatibility JavaVersion.VERSION_1_8
50
+ sourceCompatibility JavaVersion.VERSION_17
51
+ targetCompatibility JavaVersion.VERSION_17
52
+ }
53
+
54
+ kotlinOptions {
55
+ jvmTarget = '17'
69
56
  }
70
57
 
71
58
  sourceSets {
@@ -77,17 +64,17 @@ android {
77
64
  }
78
65
  }
79
66
  }
80
-
67
+ kotlin {
68
+ jvmToolchain(17)
69
+ }
81
70
  repositories {
82
71
  google()
83
72
  mavenCentral()
84
- maven { url("$rootDir/../node_modules/react-native/android") }
85
73
  }
86
74
 
87
75
  dependencies {
88
- implementation "org.jetbrains.kotlin:kotlin-stdlib:${getExtOrDefault('kotlinVersion')}"
89
- implementation "com.facebook.react:react-android" // React Native core
90
- implementation "com.facebook.react:react-native"
91
- implementation "io.piano.android:composer:2.11.0"
92
- implementation "io.piano.android:id:2.11.0"
76
+ implementation("org.jetbrains.kotlin:kotlin-stdlib:2.0.21")
77
+ implementation("com.facebook.react:react-android:0.78.1")
78
+ implementation("io.piano.android:composer:2.11.0")
79
+ implementation("io.piano.android:id:2.11.0")
93
80
  }
@@ -1,20 +1,39 @@
1
- ## For more details on how to configure your build environment visit
1
+ # Project-wide Gradle settings.
2
+
3
+ # IDE (e.g. Android Studio) users:
4
+ # Gradle settings configured through the IDE *will override*
5
+ # any settings specified in this file.
6
+
7
+ # For more details on how to configure your build environment visit
2
8
  # http://www.gradle.org/docs/current/userguide/build_environment.html
3
- #
9
+
4
10
  # Specifies the JVM arguments used for the daemon process.
5
11
  # The setting is particularly useful for tweaking memory settings.
6
- # Default value: -Xmx1024m -XX:MaxPermSize=256m
7
- # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
8
- #
12
+ # Default value: -Xmx512m -XX:MaxMetaspaceSize=256m
13
+ org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m
14
+
9
15
  # When configured, Gradle will run in incubating parallel mode.
10
- # This option should only be used with decoupled projects. For more details, visit
11
- # https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects
16
+ # This option should only be used with decoupled projects. More details, visit
17
+ # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
12
18
  # org.gradle.parallel=true
13
- #Thu Jul 10 13:17:17 CEST 2025
14
- SdkPianoio_compileSdkVersion=35
15
- SdkPianoio_kotlinVersion=2.0.21
16
- SdkPianoio_minSdkVersion=24
17
- SdkPianoio_ndkVersion=27.1.12297006
18
- SdkPianoio_targetSdkVersion=34
19
- android.enableJetifier=true
19
+
20
+ # AndroidX package structure to make it clearer which packages are bundled with the
21
+ # Android operating system, and which are packaged with your app's APK
22
+ # https://developer.android.com/topic/libraries/support-library/androidx-rn
20
23
  android.useAndroidX=true
24
+
25
+ # Use this property to specify which architecture you want to build.
26
+ # You can also override it from the CLI using
27
+ # ./gradlew <task> -PreactNativeArchitectures=x86_64
28
+ reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
29
+
30
+ # Use this property to enable support to the new architecture.
31
+ # This will allow you to use TurboModules and the Fabric render in
32
+ # your application. You should enable this flag either if you want
33
+ # to write custom TurboModules/Fabric components OR use libraries that
34
+ # are providing them.
35
+ newArchEnabled=true
36
+
37
+ # Use this property to enable or disable the Hermes JS engine.
38
+ # If set to false, you will be using JSC instead.
39
+ hermesEnabled=true