react-native-sdk-pianoio 0.2.2 → 0.2.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 (2) hide show
  1. package/README.md +22 -111
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -2,14 +2,17 @@
2
2
 
3
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.
4
4
 
5
+ Il tutto deve essere compatibile con la version **Expo SDK51** ed è su questa versione che sono stati effettuati i test.
6
+
5
7
  Il progetto è ancora in **work in progress**.
6
8
 
7
9
  ## Indice
8
10
 
9
11
  - [Installazione](#installazione)
10
- - [Expo](#expo)
11
- - [Adattamento del pacchetto a expo < 52](#adattamento-del-pacchetto-a-expo--52)
12
- - [React native](#react-native)
12
+ - [Prerequisiti (adattamento del pacchetto a Expo < 52)](#prerequisiti-adattamento-del-pacchetto-a-expo--52)
13
+ - [iOS](#ios)
14
+ - [Android](#android)
15
+ - [Avviare progetto](#avviare-progetto)
13
16
  - [Utilizzo](#utilizzo)
14
17
  - [Importazione](#importazione)
15
18
  - [Creazione del Composer](#creazione-del-composer)
@@ -21,143 +24,51 @@ Il progetto è ancora in **work in progress**.
21
24
 
22
25
  ## Installazione
23
26
 
24
- ### Expo
25
-
26
- #### Installazione di Expo
27
+ ### Prerequisiti (adattamento del pacchetto a Expo < 52)
27
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.
29
30
 
30
31
  Una volta effettuato questo è possibile installare questo pacchetto all'interno del progetto.
31
32
 
32
- Per installare il pacchetto all'interno del progetto, bisogna fare come prima cosa, l'installazione del pacchetto npm:
33
-
34
- ```sh
35
- npm install react-native-sdk-pianoio
36
- ```
37
-
38
- In seguito effettuare la dev build così da permettere l'utilizzo dell'SDK
33
+ Bisogna rendere come prima cosa il progetto in expo predisposto all'utilizzo di moduli nativi, per farlo c'è il seguente comando:
39
34
 
40
35
  ```sh
41
- npx expo run:ios
36
+ npx expo prebuild
42
37
  ```
38
+ Questo creerà la cartella per iOS e per Android.
43
39
 
44
- Con il comando verrà creata la cartella relativa di ios, che **non** sarà necessario toccare in nessun modo.
45
-
46
- In seguito si può far partire il progetto, tramite il comando:
40
+ Dopodiché si può passare all'installazione del pacchetto npm:
47
41
 
48
42
  ```sh
49
- npx expo start
43
+ npm install react-native-sdk-pianoio
50
44
  ```
51
45
 
52
- ### Adattamento del pacchetto a Expo < 52
53
-
54
- Con l’introduzione della versione Expo SDK 52, il team di Expo ha adottato la **New Architecture** di React Native, che introduce importanti novità come i TurboModules, il Codegen e un nuovo sistema di gestione degli eventi (incluso EventEmitterCallback). Questi cambiamenti migliorano performance, interoperabilità con pacchetti nativi complessi e garantiscono una maggiore compatibilità futura con React Native.
55
-
56
- Tuttavia, questa evoluzione comporta incompatibilità con versioni precedenti (Expo 51 o inferiori), che non includono le definizioni e i meccanismi introdotti dalla nuova architettura.
57
-
58
- Un esempio concreto è l’uso del tipo facebook::react::EventEmitterCallback, che esiste solo all’interno della New Architecture.
59
-
60
- Per far funzionare il pacchetto con versioni precedenti alla 52, è necessario usare un approccio un po' forzato, modificando manualmente il codice generato per evitare riferimenti non supportati.
61
-
62
- Una volta installato il pacchetto e aver eseguito:
46
+ ### iOS
63
47
 
64
- ```sh
65
- npx expo run:ios
66
- ```
67
-
68
- Dovrebbe comparire una serie di errori simili a questo:
48
+ Nel progetto di react native entrare nella cartella per ios ed installare le dipendenze:
69
49
 
70
50
  ```sh
71
- ❌ (node_modules/react-native-sdk-pianoio/ios/generated/RNSdkPianoioSpec/RNSdkPianoioSpec.h:72:18)
72
-
73
- 70 | @interface NativeSdkPianoioSpecBase : NSObject {
74
- 71 | @protected
75
- > 72 | facebook::react::EventEmitterCallback _eventEmitterCallback;
76
- | ^ no type named 'EventEmitterCallback' in namespace 'facebook::react'
77
- 73 | }
78
- 74 | - (void)setEventEmitterCallback:(EventEmitterCallbackWrapper *) eventEmitterCallbackWrapper;
79
- 75 |
80
- ```
81
-
82
- I file causanti di questi errori sono:
83
-
84
- - RNSdkPianoioSpec.h
85
- - RNSdkPianoioSpec-generated.mm
86
-
87
- Quindi, cliccare sulla referenza del file e andare alla linea dell'errore.
88
-
89
- #### Modifica del file RNSdkPianoioSpec.h
90
-
91
- ```
92
- @interface NativeSdkPianoioSpecBase : NSObject {
93
- @protected
94
- facebook::react::EventEmitterCallback _eventEmitterCallback;
95
- }
96
- - (void)setEventEmitterCallback:(EventEmitterCallbackWrapper *) eventEmitterCallbackWrapper;
97
-
98
- @end
99
- ```
100
-
101
- Sostituire il codice sovrastante con:
102
-
103
- ```
104
- @interface NativeSdkPianoioSpecBase : NSObject {
105
- @protected
106
- void *_eventEmitterCallback;
107
- }
108
- - (void)setEventEmitterCallback:(void *)eventEmitterCallbackWrapper;
109
-
110
- @end
111
- ```
112
-
113
- #### Modifica del file RNSdkPianoioSpec.h
114
-
115
- ```
116
- @implementation NativeSdkPianoioSpecBase
117
-
118
-
119
- - (void)setEventEmitterCallback:(EventEmitterCallbackWrapper *)eventEmitterCallbackWrapper
120
- {
121
- _eventEmitterCallback = std::move(eventEmitterCallbackWrapper->_eventEmitterCallback);
122
- }
123
- @end
124
- ```
125
-
126
- Sostituire il codice sovrastante con:
127
-
128
- ```
129
- @implementation NativeSdkPianoioSpecBase
130
-
131
- - (void)setEventEmitterCallback:(void *)eventEmitterCallbackWrapper;
132
- {
133
- _eventEmitterCallback = std::move(eventEmitterCallbackWrapper);
134
- }
135
- @end
51
+ pod install
136
52
  ```
137
53
 
138
- ### React native
54
+ ### Android
139
55
 
140
- Nel progetto di react native eseguire:
56
+ Nel progetto di react native entrare nella cartella per android e [...]
141
57
 
142
58
  ```sh
143
- npm install react-native-sdk-pianoio
59
+ work in progress
144
60
  ```
145
61
 
146
- #### iOS
62
+ #### Avviare progetto
147
63
 
148
- Nel progetto di react native entrare nella cartella per ios ed installare le dipendenze:
64
+ In seguito si può far partire il progetto, tramite il comando:
149
65
 
150
66
  ```sh
151
- pod install
67
+ npx expo run:ios
152
68
  ```
153
69
 
154
- #### Android
155
-
156
- Nel progetto di react native entrare nella cartella per android e [...]
70
+ **Importante:** non usare ExpoGo per il progetto, potrebbe causare errori.
157
71
 
158
- ```sh
159
- work in progress
160
- ```
161
72
 
162
73
  ## Utilizzo
163
74
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-sdk-pianoio",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "description": "Piano io sdk integration",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/commonjs/index.js",