AI雑記

おもにAppInventorついての備忘録とかと書いていく予定です

リストからランダムに取得するサンプル

ふと、目に留まったので自分だったらどうやって解くかなぁ、と思ってやってみました。

pick a random itemに、条件を加えたい - 日本App Inventorユーザー会

f:id:ahiru_sp:20131225232624p:plain

リストのコピーを作っておいて使うたびに消していくのがミソなのですが、ちょっと(かなり?)分かり難い感じになってしまって説明し辛いのでココに貼っておくだけにしておきます^^;

AI2になって初めて触ったのだけど、提供されているブロックだけでどうにかしようと思うと、やっぱりちょっと悩みますね(そこが面白くもあるんですが)。リストのブロックにシャッフルとかスワップが用意されていれば、もう少しプログラムっぽく組めるので、フローチャート的に見通しが良くなるのになぁ、とかも思ったりしました。

日本語化!

ようやく試すことができて、きれいな環境を作れました^^

以前のエントリーでご紹介した記事を参考にしたらすんなり完成♪

ついでにブロックエディタの豆腐問題にも対応してみました。

f:id:ahiru_sp:20130110220715p:plain

せっかく自前でビルドできるようになったことだし、ということでプログラムを修正する方法でやってみました。やったと言っても、ソースを追いかけつつコード中にベタで指定されている"Arial"フォントを、少し前からコードを書くのに使っている"Ricty"フォントに置き換えてみただけですが^^;

しっかりと追いかけてはないので怪しいんですが、たぶん「openblocks.renderable.BlockNote」クラス内の定数FONT_NAME辺りを変更してビルドすればOKな感じかな、と。

本当はもう少し、深いところも読んでいきたいけど、意外とボリュームがあるので順番に進んでいきたいと思います^^

とてもわかりやすい開発環境の作り方

先日のエントリーを見てくださったという、naominさんの App Inventorで行こう! で、本家のEclipseへのインポート方法を翻訳したエントリーを公開されていました。

実は自分でも、2,3日前に公式の方にEclipseにインポートする手順が書かれているのを見つけていて、軽いショックを受けつつ(笑)手順どおりにやってみたのですが、スクリーンショットがなくてイメージが掴み難かったのと、持ち前の英語力のなさで完全にエラーを消すことができずに困っていました(正直、ビルドは通るしいいや、と思っていたのですがw)

せっかくなので、ちゃんと動くように作り直そうと思います^^;

Windows環境でビルドしてみた

前々からやろうやろうとは思ってたのですが、ようやくEclipseApp Inventorのコードをビルドすることができたのでメモメモ。

ちなみに公式の手順はこちらにありますので、詳細はそちらで。
https://github.com/mit-cml/appinventor-sources/wiki/How-To-Build-MIT-App-Inventor

環境を構築する

