このページの本文へ

PCを使わずに、自分でアプリを作ってみよう 第1回

アプリを作るためのAndroidアプリ、「PineVentor」

2015年11月29日 17時30分更新

文● 梶川敬文

  • この記事をはてなブックマークに追加
  • 本文印刷

 スマートフォンを使うときに欠かせないのがアプリですが、このアプリを自分で作ってみたいという人はいるでしょうか。既存アプリに微妙に気に入らない点があるとか、あまりに特殊な業務で誰も専用アプリを作ってくれないとか、自分で考案したゲームを作りたいとか、目的はいろいろあると思います。

 作ってみたいけど大変そうだとか、そもそもPCを持ってない、などの理由であきらめている人はいませんか。そういう人のために「PineVentor」というアプリをご紹介します。

PineVentor
価格無料 作者picpie
バージョン1.09 ファイル容量962KB
対応デバイスAndroid端末 対応OS2.2以上

 PineVentorはアプリを作るためのAndroidアプリです。アプリ上でプログラムを組んで、そのまま走らせることができます。次の特徴があります。

PCが要らない

 PineVentorには、プログラム編集モードと、実行モードがあり、アプリの画面デザインやプログラムの編集もスマートフォン単体で行うことができます。アプリの作成にPCは不要です。現場や出張先などPCを持ち込むのが面倒なところでも、その場でアプリの手直しができます。

プログラム編集モード(左)と、実行モード(右)

面倒な機能を簡単に呼び出せる

  PineVentorはコンポーネントと言う部品を組み合わせてアプリを作ります。コンポーネントを呼び出すだけで、カメラやバーコードを使ったり、HTTPでインターネットから情報を取得するなどの機能を使うことができます。

プログラムはボタンが押されたとき、バーコードを読み取ったとき……などのような場面ごとに行うので、ひとつひとつの処理は単純に書けます。

ちゃんと使えるアプリも書ける

 PineVentorはブラウザ画面でJavascriptを走らせています。スマートフォンとPCの機能差は多少ありますが、Webアプリとほぽ同じことができると言っていいでしょう。簡単なアプリだけではなく、ちゃんとしたアプリも書けます。

インストールと起動

 PineVentorでアプリを作るのに特別な準備は必要ありません。PineVentorをインストールして起動するだけです。インストールはこちらのURLから通常のアプリと同様に行います。もしくはGooglePlayで「PineVentor」を検索してインストールしてください。

 インストールできたら、パインのアイコンをクリックして起動します。

アプリ管理画面

 アプリ管理画面となります。まだ何のアプリも作っていないので、中身は空っぽです。左下[import]ポタンをクリックすると、サンプルアプリをいくつかロードすることができます。中央の[new]ボタンをクリックすると、新しいアプリを作成できます。

 なお、PineVentorはAndroid OS内蔵のブラウザ部品(WebView)や絵文字を使っています。機種によってバージョンや画面の大きさが異なるので、多少の見栄えの違いがあります。

作成するアプリについて

作成するアプリの動作

 これから順に作成方法を説明するアプリは、ボタンを押すとバーコードリーダーを起動し、そこで書籍のISBNコードを読み取って、その値をGoogle Books API に問い合わせて書影やタイトルなどの情報を取得するというものです。

 実はサンプルにある「Books」と同じものです。記事はまったく新規にアプリを作成する体で順に説明していきますが、面倒な方はサンプルからロードすることもできます。

アプリの作成

 アプリ管理画面から[new]ボタンを押して、新規アプリ名を入力します。アプリ名は「Books」とします。アプリ名を入力したら、アプリのデザイン画面となります。まだ何もありません。

アプリ・デザイン画面

コンポーネント

 PineVentorのアプリはコンポーネントという部品を組み合わせて作成します。コンポーネントにはさまざまな種類があります。画面表示HTMLタグ相当のものから、インターネットアクセスやバーコードリーダーの起動など、ちょっと面倒な処理をパッケージ化したものなど。

コンポーネントの追加

 デザイン画面上部中央の[create]ポタンをクリックします。

コンポーネントの選択

 コンポーネントの選択画面が表示されるので、追加したいコンポーネントのボタンをクリックします。

コンポーネントの名前

 コンポーネントの名前をつけます。デフォルトでは名前がかぶらないように、末尾にA、B、Cの文字が付けられます。既存のコンポーネントと被らない別の名前に変更してもかまいません。

