You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: relazione.md
+42-17Lines changed: 42 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -101,20 +101,35 @@ e i relativi servizi.
101
101
```bash
102
102
Akira/
103
103
├── data/
104
-
├── local/
105
-
│ ├── dao/
106
-
│ │ └── TransactionDao.kt
107
-
│ ├── database/
108
-
│ │ └── AppDatabase.kt
109
-
│ └── entities/
110
-
│ ├── Transaction.kt
111
-
│ └── UserSettings.kt
112
-
└── remote/
113
-
├── api/
114
-
│ └── StockApiService.kt
115
-
└── models/
116
-
├── StockResponse.kt
117
-
└── MarketData.kt
104
+
│ ├── local/
105
+
│ │ ├── dao/
106
+
│ │ │ ├── BudgetDao.kt
107
+
│ │ │ ├── CategoryDao.kt
108
+
│ │ │ ├── EarningDao.kt
109
+
│ │ │ └── ExpenseDao.kt
110
+
│ │ ├── database/
111
+
│ │ │ └── AkiraDatabase.kt
112
+
│ │ ├── entities/
113
+
│ │ │ ├── BudgetModel.kt
114
+
│ │ │ ├── CategoryModel.kt
115
+
│ │ │ ├── EarningModel.kt
116
+
│ │ │ ├── EarningWithCategory.kt
117
+
│ │ │ ├── ExpenseModel.kt
118
+
│ │ │ ├── ExpenseWithCategory.kt
119
+
│ │ │ ├── SettingItem.kt
120
+
│ │ │ └── TransactionModel.kt
121
+
│ │ └── repository/
122
+
│ │ ├── FinancialRepository.kt
123
+
│ │ ├── StocksRepository.kt
124
+
│ │ └── UserRepository.kt
125
+
│ └── remote/
126
+
│ ├── api/
127
+
│ │ ├── AlphaVentureService.kt
128
+
│ │ └── GithubApiService.kt
129
+
│ ├── models/
130
+
│ ├── GithubReleaseModel.kt
131
+
│ ├── StockQuoteModel.kt
132
+
│ └── TimeSeriesDailyModel.kt
118
133
```
119
134
120
135
Nel pacchetto `data` abbiamo quindi:
@@ -128,6 +143,7 @@ Nel pacchetto `data` abbiamo quindi:
128
143
-`ExpenseDao`: contiene l'interfaccia per effettuare operazioni CRUD sulle spese.
129
144
- database: contiene il database dell'applicazione e i dati già pregenerati per le categorie.
130
145
- entities: contiene tutte le entità presenti nel database.
146
+
- repository: contiene tutte le repository del progetto che agiscono come **Unique Source Of Truth** per i dati.
131
147
132
148
-**`BudgetModel.kt`**
133
149
Rappresenta il modello per la gestione del budget mensile impostato dall'utente.
@@ -161,6 +177,15 @@ Nel pacchetto `data` abbiamo quindi:
161
177
Modello per la gestione delle **impostazioni** dell'app.
162
178
Memorizza le preferenze utente, come le notifiche attive, la valuta selezionata o altre configurazioni personalizzabili.
163
179
180
+
-**`FinancialRepository.kt`**
181
+
Repository che restituisce tutti i dati riguardanti le finanze dell'utente
182
+
183
+
-**`StocksRepository.kt`**
184
+
Repository che restituisce tutti i dati riguardanti le azioni delle aziende
185
+
186
+
-**`UserRepository.kt`**
187
+
Repository che restituisce tutte le informazioni riguardo l'utente (SharedPreferences, impostazioni di appi)
188
+
164
189
- remote
165
190
166
191
- api: contiene i servizi per l'utilizzo di API remote, definendo i parametri da utilizzare per le chiamate.
@@ -203,18 +228,18 @@ per ricordare all'utente di registrare le proprie transazioni all'interno dell'a
203
228
204
229
## **Punti di forza**
205
230
206
-
-**Privacy e Sicurezza:** l'applicazione non richiede permessi invasivi e conserva tutti i dati in locale, garantendo un elevato livello di protezione della privacy.
231
+
-**Privacy:** l'applicazione non richiede permessi invasivi e conserva tutti i dati in locale, garantendo un elevato livello di protezione della privacy.
207
232
-**Performance Ottimizzate:** l'utilizzo di una sola Activity ha semplificato la gestione del ciclo di vita dei vari elementi, riducendo il rischio di crash e migliorando le prestazioni generali.
208
233
-**Architettura Scalabile:** l'adozione dell'architettura MVVM e della Dependency Injection con Hilt facilita l'aggiunta di nuove funzionalità e la manutenzione del codice.
209
234
-**UI moderna e molto semplice:** la UI è molto semplice e intuitiva, permettendo all'utente di fare tutto quello di cui ha bisogno in pochi tap.
210
235
211
236
## **Possibili Migliorie**
212
237
213
-
L'applicazione ha avuto uno sviluppo un po' travagliato. All'inizio era stata progettata per essere semplicemente un'applicazione a più view; il passaggio ad applicazione ad Activity singola mi ha rubato un po' di tempo per migliorare il tutto e aggiungere più feature.
238
+
L'applicazione ha avuto uno sviluppo un po' travagliato. All'inizio era stata progettata per essere semplicemente un'applicazione a più view; il passaggio ad applicazione ad Activity singola mi ha rubato un po' di tempo che potrebbe essere stato investito per rifiniture varie e aggiunta di più feature.
214
239
215
240
Ecco i punti che sarebbe possibile migliorare:
216
241
217
-
1. L'utilizzo di JetPack Compose avrebbe potuto giovare molto all'applicazione, riducendo boilerplate code e riutilizzando elementi di UI più volte all'interno delle viste (i file XML sono inoltre noiosi da mantenere). La libreria non è stata utilizzata poiché lo sviluppo inizio con l'approccio delle Views per attenersi di più ai contenuti del corso.
242
+
1. L'utilizzo di JetPack Compose avrebbe potuto giovare molto all'applicazione, riducendo boilerplate code e riutilizzando elementi di UI più volte all'interno delle viste (i file XML sono inoltre noiosi da mantenere). La libreria non è stata utilizzata poiché lo sviluppo iniziò con l'approccio delle Views per attenersi di più ai contenuti del corso.
218
243
2. La vista delle statistiche può essere migliorata, offrendo più dati e un reload dei dati nei grafici migliori per migliorare le performance.
219
244
3. La vista per la creazione di transazioni potrebbe essere più carina e andrebbe riprogettata, poiché al momento molto grezza anche se funzionale.
220
245
4. Una feature sicuramente utile sarebbe la creazione personalizzata di categorie, non implementata per mancanza di tempo.
0 commit comments