Pleades All in One(Java

http://mergedoc.sourceforge.jp/

最新の4.2系をダウンロードして、適当なフォルダに展開しました。

JDKがインストールされていない場合は、自分の環境にあったものをダウンロードしてインストール。
http://www.oracle.com/technetwork/java/javase/downloads/index.html

セットアップ完了後にJAVA_HOMEが設定されているか確認して、なければこれもシステム環境変数に追加しておく必要があります。

ちなみに開発やテストはJava6で行われているようですが、Java7でもビルドは通ったのでたぶん問題ないのではないかと思います。

Git

http://code.google.com/p/msysgit/

適当に最新のインストーラをダウンロードしてインストール。

最初、何も考えずにGitなしの状態でビルドしてみると、途中でGitコマンドを実行しようとしてこけるようだったので、どうやらパスの通ったところに置いていないと駄目みたいです。 なので、後から手動でシステム環境変数のPathにbinフォルダのパスを登録しました。

AppInventor Source

https://github.com/mit-cml/appinventor-sources

GitからCloneするのが正しいのだろうけど、Git力が足りないのでZipでダウンロードしたものをEclipseにインポートしました^^;

Google App Engine SDK

https://developers.google.com/appengine/downloads?hl=ja

ダウンロード後、これも適当なフォルダに展開しておきます。

手順には必要っぽい感じで書いていたけど、実際にはlibの下に必要なjarが含まれているので不要?
→ ローカルでGAEのプロジェクトを起動するのに必要でした^^;;

Android SDK

http://developer.android.com/sdk/index.html

EclipseはPleadesで日本語化されたIDEを使いたいので、ここでは Download → SDK Tools Only のWindows用のパッケージをダウンロードしてインストールしました(基本的にデフォルトのままセットアップしていけばよいはず)

#いま見返してみると、これもGAE同様にlib以下に必要なjarが揃っているっぽいので、もしかすると不要かもしれませんね・・。

実行してみる。

公式の手順を見ると.shじゃなくて.cmdで実行してね、みたいなことが書かれているんですが、そんなバッチファイルはパッケージに含まれていないという・・^^;;

仕方がないので configurations for App Inventor for all のバッチファイルを参考にして動かしてみました。
http://sourceforge.net/projects/ai4a-configs/

AppEngine側

>cd <AppInventorのプロジェクトの場所>
><app-engine-sdkのセットアップ場所>\bin\dev_appserver.cmd --port=8888 --address=0.0.0.0 <AppInventorのプロジェクトの場所/appengine/build/war/

BuildServer側

Eclipseから、buildserverのbuild.xmlの"RunLocalBuildServer"を選択して実行。

クライアント

ブラウザから、http://localhost:8888にアクセス。その後は、MIT公式のAppInventorと同じ感じ(というか同じ)で操作できます。

ちなみに一度もAppInventorを動かしたことがないPCだと、ブロックエディタが起動したときに↓のようなメッセージが表示されます。 これは事前に必要なソフトウェアをインストールしていないのが原因っぽいので、公式から取得してインストールしてください。
Please locate the command directory on your computer and enter the full path below
http://appinventor.mit.edu/explore/install-app-inventor-software.html

#このソフトウェアはオープンソースじゃないのかな?パッと見た感じではプロジェクトのソースには含まれていないような・・。

感想

本当は難しくはないのだろうけど、手順が多いのと英語の壁にぶつかることがちょいちょいあって苦戦しました^^;ま、これでちょっとずつでもソースを追えるようになったので、ぼちぼち読んでいきたいと思います。

オフラインミーティングに参加してきた

日本App Inventorユーザー会オフラインミーティング@大阪

9/15のオフラインミーティングに行ってきました。
#途中、道に迷ってたりもしましたが・・何とか開始前までに会場へ辿りつけました(^^;

ミーティングは代表の多田さんのあいさつに始まり、終始和やかな感じでApp Inventorに関する色々な話題で盛り上がっていました。

自分はどちらかというと、App Inventorでアプリを作って公開したいわけではなくて、単純に技術というか発想が面白いなーと思って触ってきていたのですが、参加者の方はみなさんかなり活用されていて、色々なテクニックやらアイデアが飛び交ってたのはとても興味深く聞かせてもらいました。これだけでも参加してよかったなーと。

あと、前日に@jz5からリクエストされた、LEGO MINDSTORMSをそっと鞄に忍ばせておいたのですが、ミーティング中は話を聞くのに夢中ですっかり出しそびれてましたw

そのまま持って帰ればいっかと思ってたのですが、懇親会で話題に上がった際に見てもらえたので、無駄な荷物にならなくてホッとしました(^^)

Androidアプリを作るツールという視点意外にも、楽しめる要素の一つとして、LEGO MINDSTORMSで作った作品が操作できるってのはとても面白いと思うので、興味ある方はぜひぜひ手に入れて遊んでみて欲しいなと思います。

レゴ マインドストーム NXT2.0 (英語版) 8547

レゴ マインドストーム NXT2.0 (英語版) 8547