コンポーネントのプロパティ

 ボタンコンポーネントを作成すると次のようになります。下の領域はコンボーネントのプロパティです。

コンポーネントのプロパティ

 コンポーネントには画面に表示されるものと、されないものがあります。コンポーネントの選択で上の方にあるHTML Partsにある種類のものは、画面に表示されるタイプで、あとは画面には表示されないタイプです。

 画面に表示されるタイプのコンボーネントはドラッグして位置を変更することができます。また、プロパティ画面で大きさや表示テキストなどを変更することができます。プロパティを変更するには、プロパティのボタンをクリックしてください。値の変更ダイアログが表示されます。

値の変更ダイアログ

 左端[Width]の横にある鍵アイコンのボタンは、コンポーネントの位置ロックです。鍵がロックしていない場合は、ドラッグで位置変更可能。ロックされている場合は、ドラッグで位置変更不可です。コンポーネントの位置を決めたあと、不用意に触って場所が変わってしまうのを防ぎます。

画面に表示されないタイプのコンポーネントは黄色い領域に並べられます

Booksアプリのコンボーネント

 このアプリを構成するコンポーネントは次のとおりです。順に設定してください。

コンポーネントタイプ名前説明
SystemcSysシステムコンポーネント(デフォルト)
ButtoncButtonAバーコードリーダー起動ボタン
BoxcBoxPic書影表示Box
BoxcBoxInfo書籍情報表示Box
BarcodecBarcodeAバーコードリーダー
HttpcHttpAHTTPアクセス

 cButtonA、cBoxPic、cBoxInfoが画面上に配置するコンポーネント。cBarcodeA、cHttpAは非表示のコンポーネントです。cSysは最初から存在するコンポーネントなので、設置の必要はありません。

必要なコンポーネントをすべて追加するとこのようになります

メソッド

 コンポーネントに付属する処理をメソッドと呼びます。Javascriptの関数と同じようなものです。

メソッドにはボタンが押されたとき、バーコードから値を読んだとき、通信が完了して値が取得できたとき、などのようにイベントがあったときに呼ばれるものがあります。これらイベントメソッドはコンポーネントを作成したときに、最初から定義されています。

 コンポーネントのプロパティ画面にある、水色の[Method]タグをクリックすると、そのコンポーネントに定義されているメソッドの一覧を見ることができます。

メソッドのパラメータなどは、メソッド名の左側のボタンを押して修正します。この画面の左側にある[new]ボタンで、メソッドを追加することもできますが、イベントメソッドの追加はできません

 アプリ・デザイン画面の上にある[list]ボタンをクリックすると、全コンボーネントとそれに付属するメソッドの一覧が表示されます。画面が小さいので表示されていない部分がありますが、タッチしたまま指を離さずドラッグして上下にスクロールすることで、見えない部分を表示することができます。

タッチしたままドラッグして上下にスクロールすることで、見えない部分を表示します

 ここでこのアプリの動作をおさらいしておきましょう。

  Booksアプリの処理の流れは、ユーザーがボタンを押す→バーコードリーダー起動→バーコードリーダーが値を読む→それをGoogleに問い合わせる→Googleから値が返ってくる→返ってきた値を画面に表示、というものですが、起きたこと(イベント)と、その対処(メソッド)をまとめると以下のようになります。

起きた事(イベント)対処(メソッド)
ユーザーがボタンを押すcButtonA.onClick(te)
 バーコードリーダーを起動
バーコードリーダーが値を読むcBarcodeA.onSuccess(val)<
 読み込んだ値を元にGoogleにアクセスする
Googleから情報が返ってくるcHttpA.onSuccess(val)
 返ってきた情報を画面に表示する

 これらイベント処理を追加し終わるとアプリは完成です。

cButtonA.onClick(te) ユーザーがボタンを押したときの処理

 ユーザーがポタンを押すイベントに対するメソッドはcButtonA.onClick(te)です。さきほどのコンポーネント一覧から onClick(te) をクリックすると、メソッドの編集画面になります。

メソッドの編集画面

 この部分にJavascriptで何か書けば、ポタンを押したときにそのスクリプトが実行されます。ここではバーコードリーダーを起動したいので、以下の内容を記述します。

 ところでスマートフォンの小さい画面でいろいろタイプするのは大変です。メソッド編集画面の一番上には、各コンポーネントとそれに対応するメソッドを入力するためのテンプレートがあるので、それを使いましょう。

 まず左のプルダウンをクリックすると、これまでに定義されているコンポーネントをプルダウンから選択できます。

