MIT App Inventor - 誰でもモバイル アプリを作成できます。 App Inventor の拡張機能の開発: 概要 App Inventor でアプリケーションをダウンロードする

アプリの発明者- ユーザーに最小限のプログラミング知識を必要とする Android アプリケーション用のビジュアル開発環境。 元々は Google Labs で開発されましたが、この研究所の閉鎖後はマサチューセッツ工科大学に移管されました。 初めに 2011 年 3 月年、マサチューセッツ工科大学はプロジェクトのパブリック ベータ版を開始し、Web サイト appinventor.mit.edu で入手できました。

この開発環境はブラウザから直接動作します。 何もダウンロードしたりインストールしたりする必要はありません。 結果は Android デバイスで確認できます。 既製のアプリケーションを Play マーケットに配置できます。

2015 年 8 月以降、App Inventor 2 は以下をサポートしています。 ロシア語.

オンライン エディター MIT App Inventor 2 では、Android アプリケーション開発の主要な要素である標準コンポーネントに基づいてアプリケーションが構築されます。
App Inventor のブロック。 重要な概念と原則

App Inventor ブロックはコンポーネントを操作するためのツールであり、パズルのように見えます。

この Android アプリケーション デザイナーのブロックは、影響するものと関連するものに基づいて 2 つの大きなグループに分類されます。

  • コンポーネントに直接関係する
  • アプリケーション全体に関連する

まずは始めましょう コンポーネントに属するブロック。色によって簡単に区別できるように、次の 3 つのタイプに分類できます。

1. コンポーネントのプロパティを記述するブロック。 それらは緑色で、次のようになります。

このブロックはコンポーネントの現在のプロパティを示します。 この図は、TextBox1 テキスト コンポーネントの背景カラー ブロックを示しています。 これには、既存の値の取得が含まれます。

これはコンポーネントに必要な値を設定します (TextBox1 に背景色を与えます...)。 「セット」 - セットします。 このタイプのプロパティ ブロックは、フィールド値を含むコンポーネントのプロパティを変更するコマンドを実際に与えるため、コマンド (ハンドラー) として分類できます。 ただし、App Inventor の開発者はこのように決定しました。結局のところ、これらもプロパティです。

2. イベント ブロック。たとえば、ボタンを押してブロック コマンドを起動するなど、アプリケーション内でのイベントの発生を監視するブロックです。 ブロンズで塗装されており、次のようになります。

たとえば、このブロックは、ボタンがクリックされたときにアクションを実行します (Button3 がクリックされたときに do...)

3. block コマンド。App Inventor では、このブロックはハンドラーと呼ばれることがよくあります。 このブロックは、ブロックが属するコンポーネントに対して何を行う必要があるかを指定します。

この特定のブロックは、デバイス タイマーからデータを呼び出します。

2 番目のブロックのグループ アプリケーション全体に関連する、構成は多少異なります。

まず、サブグループのリストは次のとおりです。

  • ロジックブロック– 論理ブロック
  • 数学ブロック– 数学ブロック
  • テキストブロック– テキストブロック
  • ブロックをリストします– リストを管理するためのブロック
  • カラーブロック– カラー管理用のブロック
  • 変数ブロック– 変数を制御するためのブロック
  • 手続きブロック– 手順のブロック。

Procedures ブロックを除いて、それらはすべて他のブロックに組み込まれています。 つまり、コンポーネントに属するイベント ブロックとは異なり、初期ブロックとして機能することはできません。コンポーネントで何らかのイベントが発生すると、すべてのアクションが実行されます。

ここでは、「パズル」の種類について詳しく説明する価値があります。 さて、パズルには 4 種類あることにお気付きかと思います。

その形式から、モバイル アプリケーション内のチェーンはすべて最初のタイプで始まることは明らかです。 これはイベントであり、それ以降のすべてのアクションが開始されるのは非常に論理的です。 そしてこのタイプは、この Android アプリケーション ビルダーで採用されているものと何ら変わりません。

ただし、App Inventor の類型によれば、次の 2 種類のブロックは、それぞれプロパティとコマンド (ハンドラー) という異なる種類に属します。 しかし、パズルの形状と意味に応じて、それらはアクションを設定するため、コマンドとして分類される可能性があります。 まあ言ってみれば 2番写真にあるパズル コンポーネントに特定の値を割り当てるコマンドを与えます、A 三番目パズル - 特定の値を持つコンポーネントを呼び出す。 さらに、これらのパズルは「中間」であり、チェーンを完了するために使用することはできません。

