App per xm, prende i contenuti dal sito e te li salva nel cellulare.

<img src="https://git.lattuga.net/hacklabbo/Ilovexm24/raw/master/screenshot_post.png" style="width:300px;border:solid 1px black;border-radius:20px;" />
<img src="https://git.lattuga.net/hacklabbo/Ilovexm24/raw/master/screenshot_eventi.png" style="width:300px;border:solid 1px black;border-radius:20px;" />
<img src="https://git.lattuga.net/hacklabbo/Ilovexm24/raw/master/screenshot_menu.png" style="width:300px;border:solid 1px black;border-radius:20px;" />
<img src="https://git.lattuga.net/hacklabbo/Ilovexm24/raw/master/screenshot_lab.png" style="width:300px;border:solid 1px black;border-radius:20px;" />

## Environment ##

### NodeJs ###

add gpg key using 

`curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -`

add APT repo (verify/create) nodesource.list file in /etc/apt/sources.list.d with:

```
deb https://deb.nodesource.com/node_6.x jessie main
deb-src https://deb.nodesource.com/node_6.x jessie main
```

Alternative setup (it supports Kali, Debian, Mint, ...): 

`sudo curl -sL https://deb.nodesource.com/setup_6.x | bash -`

(it supports Kali, Debian, Mint, ...)

Cleanup: 

`apt-get purge nodejs`

Refresh: 

`apt-get update && apt-get install nodejs nom`

ADK (android developer kit) e

### Cordova CLI ###

Cordova si intalla con npm, packager di nodejs:

`npm install -g cordova`

### Android tool ###

ADK (android developer kit) 

P.S. Con l'ultima versione di Android Studio è necessario scaricare a mano gli [android tools](https://dl.google.com/android/repository/tools_r25.2.3-linux.zip). 

### Appunti ###

http://www.digitigrafo.it/module/1249

## Build del progetto ##

### Android ###

`cordova platform rm android`

Per rimuovere la piattaforma vecchie di Android

`cordova platform add android`
	
Per aggiungere la piattaforma nuova. Durante questa operaionze i seguenti plugin verranno auto installti:

* cordova-plugin-compat
* cordova-plugin-file
* cordova-plugin-media
* cordova-plugin-whitelist
* cordova-sqlite-storage
* phonegap-plugin-push
		
```
cordova plugin add cordova-plugin-network-information \
		cordova-plugin-x-socialsharing \
		cordova-plugin-splashscreen
```

Forse non serve, ma l'howto di [cordova-plugin-x-socialsharing](https://github.com/EddyVerbruggen/SocialSharing-PhoneGap-Plugin) dicono di farlo:

`cordova prepare`

Per installare il plugin sulla rete che non viene installato in automatico

`cordova run android`

Per lanciare l'emulatore Android con l'applicazione.
Ovviamente si deve aver configurato il proprio environment correttamente.

## Aggiornamento

Siam passati allal versione di Cordova 9 e la versione della piattaforma Android 8, per verificare, nella cartella del progetto IloveXM24:
     $ cordova -v
     9.0.0 (cordova-lib@9.0.1)
 
     $ cordova platform list
     Installed platforms:
     android 8.0.0

I plugin così:
        $ cordova plugin list
	cordova-plugin-compat 1.2.0 "Compat"
	cordova-plugin-file 4.3.3 "File"
	cordova-plugin-media 3.0.1 "Media"
	cordova-plugin-network-information 1.3.4 "Network Information"
	cordova-plugin-splashscreen 4.0.3 "Splashscreen"
	cordova-plugin-whitelist 1.3.3 "Whitelist"
	cordova-plugin-x-socialsharing 5.1.8 "SocialSharing"
	cordova-sqlite-storage 2.0.4 "Cordova sqlite storage plugin"
	es6-promise-plugin 4.2.2 "Promise"
	phonegap-plugin-push 1.9.4 "PushPlugin"

E le API dell'sdk Android, ora hanno target 28!
Per aggiornarle, da linea di comando, nella cartella dove avete l'ambiente android, io ce l'ho in home/.android/
	 $ ./android update sdk

Accettate le malvagie licenze e scaricate.

Poi il build pare funzionare :) yhuuu!

Non ricordo se era bloccante o no, ma ci siamo fatte una copia dell AndroidManifest.xml dopo aver aggiunto la platform, così:
	cd platforms/android/app/
	cp src/main/AndroidManifest.xml AndroidManifest.xml


### iOS ###

Installando `phonegap-plugin-push` se si incontra questo errore:

```
Installing "phonegap-plugin-push" for ios
*Failed to install 'phonegap-plugin-push':undefined*
Error: CocoaPods was not found. Please install version 1.0.1 or greater from https://cocoapods.org/
```

Occore installare `CocoaPods` come descritto sulla [documentazione del plugin](https://github.com/phonegap/phonegap-plugin-push/blob/master/docs/INSTALLATION.md#ios-details)

## Download ##

## Google Play ##

Solo per chi ha un account google. 

Sconsigliamo l'installazione dal Google Play perche' google come multinazionale profila ogni tuo gusto e l'utilizza a scopo commerciale. In pratica ti tratta come merce per accaparrarsi profitto. Se ti e' possibile quindi utilizza fdroid.

https://play.google.com/store/apps/details?id=xm24.digitigrafo.it

## Repository Privato Fdroid ##

Repository gestito da hacklabbo, non e' il repository fdroid ufficiale. 

Per poter utilizzare questo repository devi comunque scaricare l'applicazione [fdroid](https://f-droid.org/) e aggiungere questo repository ed attivarlo nella configurazione dell'applicazaione. E' un operazione piuttosto semplice da effettuare.

https://fdroid.hacklabbo.indivia.net/

P.S. Per chi sviluppa: ad ogni commit sarebbe opportuno aumentare l'ultima cifra della versione in config.xml (riga 2: version=1.0.2 -> version=1.0.3) in modo che fdroid riconosca e proponga l'aggiornamento.

## TODO, ISSUE e FEATURE ##

Usiamo l'[issue tracker](https://git.lattuga.net/hacklabbo/Ilovexm24/issues) non il wiki.