「cBarcodeA」をクリックしてバーコードコンポーネントを選びます

 続いてその右をプルダウンをクリックすると、「cBarcodeA」に定義されているメソッドの一覧が選択できます。「open()」を選択してください。

プルダウンに「cBarcodeA」「open()」が選択された状態で、[Paste]ポタンをクリックすると、テンプレートの「cBarcodeA.open()」が入力されます

最後のセミコロンを打つのを忘れずに、右上の[Enter]をクリックしてください。これでこのメソッドの定義は終わりです

 ここで[Run]をクリックして実行してみましょう。Barcodeボタンを押すとバーコードリーダーのカメラが起動するようになりました。バーコードをカメラの中央にとらえて、画面をタッチするかポリームキーを押すと読み込みできます。しかしバーコードを読み終えても、まだ何も起きません。

cBarcodeA.onSuccess(val) バーコードリーダーが値を読んだときの処理

 バーコードが値を読み終えたときのイベントです。[list]ボタンをクリックしてコンポーネント・メソッド一覧を表示し、ドラッグしてcBarcodeAの下にあるonSuccess(val)をクリックしてメソッド編集に入ります。とりあえず以下のようにメソッド内容を入力します。

 val はJavascript関数の引数で、バーコードリーダーから読んだ値が入っています。メソッドを編集したら、[Enter]で戻ってアプリのデザイン画面から[Run]で実行します。Barcodeボタンを押すとバーコードリーダーが起動します。画面をタッチしてコードを読み込ませると、今度は読んだ値を表示するようになりました。

画面をタッチしてコードを読み込ませると、読んだ値を表示しました

 確認できたら、[list]ボタンでコンポーネント・メソッド一覧を表示し、cBarcodeA.onSuccess(val)の編集に戻ります。先ほどの行に続けてcHttpAコンポーネントがGoogle Books APIへアクセスする処理を追加します。

 cHttpA.open()の引数にセットしたURLは、Google Books APIで書籍情報を検索できるAPIです。詳しくはGoogleのページを参照してください。 valには書籍のバーコードから読み取ったコードが入っています。{APIKey}は登録したAPI Keyに置き換えてください。指定しなくても動くようですが、API Keyを省略する場合は、”&key=” から先を除いてください。

cHttpA.onSuccess(val) Googleから情報が返ってきたときの処理

 cHttpAがサイトから情報を取得したときのイベントです。[list]ボタンをクリックしてコンポーネント・メソッド一覧を表示し、ドラッグしてcHttpAの下にあるonSuccess(val)をクリックしてください。以下の内容を入力します。

 1行めは、Googleから返ってくるJSON文字列を解釈するために、Javacriptのオブジェクトに変換する処理です。あまり行儀のいい方法ではありませんが、とにかく短く書けるのが利点です。その次の段落はJSONから作られたオブジェクトから必要な情報を取り出しています。titleは書籍タイトル、thumbには書影イメージのURL、authorsには著者名が入ります。その次のif文は、書籍によっては書影イメージが存在しないので、imageLinksが存在することを確認してから、実際のURLを格納するためのものです。

 title, thumb, authorsに必要な情報がセットされたら、cBoxInfoにtitleとauthorsの文字列を、cBoxPicにはイメージのURLをセットします。

 以上でバーコードから書籍情報を取得するアプリが完成しました。実行してみましょう。実行画面からBarcodeボタンを押してバーコードリーダを起動します。手近の本のバーコードにカメラを向け、画面をタッチするかボリュームキーを押してスキャンします。通常書籍にはバーコードが2本印字してありますが、ISBNコードは上の978で始まっている方をスキャンしてください。

いかがでしょうか

 長くなりましたが、コーディングは3ヵ所しかないので簡単に試せると思います。コンビニで買えるような商品にはJANコードというバーコードが付いています。レジでピッと通してお会計しますが、YahooやAmazonから提供されているAPIを使うと、JANコードから商品の情報を取得することができます。JANコードはCDやDVDにも付いているので、それらの情報取得にも使えます。アクセスするURLと得られた情報の解釈方法を少し変えるだけで、いろいろと応用ができると思います。

サンプルアプリをロードする

 アプリ管理画面から、[import]ボタンを押してimport画面に入ります。