そしてここ 第4種は 最終値 (既存または計算済み)、およびその値でチェーンを終了します。 たとえば、4 番目の画像は Clock1 コンポーネントの現在の値を表します。

この IT 企業は、App Inventor プログラミング言語で作成された Android OS 用のモバイル アプリケーションの開発コンテストを発表しました。

コンテストの日程
  • コンペ作品の受付・登録:2017年1月1日から5月15日まで。
  • 競争審査員による作品の審査 - 2017 年 5 月 15 日から 5 月 30 日まで。
  • コンテストの結果は5月30日にコンテストポータルで発表されます。

まず、habrahabr と geektimes に App Inventor の前のバージョンに関する記事がいくつかあるという事実から始めたいと思います。 どうぞ:

MIT が Google App Inventor をベータ版で公開
App Inventor - 誰でも使える Android アプリケーションの作成: レッスン 1
App Inventor を使用した XML ファイルの読み取り

このバージョンの App Inventor (ベータ版) は 2011 年から 2015 年まで実行されましたが、現在はサポートされていません。 2014 年以降、App Inventor 2 のバージョンが実行されていますが、以前のバージョンとは互換性がありません。 2011 年までは、Google Labs 内に Google App Inventor のバージョンがありました
つまり、App Inventor は、ユーザーに最小限のプログラミング知識を必要とする Android アプリケーション用のビジュアル開発環境です。 次のようになります。

この開発環境はブラウザから直接動作します。 何もダウンロードしたりインストールしたりする必要はありません。 Android タブレットまたは iPad からアプリケーションを作成できます。 ハードウェアの主な要件は、適切な画面解像度です。 例として、FullHD 解像度の画面のスクリーンショットを示します。 HD 画面から作成された以前のものと比較できます。


既製のアプリケーションを Play マーケットに配置できます。たとえば、すべてのアプリケーションが App inventor で作成された開発者アカウントを与えます。
MIT App inventor 2 については詳しく説明しません。これは、主に多くの小さな改良点が以前のバージョンと異なり、平均して数週間に 1 回リリースされるためです。 上記の記事を読めば、現在のバージョンを簡単に使いこなすことができます。
VKontakteにはかなりたくさんの人生があります コミュニティでは、参加者が App Inventor を使用した経験を互いに共有します。
パート 2. App Inventor + Arduino プロジェクト。
最近、「モノのインターネット」という話題が急速に発展しています。 このトピックに関する多くのプロジェクトは Arduino を使用します。 このようなプロジェクトでは Android アプリケーションを作成する必要がある場合があり、ここでは App Inventor 2 が必要になる場合があります。このトピックに関する記事が habrahabr と geektimes にいくつかあります。
1. Bluetooth 接続を使用した App Inventor + Arduino プロジェクト。 (Bluetoothモジュール HC-05\06\07)
Arduino上のロボット掃除機
Arduino 上のシンプルな Bluetooth マシン
Arduinoを使用したテレビ用Bluetoothリモコン
2. Wi-Fi接続を使用したApp Inventor+Arduinoプロジェクト(Wi-FiモジュールESP8266)
モノのインターネット (IoT) と配管
3.有線接続を使用したApp Inventor+Arduinoプロジェクト(イーサネットモジュールEnc28j60)
AndroidとArduinoアプリを使用したマルチゾーンアンプのボリュームコントロール
4.GPRS/GSM接続を使用したApp Inventor+Arduinoプロジェクト(GPRS/GSMシールドSIM900)
カントリーハウスの暖房制御
さて、2015 年 8 月以降、App Inventor 2 はロシア語をサポートしているという明るいニュースで終わりたいと思います。 この開発環境で独自の興味深いアプリケーションを作成した人がいる場合は、コメントに投稿してください。App Inventor を使用して他のアプリケーションを作成できるかどうかに興味を持つ人も多いと思います。
追伸 初心者から専門家までを対象とした Arduino に関する 100 を超える教育資料のコレクション
追伸 Giktimes の Arduino に関するオンライン コース

