2015年9月20日日曜日

MIT App Inventor2のプロジェクトマージの方法

shunです。

最近、またMIT App Inventor2を触ってます。

以前からの懸念事項だったMIT App Inventor2のプロジェクトのマージについて
やり方をまとめたものをメモ代わりに書いておきます。


MIT App Inventor2(以下ai2)は、基本機能ではプロジェクトのマージはできません。
別のスクリーン(画面)へのブロックのコピーもできません。
別々に作った画面をひとつにする作業がたいへん面倒なのです。

以前は、aiaファイルを解凍してコピーして
中のjsonやxml形式のtextをいろいろいじって云々という
大変面倒で危うい手動マージをしてました。

しかし、いつのまにかマージツール(公式?)ができていました。
(以前、古いApp Inventorに対応したマージツールは有志の方が作られていたけど
 ai2には対応していなかった)



http://appinventor.mit.edu/explore/resources/ai2-project-merger.html
「Download the AI2 Project Merger」
からマージツール(AI2MergerApp.jar)をDL。

マージツールの使い方(英語)
https://docs.google.com/document/d/1F3XtEcNKOk6O8cKnfG16gCh0Yk9qu_r6r4C1aSnS9-g/pub

ただし、このツールにはクセがあります。

☆重要
第二のプロジェクトのScreen1はマージできない。
同じ名前の2つのスクリーンもマージすることはできない。

マージツールの使い方(英語)にかかれています。
なので、以下の使用方法が提案されています。

マージツールではScreen1をマージできない。
なのでScreen1はダミーの画面にしておく。
Screen1はダミーの画面にはボタンを置き、
他のスクリーンへを開く(遷移)処理をいれておく。
また、Screen2以降のスクリーン名は各自ユニークな名前にすること。

Screen1はダミーで遷移用のボタンを用意

Screen1のブロック、画面遷移処理

Screen2はユニークな名前にしておく

例を交えて整理すると、以下のような形で
ai2で複数名での開発がスムースに行えるかなと思います。

---[例]---
・main project
Screen1 : アプリのスタート画面となる

・sub project1
Screen1 : ダミー画面。ShunScreen2を開く処理だけ書く
ShunScreen2 : ここから本格的に処理を書く
ShunScreen3 :
ShunScreen4 :

・sub project2
Screen1 : ダミー画面。PaisenScreen2を開く処理だけ書く
PaisenScreen2 : ここから本格的に処理を書く
PaisenScreen3 :
PaisenScreen4 :

・sub project3
Screen1 : ダミー画面。KenScreen2を開く処理だけ書く
KenScreen2 : ここから本格的に処理を書く
KenScreen3 :
KenScreen4 :

マージする際は、ツールを使い2つずつマージしていく。

[main project] + [sub project1] → [main project merge1]
[main project merge1] + [sub project2] → [main project merge2]
[main project merge2] + [sub project3] → [main project merge3]

main project merge3でスクリーンそれぞれの遷移を調整する。

☆ポイント
スタート画面になるmain projectのScreen1は
開発初めの時点では決まっていない場合が多い。変更もありえる。

なので、main projectの作成は後で作成する形にするとよい。
皆、Screen1をダミーにしたsub projectの形で作成を始める。

あとで、1つのsub projectのScreen1をダミーからスタート画面に変更して
main projectとして使用すればよい。

0 件のコメント:

コメントを投稿