メンバ募集!

ラストシューティングではいっしょにアプリ制作をするメンバを募集してます!
スキルアップを目的としたサークル活動の形です
各人のスキルを活かして、みなでアプリを創りストアに公開するまで行います
ご興味がある方はブログ横のFacebook・Google+のリンクやメールにて気軽にご連絡ください~ (・ω<)

ラベル

技術 (80) 開発 (77) ゲーム (67) アプリ (63) 福岡 (59) 趣味 (59) android (52) アニメ (22) レトロゲーム (21) 温故知新 (21) ガンダム (19) レポート (19) WEBサイト (17) 経済 (17) iOS (9) 麻雀 (7) グルメ (5) マンガ (4) Wear (1)

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として使用すればよい。