下の方にサンプルアプリがいくつかあるので、試してみたいアプリをクリックしてください。ロードに成功すると、アプリ・デザイン画面に遷移します

■関連サイト

カテゴリートップへ

この連載の記事
1
【整備済み品】 富士通 ノートパソコン LIFEBOOK MU937 超軽量 薄型ノートPC■Win11搭載 / MS Office H&B 2019 / FHD(1920x1080)/第七世代 Celeron/8GBメモリ/SSD 256GB/Webカメラ内蔵/13.3インチ
【整備済み品】 富士通 ノートパソコン LIFEBOOK MU937 超軽量 薄型ノートPC■Win11搭載 / MS Office H&B 2019 / FHD(1920x1080)/第七世代 Celeron/8GBメモリ/SSD 256GB/Webカメラ内蔵/13.3インチ
¥19,800
2
Lenovo ノートパソコン パソコン IdeaPad Slim 3 14.0インチ 第13世代 インテル® Core™ i5 プロセッサー搭載 13420H メモリ16GB SSD512GB MS Office 2024搭載 Windows11 バッテリー駆動14.1時間 重量1.39kg ルナグレー 83K00072JP ノートPC
Lenovo ノートパソコン パソコン IdeaPad Slim 3 14.0インチ 第13世代 インテル® Core™ i5 プロセッサー搭載 13420H メモリ16GB SSD512GB MS Office 2024搭載 Windows11 バッテリー駆動14.1時間 重量1.39kg ルナグレー 83K00072JP ノートPC
¥107,800
3
【整備済み品】中古 ノートパソコン NEC VersaPro VKT16/15.6型・第8世代Core i5-8250U(最大動作3.4GHz)/快適メモリ8GB/ 高速SSD 256GB/Win11 Pro/MS Office 2019付属/テンキー付, Webカメラ, USB3.0, HDMI, VGA, 有線LAN, WIFI内蔵, Bluetooth/ACアダプター付属/180日間保証
【整備済み品】中古 ノートパソコン NEC VersaPro VKT16/15.6型・第8世代Core i5-8250U(最大動作3.4GHz)/快適メモリ8GB/ 高速SSD 256GB/Win11 Pro/MS Office 2019付属/テンキー付, Webカメラ, USB3.0, HDMI, VGA, 有線LAN, WIFI内蔵, Bluetooth/ACアダプター付属/180日間保証
¥26,880
4
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
¥36,979
5
HP ノートパソコン 15-fd 15.6インチ インテル Core Ultra 5 125H メモリ16GB SSD512GB Windows 11 Microsoft Office 2024搭載 WPS Office搭載 カメラシャッター 指紋認証 薄型 Copilotキー搭載 ナチュラルシルバー (BJ0M7PA-AAAF)
HP ノートパソコン 15-fd 15.6インチ インテル Core Ultra 5 125H メモリ16GB SSD512GB Windows 11 Microsoft Office 2024搭載 WPS Office搭載 カメラシャッター 指紋認証 薄型 Copilotキー搭載 ナチュラルシルバー (BJ0M7PA-AAAF)
¥134,377

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥1,880
2
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,890
3
【Amazon.co.jp限定】バッファロー microSD 32GB 100MB/s UHS-1 U1 microSDHC【 Nintendo Switch 対応 】V10 A1 IPX7 Full HD RMSD-032U11HA/N
【Amazon.co.jp限定】バッファロー microSD 32GB 100MB/s UHS-1 U1 microSDHC【 Nintendo Switch 対応 】V10 A1 IPX7 Full HD RMSD-032U11HA/N
¥980
4
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥740
5
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
6
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
¥5,280
7
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥980
8
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
¥5,545
9
バッファロー SDカード 128GB 100MB/s UHS-1 スピードクラス1 VideoSpeedClass10 IPX7 Full HD データ復旧サービス対応 RSDC-128U11HA/N
バッファロー SDカード 128GB 100MB/s UHS-1 スピードクラス1 VideoSpeedClass10 IPX7 Full HD データ復旧サービス対応 RSDC-128U11HA/N
¥1,980
10
バッファロー USBメモリ 32GB USB3.2(Gen1)/3.1(Gen 1)/3.0/2.0 充実サポート RUF3-K32GA-BK/N
バッファロー USBメモリ 32GB USB3.2(Gen1)/3.1(Gen 1)/3.0/2.0 充実サポート RUF3-K32GA-BK/N
¥880

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

ASCII.jpメール デジタルMac/iPodマガジン