今日は、ネットで見つけたいSQLiteが使えるApp Inventor系サービスの中で最も気になる「Makeroid」を勉強。
[Makeroid]
「Makeroid」は、「元祖MIT App Inventor」「Thunkable」とは違い”SQLIte extension”を使うのではなく、AppyBuilderと同様にオリジナル機能としてSQLiteを実装してるサービス。
で、使った感想は
理由は3つ
1:データをリストにするとセパレータ記号がカンマ(,)記号ではなくスペース
2:SQL実行と実行後の処理が別々のブロックに別れてる
3:FTP、File機能のファイル指定が絶対パスなんです!(動かないデバイスがあるはず)
デザイン画面がこれ
紫色基調でThunkableより配色がオシャレ
その上で、AppyBuilderに負けないオリジナル機能が盛りたくさん
僕のハンディーターミナルアプリに必要な3つの機能がオリジナルで実装されているのはAppyBuilder以外ではMakeroidだけ!
その機能が、「SQLite」「FTP」そして「File:UNZIP」
まずは、SQL executionの勉強
「Single SQL」ブロックでcreate table、 insert、drop tableを定義・実行
「After Execution」ブロックでSQL実行後の処理をプログラム
次はQuery(=データ抽出)
「Row Query」ブロックにselect文を書き「After Query」ブロックにSQL実行後の処理をプログラム。このテストプログラムでは、select結果表示をListView:Elements(=ソース)に指定。
で、気になった1つ目の問題点
他のサービスではカンマ(,)記号。
カンマ(,)なら「After Picking」の選択値(=selection)を「list from csv row text」ブロックに代入して個々の値を取り出すプログラムが作れます。
でも、スペース記号では出来ません
次いで2つ目の問題点
でもSQLiteコンポーネントは、「After Query」を1個しか持てません。
複数の検索機能を作るには、たくさんのSQLiteコンポが必要になる!
得意先検索、商品検索、履歴検索・・・・
同一画面に組み込みたい検索がいっぱいある時、とっても不便。
綺麗な仕様とは思えない。
AppyBuilderは「SQLite RunQuery」ブロックにSQL文を直書きするのでSQliteコンポ1個で好きなだけ検索機能を同一画面に持たせられる!
次はネットワーク系の勉強
Makeroidには、ネットワーク用に「wifi」「network」の2つのブロックが有ります。
練習プログラムがこれ
Wifi接続On/Off、IPアドレス、SSID名、ネットワークスピードが簡単に確認できました。
これ、すごく便利
動かした様子がこれ!
次は、Screenshot機能が有ったのでお遊びで追加。
Screenshotを撮りプレビューさせるプログラムがこれ。
Screenshot画像(=png)をimageコンポーネントへ表示させた様子
んん~、Makeroidって絶対パスで書くんだ!
最後は、FTPとUNZIPの勉強。
僕のハンディーターミナルアプリでは、ZIP圧縮したマスタデータ(数百のbulk importファイル)をFTPダウンロード後UNZIP、それをインポート。受注データは、固定長に吐出しFTPアップロードする仕様。
ここで3つ目の問題点
テストアプリのパス「/storage/emulated/0/」は、Nexus7用(Android 6)。
Android 7.0「Zenfone AR」では、このパスでは動かない。
これでは端末のメーカー・OSバージョン次第で動く端末が非常に限られてしまう!
AppyBuilderだと相対パスでOK
ホームディレクトリのルート(/)から書くだけ!
これ、すごく便利な仕様です!
やっぱAppyBuilderは、世界最高No.1!