Web テクノロジーと拡張機能を使用して、App Inventor の組み込み機能を拡張できます。 有料および無料の拡張機能はインターネット (puravidaapps.com で約 200 個) で見つけることができますが、独自の拡張機能を作成するのはどのくらい難しいのか、何ができるのか、時間を費やす価値があるのか​​、それとも作成したほうが良いのか、といった疑問が生じます。何か他のことをしますか?

App Inventor で使用できるすべてのコンポーネントとブロックは組み込み (内部) であり、拡張機能は外部です。

組み込み機能は、初心者ユーザーには興味深い機能を提供しますが、経験豊富なユーザーには満足のいくものですが、プログラマーには不十分です。 ただし、ほとんどのユーザーは、拡張機能を開発するよりも、既製の拡張機能をダウンロードすることを好みます。 このことから、拡張機能の開発は主に経験豊富なユーザーや愛好家にとって興味深いものであるという単純な結論が得られます。 初心者は、組み込みの機能と利用可能な拡張機能に非常に満足しますが、プログラマーは二重作業が必要なため、拡張機能を使用することに興味がありません。 Java でコードをすぐに記述して、Android Studio IDE と Android API の利用可能な機能をすべて活用できるのに、機能が制限された拡張機能の作成とデバッグに時間を費やし、それを使用して機能が制限されたアプリケーションを作成する必要はありません。

ある程度のプログラミング経験と OOP の基本を理解していれば、AI 用の拡張機能を作成するのは難しくありません。しかし、上記の理由により、これに真剣に取り組んでいる人はほんのわずかです。 機能拡張を作成するのは現実的ではありませんが、組み込み機能を拡張したり、新しい機能を作成したりするための単純なアドオンを作成することは、実践という点では楽しくて便利です。 しかし、ここではアプローチを決定する必要があります。 AI の概念 (ビジュアル プログラミング) に従うことも、テキスト プログラミングの要素で拡張することもできます。

乱暴に言うと、App Inventor は氷山のようなもので、その先端は組み込み機能の形でユーザーに見えますが、その多くは水面下にありアクセスできません。 これは特にこの IDE の目的に従って行われ、ユーザーには最小限のプログラミング知識が必要です。 App Inventor に固有の作業モデルは、当初はより優れた機能を目的として設計されたものではありません。 新しいプロパティを追加すると、ブロックの数が急激に増加します。 たとえば、透明度プロパティを追加すると、各ウィジェットに 2 つのブロック (値の設定と返し用) が作成されます。 このようなウィジェットが 5 つある場合、ブロックの数は 10 ずつ増加します。10 個のプロパティを追加し、出力は 100 ブロックになりました。 これに加えて、新しいプロパティ フィールドがデザイナーに表示されます。 このような状況では、「シンプルな IDE + 拡張機能」というアプローチが合理的であるように思えますが、アドオンを見つけてインストールする必要がなく、すぐに使える優れた機能を好む人には適していません。

アプリケーション開発段階でオブジェクトのプロパティを個別に設定し、ブロックの厳密な接続を指定すると、開発が簡素化され、多数のエラーが回避される一方で、静的なアプリケーションの出現につながります。 1 つのブロックに別のブロックが接続されている場合、それは永遠に続きます。 この機能が開発段階で最初に組み込まれていた場合にのみ、アプリケーションの実行時にプロパティを変更したり、別のオブジェクトを選択したりできます。 これを行うには、オブジェクトへの間接アクセスを使用する必要があります。 たとえば、すべてのオブジェクトのオブジェクト名とオブジェクトのペアのリストを作成し、それを関数で使用してさまざまなオブジェクトにアクセスできます。 この場合、受信ブロックは特定のオブジェクトに関連付けられるのではなく、名前キーによって目的のオブジェクトを取得できるリストに関連付けられます。

上記に、グループ操作の実装の難しさ、ウィジェット、メソッドの欠如、組み込み機能のその他のニュアンスを追加すると、AppyBuilder、Thunkable、Makeroid などが登場した理由が明らかになります。コンポーネントの数により機能の増加が実現されます。 より多くのコンポーネント - より多くのブロック。 ただし、拡張機能を使用すると、たとえば、1 つのブロックを使用して数十のオブジェクトの数十のプロパティにアクセスするなど、定性的な方法で機能を増やすことができます。 これは、テキスト要素を使用してビジュアル プログラミングを補完し、組み込み AI 機能の多くの欠点を補うため、非常に興味深いものです。

