Autore Topic: Sviluppo centralizzato di più apps con codice condiviso  (Letto 712 volte)

Offline Gionni

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
Sviluppo centralizzato di più apps con codice condiviso
« il: 17 Aprile 2012, 00:27:47 CEST »
0
Salve amici,

sono nuovo del forum, anche se seguo da diverso tempo e con molto interesse le innuverevoli risorse contenute in questo forum.
Mi sono iscritto perchè sto cercando da un po di giorni la soluzione ad un mio problema e non ne riesco a venire a capo.

Ho sviluppato un'applicazione che dovrà essere "replicata" diverse volte, con le stesse identiche funzionalità (e quindi lo stesso codice), ma con contenuti diversi (il nome dell'app e del package, immagini, icone, testi, video, ecc). Immaginate, ad esempio, un'app dedicata alla Juventus, che dev'essere realizzata in maniera identica per il milan, l'inter, ecc, ecc, ecc. Decine, ma perchè no, centinaia di volte.

Ho la necessità quindi di poter gestire il codice sorgente in maniera centralizzata, come se fosse un unico progetto in grado di generare diversi apk (o qualcosa di simile che mi permette di raggiungere questo scopo). Questo perchè è impensabile replicare ogni minima modifica apportata al codice su decine di progetti uguali. Il rischio di errore sarebbe altissimo, sarebbe impensabile in futuro uno sviluppo condiviso con altri sviluppatori, giungendo al punto che il progetto non sarà più gestibile (avevo iniziato per test a replicare il progetto, ma alla 3^ copia mi sono fermato).

C'è una soluzione a tutto questo? Cercando e cercando ancora ho letto di Marven (o meglio, del plugin android marven per eclipse). Ma sono due giorni che cerco di capirne il funzionamento senza riuscire a fare il minimo passo in avanti.

Ho letto di qualcuno con lo stesso problema su stackoverflow, e gli hanno consigliato di utilizzare un server git, con diversi branch e merge... ma questa non mi sembra una soluzione "ortodossa", ma forse mi sbaglio.

Consigli? Soluzioni? Esempi? :)

Vi ringrazio anticipatamente e vi faccio i miei complimenti per questa bella community, leggo ragazzi davvero preparati!

Offline Gigiuz

  • Utente normale
  • ***
  • Post: 187
  • Respect: +23
    • Google+
    • gigiuzzo81
    • Gigiuz81
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Note III
  • Play Store ID:
    GGXSoft
  • Sistema operativo:
    Windows 7 64bit, OS X (virtualized), Ubuntu
Re:Sviluppo centralizzato di più apps con codice condiviso
« Risposta #1 il: 17 Aprile 2012, 04:12:51 CEST »
0
Crearsi la proprio libreria è cosa abbastanza comune nel mondo della programmazione. Di conseguenza, a mio parere la soluzione è abbastanza semplice: con Android hai la possibilità di creare un progetto di tipo Library semplicemente impostandolo via ADT (se usi Eclipse). In questo modo potresti inserire la logica comune (le tue classi per esempio) in questa libreria, importandola poi di volta in volta nei progetti derivati che andrai a creare.

Ogni qual volta verrà effettuata una modifica nella libreria, sarà sufficiente ricompilare l'intero workspace: la fatica sarà solo quella di creare l'apk di ogni applicazione tramite l'apposita procedura guidata e chissà, magari esiste in giro un tool per fare un "batch di esportazione". :P

Ovviamente tutto il discorso sinora fatto implica che deve esserci una progettazione a monte che comprenda l'implementazione delle tue librerie...

Comunque, maggiori informazioni nella sezione Setting up a Library Project di Managing Projects from Eclipse with ADT | Android Developers
Hai bisogno di implementare un sistema di "codici seriali di sblocco" nella tua applicazione? Dai un'occhiata alla mia libreria: RemoteUnlocker

Offline Gionni

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
Re:Sviluppo centralizzato di più apps con codice condiviso
« Risposta #2 il: 17 Aprile 2012, 13:08:52 CEST »
0
Grazie infinite per la risposta! Credo che il plugin maven android sia basato proprio sulle librerie e permette di "linkare" tra di loro più progetti che condividono del codice. Questa sera vedrò di approfondire per bene il discorso.


Tu ( o qualcun altro) hai mai sentito parlare di maven?

Offline Gionni

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
Re:Sviluppo centralizzato di più apps con codice condiviso
« Risposta #3 il: 17 Aprile 2012, 14:29:07 CEST »
0
Da una ricerca veloce (non posso testare ora con eclipse), gli assets contenuti nelle librerie vengono ignorati e non vengono compilati nel apk finale, se non con una patch:  http://devmaze.wordpress.com/2011/06/26/enabling-assets-in-android-libraries/


La questione si complica, ma sto iniziando a vedere la luce :D


Voglio comunque capire bene come funziona Maven, probabilmente è la soluzione finale al problema.

[EDIT]: Volendo applicare questa patch? qualcuno sa darmi delucidazioni sulla procedura da seguire?
« Ultima modifica: 17 Aprile 2012, 14:45:06 CEST da Gionni »

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Sviluppo centralizzato di più apps con codice condiviso
« Risposta #4 il: 17 Aprile 2012, 18:50:13 CEST »
0
Maven è un sistema di compilazione su linea di comando simile a Ant ma non compatibile con una diversa filosofia alle spalle, non è sopportato ufficialmente dai tool del SDK di Android come Ant. Ci sono diversi progetti per Android che lo usano. Ant e Maven sono tutte e due progetti dell'Apache Software Foundation.

adb logcat | tee /tmp/logcat | grep TAG

Offline Gionni

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
Re:Sviluppo centralizzato di più apps con codice condiviso
« Risposta #5 il: 17 Aprile 2012, 21:26:45 CEST »
0
Fino alla definizione ci ero arrivato, ma grazie comunque!


PS: ho fatto dei progressi proprio con gli esempi per il maven android plugin: [size=78%]http://code.google.com/p/maven-android-plugin/wiki/Samples[/size]