Featured image of post App Inventorの上級者向けTips

App Inventorの上級者向けTips

MIT App Inventor、Kodular、Niotronをある程度使ったことがある方向けに、普通に使っていても気づきにくかったり、公式のドキュメントに載っていなかったりする仕様をまとめます。

ブロックからコンポーネントの高さを自動や最大にする

コンポーネントの高さを設定するとき、デザイナー画面のプロパティからは「Automatic」と「Fill Parent」を選べますが、それらを呼び出すブロックは用意されていません。ブロックエディタから設定する場合は、「-1」「-2」を入力すると高さを最大または自動にできます。

ブロックから透過色を設定する

透明または半透明の色のブロックはありませんが、make colorブロックに4つ目のリスト要素を追加すると設定できます。0が透明、255が不透明です。

(Kodular) Card Viewの余白をなくす

デザイナーアプリ

KodularのCard Viewには、上下4px、左右8pxのMarginがあらかじめ設定してあります。カードを上下左右端までぴったり表示させたいときは、プロパティのElevationを0にしてから、DecorationコンポーネントのSet Marginブロックを使って、「-4,-8」にします。

  • Set Marginには4つまで値を渡すことができ、上, 左, 下, 右 の順で適用されます。
  • 値を2つ渡すと、上下, 左右 になり、1つでは4辺すべてが同じ余白になります。
  • NiotronのCard ViewはプロパティからMarginを設定できます。

オフラインで実行する

インターネット接続が利用できない環境では、AI2Offlineが使えます。学校などネットワークの制限された場所でプログラミング教育に使う場合や、Googleアカウントを持っていない/登録したくない場合に活用できると思います。

Android11以降でIsAppInstalledが動作しないのを修正する

Android11(SDK30)以降のデバイスでは、ほかのアプリがインストールされているかを取得するのに権限が必要になったため、IsAppInstalledブロックが動作しなくなっています。拡張機能をインポートし、画面に追加すると取得できます。

Keystoreのパスワード

コンパイルしたアプリを編集してから再度署名したり、Android Studioで開発したアプリをアップデートとして公開したい場合などには、android.keystoreをエクスポートして利用できます。デフォルトのパスワードは以下のようになっています。

 
Keystore Password android
Keystore Alias androidkey
Key Password android

Twitterコンポーネントが動作しない

現在、標準のTwitterコンポーネントは動作しません。修正する方法もありません。放置されていて誰も直す気がないようです。GitHubにissueが立っています。何か動きがあればここにコメントされると思います。

改行を表示する

LabelやButtonの中で改行したいときは、1\n2\n3\n のように \n (バックスラッシュ⁺n)を入力します。

改行文字を直接表示する

\n を含む文字列をTextに設定してしまうと、\n 自体を表示したくても改行になってしまいます。\n を別のブロックに入力したものを、joinブロックを使って結合すれば \n を表示することができます。

改行を含むJSONを扱うときにもこの手順が役立ちます。


他にも思い出したら追記します。

Built with Hugo
テーマ StackJimmy によって設計されています。