プログラミングの知識がほとんどない人でも拡張機能を作成できるでしょうか? はい、単純な人であれば「コピーして変更」アプローチを使用してそれを行うことができますが、それでもある程度の準備が必要です。 これがないと、拡張機能がコンパイルされない理由や、画面に何が書かれているかが不明瞭になります。 Android オブジェクトを操作する拡張機能の一部は、Android Studio で作成およびデバッグする方が便利であるとも言えます。

拡張機能の開発は、基本的に App Inventor に満足しているが、何かを追加、改善、簡素化したいと同時に Java で練習したい人に適しています。 この場合は、開発環境をデプロイすることから始めましょう。

VKontakteにグループがあります App Inventor の拡張機能では、作業環境の作成と構成に関するステップバイステップのガイダンスがビデオとテキスト形式で提供されるほか、Test という単語を返す簡単な例も提供されます。 この資料を複製するのは意味がありませんが、トピックの簡単な紹介として例自体を見てみましょう。

パッケージ vlad; com.google.appinventor.components.runtime.* をインポートします。 com.google.appinventor.components.annotations.DesignerComponent をインポートします。 com.google.appinventor.components.annotations.DesignerProperty をインポートします。 com.google.appinventor.components.annotations.PropertyCategory をインポートします。 com.google.appinventor.components.annotations.SimpleEvent をインポートします。 com.google.appinventor.components.annotations.SimpleFunction をインポートします。 com.google.appinventor.components.annotations.SimpleObject をインポートします。 com.google.appinventor.components.annotations.SimpleProperty をインポートします。 com.google.appinventor.components.common.ComponentCategory をインポートします。 com.google.appinventor.components.common.PropertyTypeConstants をインポートします。 com.google.appinventor.components.common.YaVersion をインポートします。 com.google.appinventor.components.runtime.util.SdkLevel をインポートします。 @DesignerComponent(version = YaVersion.NOTIFIER_COMPONENT_VERSION, category = ComponentCategory.EXTENSION、description = "これはテスト拡張機能です"、nonVisible = true、iconName = "images/notifier.png") @SimpleObject(external=true) public Final class TestExtension extends AndroidNonvisibleComponentimplements Component ( public TestExtension(ComponentContainer container) ( super(container.$form()); ) @SimpleFunction(description = "この関数は \"Test\" 文字列を返します") public String Test() ( return "Test ";))

拡張コードには、クラスの Java コードと @ 記号で始まるアノテーションが含まれます。 注釈は、その下のコードのブロックが単純なコンパイラで処理されるべきであることを示すために使用されます。 単純なコンパイラは注釈を調べ、拡張機能を App Inventor 開発環境に統合します。指定された関数のブロック (関数またはプロパティ)、デザイナーの編集フィールドの作成、その他の作業を実行します。

@DesignerComponent は、コンポーネントの一般的なパラメーターと、コンポーネントが拡張機能として分類され、非ビジュアルであることを示します (現在、非ビジュアル拡張コンポーネントのみを作成できます)。

@SimpleObject はコンポーネントを示し、フィールド external=true はコンポーネントが外部であることを示します

@SimpleFunction は、ブロックを作成する関数をコンパイラーに指示します。 関数が値を返す場合、左側にノッチが表示されます。 関数にパラメータがある場合、対応するノッチが右側に表示されます。

クラスのソース コードは、パッケージ名に対応するディレクトリにあります。

com/google/appinventor/components/runtime - 組み込みオブジェクトのクラス。
com/google/appinventor/components/annotations - 注釈クラス
com/google/appinventor/components/common - 共通クラス
com/google/appinventor/components/runtime/util - ユーティリティ クラス

現在、拡張機能を使用して非ビジュアル コンポーネントのみを作成できます。 組み込みウィジェットなど、デザイナーのワークスペースにドラッグできるビジュアル コンポーネントを作成する必要がある場合は、そのために App Inventor の独自のローカル コピーが必要になります。

ラベルの変更、ブロックのコンパイル、インストール、実行を試してください。 すべてがうまくいけば、作業環境が設定され、より実用的で興味深いものの作成に進むことができます。

この投稿で紹介するのは、 MIT アプリ発明者 2ソフトウェアを紹介し、Arduino と対話して制御する Android アプリの構築をすぐに始めるために必要なものを説明します。

