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.
- package/README.md +22 -111
- 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
|
-
- [
|
12
|
-
- [
|
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
|
-
|
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
|
36
|
+
npx expo prebuild
|
42
37
|
```
|
38
|
+
Questo creerà la cartella per iOS e per Android.
|
43
39
|
|
44
|
-
|
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
|
-
|
43
|
+
npm install react-native-sdk-pianoio
|
50
44
|
```
|
51
45
|
|
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
|
-
|
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
|
-
|
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
|
-
###
|
54
|
+
### Android
|
139
55
|
|
140
|
-
Nel progetto di react native
|
56
|
+
Nel progetto di react native entrare nella cartella per android e [...]
|
141
57
|
|
142
58
|
```sh
|
143
|
-
|
59
|
+
work in progress
|
144
60
|
```
|
145
61
|
|
146
|
-
####
|
62
|
+
#### Avviare progetto
|
147
63
|
|
148
|
-
|
64
|
+
In seguito si può far partire il progetto, tramite il comando:
|
149
65
|
|
150
66
|
```sh
|
151
|
-
|
67
|
+
npx expo run:ios
|
152
68
|
```
|
153
69
|
|
154
|
-
|
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
|
|