今日は、ネットで見つけたいSQLiteが使えるApp Inventor系サービスの中で最も気になる「Makeroid」を勉強。

[Makeroid]


「Makeroid」は、「元祖MIT App Inventor」「Thunkable」とは違い”SQLIte extension”を使うのではなく、AppyBuilderと同様にオリジナル機能としてSQLiteを実装してるサービス

[AppyBuilder]


で、使った感想は

ハンディーターミナルアプリ(=Mobile Database System)作るならAppyBuilderが上かな
理由は3つ
1:データをリストにするとセパレータ記号がカンマ(,)記号ではなくスペース
2:SQL実行と実行後の処理が別々のブロックに別れてる
3:FTP、File機能のファイル指定が絶対パスなんです!(動かないデバイスがあるはず)

デザイン画面がこれ
紫色基調でThunkableより配色がオシャレ
その上で、AppyBuilderに負けないオリジナル機能が盛りたくさん
Makeroidを使ってみました。ハンディーターミナルアプリ作れるかな?


僕のハンディーターミナルアプリに必要な3つの機能がオリジナルで実装されているのはAppyBuilder以外ではMakeroidだけ!
その機能が、「SQLite」「FTP」そして「File:UNZIP」

勉強用に作ったテストアプリがこれ
Makeroidを使ってみました。ハンディーターミナルアプリ作れるかな?


まずは、SQL executionの勉強
「Single SQL」ブロックでcreate table、 insert、drop tableを定義・実行
「After Execution」ブロックでSQL実行後の処理をプログラム
Makeroidを使ってみました。ハンディーターミナルアプリ作れるかな?


次はQuery(=データ抽出)
「Row Query」ブロックにselect文を書き「After Query」ブロックにSQL実行後の処理をプログラム。このテストプログラムでは、select結果表示をListView:Elements(=ソース)に指定。
Makeroidを使ってみました。ハンディーターミナルアプリ作れるかな?


で、気になった1つ目の問題点

リスト表示させたセパレータ記号がカンマ(,)ではなくスペースなんです!
他のサービスではカンマ(,)記号。
カンマ(,)なら「After Picking」の選択値(=selection)を「list from csv row text」ブロックに代入して個々の値を取り出すプログラムが作れます。
でも、スペース記号では出来ません

次いで2つ目の問題点

「Row Query」と「After Query」を対にしてプログラムするみたい!
でもSQLiteコンポーネントは、「After Query」を1個しか持てません。

複数の検索機能を作るには、たくさんのSQLiteコンポが必要になる!

得意先検索、商品検索、履歴検索・・・・
同一画面に組み込みたい検索がいっぱいある時、とっても不便。
綺麗な仕様とは思えない。

AppyBuilderは「SQLite RunQuery」ブロックにSQL文を直書きするのでSQliteコンポ1個で好きなだけ検索機能を同一画面に持たせられる


次はネットワーク系の勉強
Makeroidには、ネットワーク用に「wifi」「network」の2つのブロックが有ります。
練習プログラムがこれ
Wifi接続On/Off、IPアドレス、SSID名、ネットワークスピードが簡単に確認できました。
これ、すごく便利
makeroidの勉強:Network周り

動かした様子がこれ!
Makeroidを使ってみました。ハンディーターミナルアプリ作れるかな?


次は、Screenshot機能が有ったのでお遊びで追加。
Screenshotを撮りプレビューさせるプログラムがこれ。

Makeroidの勉強:画面キャプチャー(Screenshot)


Screenshot画像(=png)をimageコンポーネントへ表示させた様子
んん~、Makeroidって絶対パスで書くんだ!
Makeroidを使ってみました。ハンディーターミナルアプリ作れるかな?

最後は、FTPとUNZIPの勉強。
僕のハンディーターミナルアプリでは、ZIP圧縮したマスタデータ(数百のbulk importファイル)をFTPダウンロード後UNZIP、それをインポート。受注データは、固定長に吐出しFTPアップロードする仕様。

この仕様のアプリが作れるかテストしたプログラムがこれ!
Makeroidの勉強:FTPとupzip


ここで3つ目の問題点

えええ~、MakeroidのFTPとFileコンポーネントって絶対パスを直書きしないと動かないみたい!

テストアプリのパス「/storage/emulated/0/」は、Nexus7用(Android 6)。
Android 7.0「Zenfone AR」では、このパスでは動かない。

これでは端末のメーカー・OSバージョン次第で動く端末が非常に限られてしまう!

AppyBuilderだと相対パスでOK
ホームディレクトリのルート(/)から書くだけ!
これ、すごく便利な仕様です!

やっぱAppyBuilderは、世界最高No.1!

(152 views)

コメントを残す

メールアドレスが公開されることはありません。