この投稿で取り上げる内容は次のとおりです。

  • MIT App Inventor 2 が良い選択である理由は何ですか?
  • MIT App Inventor 2 へのアクセス
  • MIT App Inventor (Bluetooth) で Arduino を制御する方法
  • MIT App Inventor の概要
  • MIT App Inventor を使用したプロジェクト
  • MIT App Inventor 2 を使用した Arduino 用 Android アプリ

MIT App Inventor 2 の紹介

MIT App Inventor 2 は、Android アプリケーションを作成するためのシンプルで直感的な無料サービスです。 MIT App Inventor を使い始めたい場合、ソフトウェアはクラウドベースであるため、コンピューターにプログラムをダウンロードしたりインストールしたりする必要はなく、ブラウザー (Chrome、Mozilla、Safari、Internet Explorer) で直接アプリを構築します。 、など)。

たとえば、インターネット接続が必要なのはアプリを構築するためだけです。

なぜ MIT App Inventor が良い選択なのでしょうか?

  • MIT App Inventor 2 は直感的で使いやすいです。
  • 便利な機能を備えた素晴らしいアプリを構築するために、プログラミングやデザインの専門家である必要はありません。
  • デザインの作成は、スマートフォンの画面上でウィジェットを選択して配置するだけで簡単です。
  • コードはパズル ブロックをドラッグ アンド ドロップして実行します。

数時間の練習で、誰でも MIT App Inventor 2 を使用して独自のアプリを構築する方法を学ぶことができます。

MIT App Inventor 2 へのアクセス

Arduino で使用される最も一般的な Bluetooth モジュールは、HC-05 Bluetooth、HC-04、および HC-06 です。

Bluetooth モジュールの詳細については、次のブログ投稿を確認してください。

Bluetooth モジュールはシリアル データを処理します。 これは、Arduino が情報を送信し、Bluetooth モジュールがシリアル経由で情報を受信することを意味します (逆も同様)。

次の図は、Android アプリから Arduino に情報がどのように流れるかを説明しています。

スマートフォンは Bluetooth 経由で Bluetooth モジュールに情報を送信します。 次に、Bluetooth モジュールはシリアル通信を介して情報を Arduino に送信します。 このフローは逆にも機能します。つまり、Arduino が Bluetooth モジュールに情報を送信し、Bluetooth モジュールが Bluetooth 経由でスマートフォンに情報を送信します。

MIT App Inventor の概要

これは、経験がなくても、Arduino 用のクールな Android アプリケーションを構築できるようにするためのステップバイステップのコースです。 8 + 1 プロジェクトのコレクション。

この投稿がお役に立てば幸いです。

App Inventor セットアップ用の Windows ソフトウェアのインストールには、次の 2 つの部分があります。

  1. App Inventor Setup ソフトウェア パッケージをインストールします。 この手順はすべての Android デバイスで同じであり、Windows XP、Vista、Windows 7、8.1、および 10 でも同じです。
  2. USB ケーブルを使用してデバイスに接続することを選択した場合は、Android スマートフォン用の Windows ドライバーをインストールする必要があります。

注: App Inventor 2 は Internet Explorer では動作しません。 Windows ユーザーの場合は、次のいずれかを使用することをお勧めします。 クロム App Inventor で使用するブラウザとして Firefox を使用することもできます。

App Inventor Setup ソフトウェア パッケージのインストール

管理者権限を持つアカウントからインストールを実行する必要があります。 管理者以外のアカウントを使用したインストールは現在サポートされていません。

App Inventor 2 セットアップ ツールの以前のバージョンをインストールしている場合は、最新バージョンをインストールする前にそれらをアンインストールする必要があります。 「App Inventor セットアップ ソフトウェアを更新する方法」の手順に従ってください。

セットアップ ソフトウェアの場所を確認する

ほとんどの場合、App Inventor は独自にセットアップ ソフトウェアを見つけることができるはずです。 ただし、ソフトウェアの場所を尋ねられた場合、入力するパスは次のとおりです。 C:\Program Files\Appinventor\commands-for-Appinventor。 64 ビット マシンを使用している場合 ((64 ビット Windows を使用しているかどうかを確認する方法)、Program Files ではなく Program Files (x86) と入力する必要があります。また、ソフトウェアを管理者としてインストールしていない場合も、 、C:\Program Files ではなくローカル ディレクトリにインストールされている場合、正しいパス名を見つけるために検索する必要があります。