lunes, 25 de enero de 2016

Combinar projectes App Inventor

Si treballeu a classe amb App Inventor per crear Apps i heu decidit fer un projecte a classe on només hi hagi un producte. És a dir, tota la classe contribueixi a fer una única App, i cada alumne individual o grup s'encarregui de desenvolupar una part de l'App, potser us heu trobat amb el problema de combinar les diferents parts del projecte en una única App.

He trobat dues solucions a aquest problema. Una és utilitzant una solució que proporciona App Inventor i que serveix per combinar dos projectes.

http://appinventor.mit.edu/explore/resources/ai2-project-merger.html

I l'altre és fent-ho a mà. Explicaré com fer-ho a mà (és a dir, tocant els fitxers de l'App Inventor) ;)

Suposaré que tenim dos projectes diferents que volem combinar (és a dir, tenir un projecte amb les imatges, pantalles i blocs dels dos projectes junts).

Els dos projectes tenen diferentes pantalles.Tenen que quedar definits els noms de totes les pantalles a l'hora de fer els botons per anar de pantalla a pantalla. 
Tots els projectes App Inventor, la pantalla principal es diu Screen1, i per tant, haurem de canviar el nom de la pantalla del segon projecte perquè la combinació pugui funcionar. Només la pantalla principal es pot dir: Screen1.

Primer pas:
Necessitem les dues aplicacions que volem combinar. Les descarreguem com a fitxers .aia, que no deixa de ser un fitxer .zip, però canviant el nom.
Els obrim, i veurem que tenen la mateixa estructura.



Segon pas:
Creem una carpeta temporal anomenada "merge", i extraiem els arxius del primer projecte en aquesta carpeta.
Se'ns crearan tres carpetes: assets, src i youngandroidproject.

Tercer pas: Copiem les imatges:
Anem al segon fitxer .aia i l'obrim, anem a la seva carpeta assets, i els copiem dins la carpeta merge/assets.

Quart pas: Copiar el disseny i els blocs:
En tota l'aplicació només hi pot haver una pantalla amb el nom "Screen1", per tant hem de canviar el nom de la pantalla Screen1 del segon projecte. També, per suposat no hi pot haver cap altre pantalla amb el mateix nom entre els dos projectes.

Anem al segon fitxer .aia i l'obrim, anem a la carpeta src/appinventor/ai_elvostrenomusuari/nomdelsegonprojecte/
i veureu que té dos tipus de fitxers, .bky (els blocs) i .scm (el disseny de les pantalles).
Canviem els noms del fitxers Screen1.bky i Screen1.scm a un nom que no existeixi amb els noms del segon projecte, per exemple Pantalla2.bky i Pantalla2.scm.




Llavors, copiem tots els fitxers d'aquesta carpeta a la carpeta merge (dins de src/appinventor/ai_elvostrenomusuari/nomdelprimerprojecte).
Ens quedaran tots els fitxers dels blocs i del disseny dels dos projectes junts. En l'imatge teniu els fitxers dels dos projectes amb els noms canviats. Fixeu-vos que no hi ha noms repetits (efectivament) i només hi ha un .scm i un .bky que es diguin Screen1.


Cinquè pas: Crear l'arxiu comprimit:
Anem a la carpeta merge, seleccionem les tres carpetes que té dins (assets, set i youngandroidproject), i creem un arxiu comprimit .zip
Quan l'hagi creat, li canvieu l'extensió a .aia

Sisè pas: Importar el projecte a app inventor:
Ara podeu importar el projecte a .aia que acabeu de crear a app inventor. Veureu que teniu totes les pantalles dels dos projectes juntes.

2 comentarios: