カテゴリー: AppInventor

  • [ai]アキバの中古スマホ(14,800円)でハンディターミナル

    インプレスのアキバウォッチに気になる記事(2016/2/6)が!
    秋葉でシャープ「AQUOS PHONE ZETA SH-06E」の中古が特価販売。
    C級品は14,800円!

    App Inventor開発:アキバ投げ売りスマホでハンディーターミナル

    んんん〜、買いたいかも・・・・・

    20,000円前後で買った数台の「Huawei Ascend G620S」
    そして、驚異の低価格9200円で買った「ワイモバイルSTREAM S 302HW」

    安いSIMフリースマホで動かす僕の「貧社のハンディーターミナル」アプリ。
    問題は無いんだけど気になることが1つ有る。

    安いスマホのカメラは、やっぱそれなりの性能。
    薄暗い倉庫ではなかなかスキャン出来ないし、オートフォーカスがすごく遅い!

    次買うスマホは高性能カメラ搭載の国産中古にするつもりだったので丁度いいかも:roll:

    東京の友人に電話をし2台買ってもらいました。
    着払い送料980円をプラスすると1台15290円。

    セットアップして棚卸し作業を試しにすると・・・・・

    バーコードスキャンが早い!
    やっぱ1300万画素の国産「AQUOS PHONE ZETA SH-06E」のカメラは、1万円前後の中華スマホとは違うな 😀


    App Inventor開発:アキバ投げ売りスマホでハンディーターミナル

    他の中小企業は、ハンディーターミナルシステム導入に500万円とか掛けてるんだろうか?
    カッコ悪いけど形部商事のハンディーターミナルシステムは15万円弱。

    支店を持たないローカル企業のハンディならこんなんでいいんじゃないのかな 🙄

    さてと、プログラム修正の為に解約せずに自腹で払ってる5ドルの月額利用料。
    いつまで続けようかな・・・・

  • 【App Inventor開発かな?】Chromebit上で僕のアプリが動きました!

    アメリカから個人輸入でChromebit(85ドル)を買ってみました。
    ステック型でモニターのHDMI端子へ直挿しするコンピューターです。
    基本ソフトは、知る人ぞ知るChrome OS。

    中身は超軽量で、コンピュータの起動部分とChromeブラウザーだけ!
    電源を入れ2,3秒で、直ぐに使い始められるのが特徴。

    何かしたいときはChromeブラウザー上で動くWEBベースのアプリをインストールして使います。

    App Inventor開発:chromebit上でも僕のアプリが動きました

    取りあえずChromebitに、Chrome上でAndroidアプリを動かすエミュレーターソフト「ARC Welder」をインストール。

    僕のApp Inventor2製「貧社のハンディーターミナル」アプリが動くか試してみました。

    結果は、問題なし

    App Inventor開発:chromebit上でも僕のアプリが動きました

    「ARC Welder」のアプリ追加画面から、僕のハンディーターミナルアプリのAPKファイル(Androidインストーラー)を読み込ませると・・・
    App Inventor開発:chromebit上でも僕のアプリが動きました

    ハンディーターミナルアプリの棚卸し画面は普通に使えました。
    App Inventor開発:chromebit上でも僕のアプリが動きました

    アプリランチャーに「ARC Welder」と僕のアプリが登録されています。
    App Inventor開発:chromebit上でも僕のアプリが動きました

    わぁーーーーい、これは面白い

    85ドル(10000円)の安価なメンテナンスフリーパソコンで、お手軽にソフトが作れるApp Inventor2アプリが動くのはすごいぞ!

    これって、実務に使えるキヨスク端末が素人でも作れるってことだ!
    何か仕事に役立つタッチパネルシステムが作れないかな・・・

    出荷検品端末とか作れるかも・・・・・・

  • 【ai】Backpackはすごく便利

    開発しやすさなら世界No1だと思ってるApp Inventor2

    でも、大きな欠点が有るんです。
    それはScreen(操作画面)間でプログラムがコピー出来ないこと。

    私の場合、ハンディーターミナルアプリ開発なら、まずJANコードと数量だけを入力する棚卸画面を作成。その画面を「受注画面」として別名コピー
    そこへ受注に必要な単価入力機能を作り込むのが、一番手っ取り早い開発方法なんです。

    でも、App Inventorではそれが出来ない 😮

    もしどうしてもScreen(操作画面プログラム)コピーしたい場合は、かなり特殊な裏ワザが必要です。その方法は、Amerkashi社長が投稿してくれた裏ワザHOWTOビデオで紹介されてます。

    この作業、とっても面倒でした!
    1回目は失敗しファイルが壊れ、2度目で成功。

    [【App Inventor開発】Screen画面をコピーする方法]

    ZIP圧縮されているAPKファイル(Androidインストールファイル)を解凍しないまま開くことが出来る特別なソフトでファイル内を開き、コピー対象のScreen関連の3ファイルを別名コピーしZIPを閉じる。

    AI Screen Manipulation

    この不便さ何とかならないのかな......」と思っていたのは僕を含めて大勢いたみたいで、そのニューズに答えMITが本家App Inventor2にScreen間のプログラムコピー機能を追加してくれました。

    それが「BACKPACK」

    そのリリースから10日程遅れてAiLiveCompleteにも「BACKPACK」が導入されました。
    でもその数時間後、BACKPACKを使ったらプログラムが消える不具合が発生し、数時間に非公開に・・・

    [【App Inventor開発】プログラムを別Screenにコピーする新機能「backpack」]

    それから2ヶ月経ち忘れかけてた頃、突然社長からメンバーに向け「BACKPACK再リリース」のメールが送られてきました。

    「またプログラムが消えちゃうかも・・・」と心配しながらも、早速「BACKPACK」を使ってみました。

    まず、プログラム画面を開くと右上にBACKPACKアイコンが登場!

    App Inventor2の新機能BACKPACKを使ってみた

    画面間移動を簡単にする拡張MENUプログラムをひとつ作り、そのプログラムをBACKPACKアイコンへドラッグ&ドロップしてみると......

    あぁ、カバンに入った!

    次に、別Screenに移動しBACKPACKアイコンをClickすると、スゲー入ってる!

    App Inventor2の新機能BACKPACKを使ってみた

    そのブロックをドラッグすると、スゲー、スゲー、スゲー、超簡単にScreen間コピーが出来た!

    これは便利 😀

    App Inventor2の新機能BACKPACKを使ってみた

    コピーしたてのブロックは全部エラーだけど、Screen名をコピー先に合わせて変えていくとエラーは消えます!

    App Inventor2の新機能BACKPACKを使ってみた

    後は、カバンに入れたプログラムを消すのってどうするのかな・・ 🙄

    あれこれ探したら見つかりました。
    何もないところを右クリックして表れるショートカットメニューに「BACKPACK」関連機能が追加されてます。
    App Inventor2の新機能BACKPACKを使ってみた

    それと、コピーしたいブロックが1個なら、そのブロックをClickし色が変わった状態で右クリックします。
    すると、選択ブロックだけを「BACKPACK」へ入れる「Add to Backpack」がメニューに表れます。
    App Inventor2の新機能BACKPACKを使ってみた

    わ〜〜〜い、BACKPACKがあればApp Inventor開発がかなりはかどります 😀

    何か売り物になる新規アプリを作ろうかな 🙄
    初回登録料69ドル+毎月5ドルの利用料15ヶ月分を回収できるかも・・・・ 。

  • 【ai】僕のアプリ、Android 6.0.1でも動きました

    OSサポートがAndroid 6で終わってしまったNexus7LTE(2013)。
    その変わりにと、年末Googleストアで6030円値引きセールをしていたNexus5Xを買いました。

    Nexus5xでも動きました

    早速、自作ハンディーターミナルアプリをインストールすると・・・

    問題なく動いた 😀

    さてと、Nexus 5XがあればAndroid 8くらいまではサポートしてくれるかな:roll:

    でも・・・・・・返品しようかな 😕

    写真の僕のNexus 5Xのディスプレイ、黄色くないですか 😮
    ネットで騒ぎになってるNexus 5X 「尿液晶=製造不良で液晶が黄ばんでる」端末に当ってしまったようです。

    [あなたのNexus5Xの画面はどうですか?私の画面は黄色です]

    海外でもYellowish Displayとして騒がれてるみたい。
    [Nexus 5X Owners Reporting Yellowish Display]

    ドコモショップを周りNexus5Xのデモ機を見て回ると、1店目は白色がちゃんと白い。
    でも2店目は、僕の液晶より黄色い!

    端末ごとで液晶の色が違うなんて、一昔前の中国製みたいな品質に幻滅!
    僕の中でNexusシリーズは、チャラい機能が付いていないが、基本性能はきっちり抑えた「生真面目スマホ」だったのに・・・・・

    クーリングオフの間に返品すべきか思案中・・・・・・・
    Nexus5X購入と一緒に、ケースも買ったし、OCNモバイルで新規nanoSIM契約もしたのにどうしたものか・・・:-(

  • [ai]僕のハンディーターミナルアプリで決算棚卸

    毎年12月30日が決算の為の棚卸。
    ハンディーターミナルアプリ「貧社のハンディーターミナル」の1号機導入が2014年12月。
    その年の棚卸に使ったスマートフォンは1台のみで、残りはまだ使えてた元々のハンディーターミナルを使用。

    素人作の出来立てスマホアプリで棚卸をした感想を聞くと酷評ばかり

    ケース数が多いので電卓機能が欲しい
    ラックに上げた商品はバーコードが読めないので商品名検索が欲しい
    倉庫は暗いのでバーコードが読めない
    カメラを使った光学バーコードスキャンを多用するとバッテリーがすぐ無くなる

    それから12ヶ月が経ち、2015年12月30日の棚卸当日。
    今回は業務用ハンディーターミナルが減り3台に、残りはスマートフォンでの棚卸。

    App Inventor開発ハンディーターミナルアプリで決算棚卸

    今日、僕のハンディーターミナルアプリの真価が試される日。
    アプリがスムーズに動かなければ棚卸が終われず決算が出来ない騒ぎにもなりかねません。

    この日の準備としては、
    ・商品名検索機能の追加
    ・入数計算機能の追加
    ・外付け予備バッテリーパックを2個用意
    ・同僚からもらった予備スマホ「AQUOS SI SH-01E」1台。それでも足りない時は僕の私物3台もある。

    App Inventor開発ハンディーターミナルアプリで決算棚卸

    そしてオフコン取込み用FTPサーバを1台追加。
    App Inventor開発ハンディーターミナルアプリで決算棚卸

    いよいよ棚卸開始・・・・

    終始、FTPの2番サーバと3番サーバの使い分けを理解出来ないスタッフが「上げたデータが無い!」と騒いでいたが、それ以外の問題は軽微なもの。
    同僚から買い取ったXperiaのバッテリーがすぐに切れるので、予備機「AQUOS」と交互に使いながら充電。

    結局、業務用ハンディーターミナルをメイン機として使用した2014年とほぼ同じ時刻で棚卸が完了しました。

    ホッと一息 🙂
    これで決算も出来そうです!

    今回の棚卸で分かった問題点:
    ・中古Xperiaのバッテリーパックを買わないと・・・
    ・レーザースキャナーが使えたらもっと便利になるのにな・・・
    ・商品マスター検索が正常に動いていなかった!
    ・商品マスタ複合検索機能があれば、よりスムーズに棚卸出来る。

    棚卸後、商品マスタ検索の不具合は複合検索機能を追加作成し、それと置き換え解決済み。

    2016年に向け、レーザースキャナー対応版アプリ作成をもう一度トライしてみようかな・・・・

    有料App Inventorサービス「AI2LiveComplete」、2015年末で止めるつもりだったけど、もう1年継続してみるか!

    このケチケチ自作ハンディーターミナルシステム構築「貧社のハンディーターミナル」プロジェクト。
    今までにかかった開発費用は約17,000円!(領主書が出ないので僕の自腹 😥 )
    この額で、ほどほどなモノが完成し実践投入済みなので、それなりに成果は上がっていると自負しています。

    AI2LiveComplete初期費用:69ドル(約8,625円)
    AI2LiveComplete月額費用:5ドル×14ヶ月=70ドル(約8,750円)

    それにしてもApp Inventor開発を初めて14ヶ月経ちましたが、Google検索する範囲では、App Inventorで業務用アプリ開発をしている人は、僕以外だれも見つからない。

    勉強してApp Inventor+SQLiteを使いこなせるようになればIT経費をかなり減らせるはずなのに・・・・

    開発が簡単だと言われるMS-Accessプログラムと比べても異次元なほど簡単ですよ!

    逆に言うと、「難しいプログラミングを、ここまで簡単にしてくれてるApp Inventorすら難しい」と感じ挫折する人は、一生プログラミングは作れないと思います。
    それほどApp Inventorは簡単です。

  • [ai]cancelable付きNotifierでマスターインポートが安定

    日々レコード数が増えていく商品マスターのインポートがどうしても安定しない

    「WEBからダウンロードさせる」
    「1ファイル最大500レコードのBULK INSERT」

    この2つの制約の為、妙に複雑になってしまったマスターインポート機能。

    イントラ内に建てたWEBサーバからBULK INSERTファイルを「FOR EACH」で連続処理させるとWEBサーバ側もスマートフォン側も負荷がかかり過ぎるのか、ときどき途中の1,2ファイルがインポート出来ていないんです。

    これまでの対応策は、以下のようなもの
    1:「FOR」を前半部(15ファイルまで)・後半部(16ファイル以降)に分ける
    2:前半終了後、「Timer」が9秒待ちを作り後半部を実行

    でも、WEBサーバのアクセスログを見るとファイル15と16の間の息継ぎは、出来たり、出来なかったり・・・ 🙁
    とっても不安定な動きをするんですが、それでもエラーが半減したのでそのまま採用。

    そして2015年12月、ハンディーターミナルアプリも完成。
    そこそこ安定したので、そろそろこの有料App Inventorサービスを解約するつもりでした。

    そこで、その前にマスターインポートのさらなる安定を目指し「Notifier」に着目。
    と言っても、開発当初に試し挫折したことの再チャレンジなんですけど・・・

    ちなみにApp Inventorには数種類の「Notifier」が用意されています。
    WEBGETしながらbulk importを繰り返すマスターインポートを安定させたい

    ファイル15で「Notifier」メッセージを出すブロックがこれ。
    WEBGETしながらbulk importを繰り返すマスターインポートを安定させたい
    表示させたメッセージがこれ
    WEBGETしながらbulk importを繰り返すマスターインポートを安定させたい

    ファイル16以降は、ボタンを押せば「Notifier:afterChoosing」経由で後半インポートが開始させるはずが・・・・・

    なぜか、それを待たずに動き出してしまう:-o

    前回はここで諦めました。

    今回は、「cancelable付き」を利用してみることに。
    それなりにAppIventor開発の経験を積んだ今考えると、「僕はなぜこれを試さなかったんだろう?」と後悔しています。

    「実行」または「キャンセル」を選ばせるNofiierなんだから、「cancelable無しNofiier」のように勝手に後半を実行するハズが無い!

    で改良したのがこれ
    WEBGETしながらbulk importを繰り返すマスターインポートを安定させたい
    後半のインポート部がこれ
    WEBGETしながらbulk importを繰り返すマスターインポートを安定させたい

    メッセージがこれ
    WEBGETしながらbulk importを繰り返すマスターインポートを安定させたい

    動かしてみると・・・・
    キャー、ばっちりです:lol:
    ボタンを押すまでWEBアクセスが止まってます!
    WEBGETしながらbulk importを繰り返すマスターインポートを安定させたい

    これで、大きな問題がまた1つクリアできました。

    プログラムって面白い。
    有料サービスの解約、あと数か月待ってみようと思います 😀

  • 【ai】最安値スマホを探して右往左往!で、9200円端末購入

    年末商戦前に、営業マンを1名増員!
    彼が使う「なんちゃってハンディーターミナル(=スマートフォン)」が1台必要になりました。

    いつものように、値下がりし今だとAmazonで14400円で買える「Huawei Ascend G620S」をもう一台注文しようかな?

    App Inventor2+SQLiteでハンディーターミナルアプリを動かす最安値スマホを探して

    でもその前に、もっともっと安いスマートフォンが無いかGoogle検索。

    探したのはこんな端末
    「解像度1,280×720以上のディスプレイ、Android4.1以上、メインカメラ800万画素以上」

    で、見つけたのがこれ「ワイモバイルSTREAM S 302HW」
    値段は驚きの爆弾価格、税込9200円!!!!!
    最安値と思ってた「Huawei Ascend G620S」よりもまだ5000円安い!

    App Inventor2+SQLiteでハンディーターミナルアプリを動かす最安値スマホを探して

    4.7インチディスプレイは、自作アプリを初めて実践投入した時使用した機種変前の僕の愛機「Optimus G L-01E」と同サイズで丁度いい。
    OSは、bulkinsertに対応してるSQLiteが添付されてるAndroid 4.1。
    800万画素のカメラは、既に3台導入済みの「Ascend G620S」と同じスペック。

    これなら使えそう・・・・
    でも、1万円以下のスマートフォンって大丈夫なんだろうか?

    ネットの口コミで、
    「YモバイルでDocomo系格安SIMが使えるのか?
    対応する周波数帯が狭いぞ!」
    などのネガティブ投稿を見たが、電話として使う予定は無いので大丈夫かな・・・

    さてどうしよう?
    迷って、迷って、迷い疲れたので、思い切って購入してみました。

    商品が届いたのは注文の3日後。

    「STREAM S 302HW」は4.7インチ「Ascend G620S」は5インチディスプレイ
    App Inventor2+SQLiteでハンディーターミナルアプリを動かす最安値スマホを探して

    「STREAM S 302HW」の見た目はさすが中国企業と言うべきなのかiPhone5sのまんまパクリ!
    下が「STREAM S 302HW」「Ascend G620S」を重ねた写真
    「STREAM S 302HW」の側面はiPhone5sそっくりで、思った以上にカッコいい!

    「Ascend G620S」より一回り小さくて、薄くて、軽い!
    もしかしてこの大きさ、ハンディーターミナルとして丁度いいサイズかも:-D
    App Inventor2+SQLiteでハンディーターミナルアプリを動かす最安値スマホを探して

    さて、初期設定。
    あれ、ここで問題発生:-o
    きっと、これが販売価格が妙に安い最大の問題点では!?

    電源を入れて一番最初に表れる言語選択リストに英語も日本語も無いんです!
    まったく読めないヨーロッパの文字が3種類。

    何にも読めません:-o

    取り合えず、真ん中の言語を選択。
    何度もAndroidスマートフォンの初期設定をしてるので、後は記憶をたよりに「次へ」「次へ」「次へ」:-x

    何とか初期画面を表示させてから「言語設定」メニューで日本語を選択したら、ようやくいつものAndroidになりました:lol:

    もうひとつ気になったのが本体側にAndroidの3つの操作ボタンが無いこと。
    その分、ディスプレイの表示面積が減っちゃいます!
    今度は、操作ボタンが本体側にある10,000円以下のスマホを探してみます 😀
    App Inventor2+SQLiteでハンディーターミナルアプリを動かす最安値スマホを探して

    2日間、「STREAM S 302HW」をハンディーターミナルとして使った営業マンに聞くと、使い勝手にまったく問題ないそうです。
    サイズが小さく、軽くなった分、逆に「Ascend G620S」より良くなったみたい!

    最安モデルと思っていた14400円「Ascend G620S」より5000円も安い「ワイモバイルSTREAM S 302HW」
    もしかして、この機種選定は大ホームランかも・・・・・:lol:

    これから買うスマホは全部「ワイモバイルSTREAM S 302HW」にしちゃおうかな:-P

    ちなみに「Ascend G620S」の液晶修理代は11400円でした。
    この費用、「STREAM S 302HW」新規購入より高額:-o

    ハンディーターミナルは壊れても修理せず、使い捨てにする時代が来たみたいです:-D

  • 【ai】Android 6.0(マシュマロ)でも僕のアプリが動きました

    2015年9月29日に正式発表された最新Android 6.0(マシュマロ)。

    このOSでも僕のアプリは動くのかな 🙄

    それが確かめたくて、1ヶ月以上待ち続けた愛機Nexus7lte(2013)用Android 6.0のリリース。

    ようやく2015年11月10日に公開されたので、早速アップグレード:-D

    やったー、僕のNexus7が最新6.0になった!
    僕のApp Inventor2アプリがAndroid6.0でも動きました

    このマークが見たかったんです!
    僕のApp Inventor2アプリがAndroid6.0でも動きました

    で、テスト!
    僕のアプリを動かすと・・・・

    普通に動きました:-)
    まぁ、App Inventor普及に熱心なAmerkashi社長がいる限り、最新Androidに対応するカスタマイズを続けてくれるはず!
    お願いしね、期待してますよ、社長 😀

    僕のApp Inventor2アプリがAndroid6.0でも動きました

    やっぱ、最新OSを追うには最低1台はNexusを持っとくべきですよね!
    でも、僕のNexus7(2013)のOSアップグレードサービスは今回が最後。

    新しいNexusが欲しいよ!
    Nexus 5Xが欲しんだけど値段が高くて手が出ない・・・・:cry:
    なんで米国で379ドル(=約45000円)のNexus5Xが、日本では59,800円なんだ!
    誰が1万5000円ピンはねしてるんだ 👿

  • 【ai】for eachの途中で一時停止させたいけど・・・・

    数百万円の業務用ハンディーターミナルシステムと僕の2万円スマホで動かす「貧社のハンディーターミナル」アプリを比べ完全に負けていることが2つある。

    それが、”バーコードスキャン”と”商品マスターインポート”。

    スマホカメラを使った光学式バーコードスキャンは、バーコードスキャナーに敵いません。
    カメラスキャンは、薄暗い倉庫ではなかなか読み取れず困っています 🙁

    そしてもうひとつで最大の問題が、2万行近い商品マスターのインポート。
    これが、超不安定!

    今回は、このマスターインポートの改良にチャレンジ!

    AI2LiveComplete(=App Inventor2+SQLite接続機能)での外部データインポート方法は、このサービスをの生みの親Amerkashi社長のブログに書いてます。

    [SQLite Bulk Data Load–Hossein Amerkashi’s Blog]

    ポイントは2つ:
    1)bulk importファイルを作りWEBサーバからダウンロードさせないとインポートしてくれない。
    2)1ファイルは、最大500レコード

    仮にマスターが2万行あるとすると、作る必要のあるbulk importファイルは20000÷500=40ファイル

    これを”for each 1 to 40″でループしながらイントラ内のWEBサーバ(=実際は僕のパソコン)へアクセスしファイルをダウンロード、そしてbulk import。
    それを40回繰り返します。
    その殆どの処理は、数秒の間に同時並行で行われます。

    マスターインポートボタンを押した直後、WEBサーバのアクセスログはこんな感じ。
    App Inventor2+SQLのbulk importを安定させたい

    インポート実行と同時にWEBサーバからのダウンロードがスタート。

    11秒〜14秒の3秒間に30個以上のファイルをダウンロードしようとしています。
    それと並行しスマホフォン側では、1ファイル500レコードのbulk importも実行。

    んんんん・・・、負荷が超高そうな仕組み!
    これが唯一の方法なんですよ。
    毎回、数ファイルx500行のインポートミスが起きます。

    何かいい対策は・・・・:roll:
    “for each 1 to 40″の間にポーズが作れないか?

    で、考えたのがこれ!
    App Inventor2+SQLのbulk importを安定させたい

    最初のfor eachは9ファイルだけで終了。

    そしてTimerが起動!
    9秒後に、後半処理用のfor eachを実行。

    なぜ、9ファイル目で9秒待ちの仕様したのかと言うと、色々テストし一番安定した組合せだったから。
    深い意味はありません 😀

    この改良後、WEBサーバのログがこんな感じに変わりました。
    App Inventor2+SQLのbulk importを安定させたい

    ダウンロードの途中で10秒(=プログラムでは9秒なんですが)の待ちが出来ました。
    不思議なことに9ファイル目ではなく、一時停止したのは22ファイル目!

    何もかもがプログラムの仕様変更と食い違ってますが、知識不足で原因が分かりません:-o

    App Inventor2の「for each」+「Timer」の組み合わせは、かなりいい加減な感じで動いているように思えます 🙄
    3種類の端末で試したところ、スマートフォンの性能の違いでWEBサーバへのアクセスが「for each」と関係無いタイミングで発生してます。

    でも、まぁいいか!
    改良後は、すこし安定した気がします 😀

  • 【ai】[前レコード][次レコード]ボタンを作る

    2週間悩んだ末、清水の舞台から飛び降りるつもりで申し込んだ見知らぬサービス「AI2LiveCompleteクラウド」

    [Inquiry Ai2LiveComplete]


    申込んだ去年10月4日から13ケ月が経ちました:roll:

    初回設定料69ドル+月額利用料5ドル×13ヶ月=134ドル
    PayPalの手数料上乗せレートが1ドル124円くらいだから、これまでに払った日本円は17000円くらい。

    プログラムも完成したのでそろそろ解約しようかな・・・・
    そういえば、解約ってどうするんだ?

    まぁ焦ることも無いか、月額利用料は5ドルだから・・・・・

    取りあえずは12月末日解約を前提で「無くても大丈夫。でも、有ったら良いな」的機能を作り込んで行こう!

    で、早速作り始めたのがMS-Accessならウィザードだけで簡単に作れる[前レコード][次レコード]ボタン。

    これ、App Inventor2+SQLiteだとどう作ればいいのかな?

    App Inventor2+SQLiteアプリに[前レコード][次レコード]ボタンが欲しい
    App Inventor2+SQLiteアプリに[前レコード][次レコード]ボタンが欲しい

    SQLiteでAUTOINCREMENTのPRIMARY KEYってどう取るの:-(

    疑問が湧けば、即Google検索。

    「sqlite next recorde」でググると、すぐに答えが見つかりました!
    さすがGoogle!

    [Select Next and Previous row data SQLite]

    なるほど、以外に簡単!
    LIMIT 1なのね:-D
    App Inventor2+SQLiteアプリに[前レコード][次レコード]ボタンが欲しい

    で、完成したのがこのプログラム。
    前・次レコードを取得するプログラムはすぐに完成。

    困ったのが、そのボタンを表示させる場所が無かったこと。
    悩んだ末に、前・次ボタン表示が必要な時だけ一番表示面積が大きい商品名の横幅を縮めることにしました。
    App Inventor2+SQLiteアプリに[前レコード][次レコード]ボタンが欲しい

    完成したボタンの見た目はこんな感じです。
    なんかAccessっぽいな・・・ 🙂
    App Inventor2+SQLiteアプリに[前レコード][次レコード]ボタンが欲しい

    棚卸画面の、前・次ボタンは完成!

    次に、画面上の部品が多い受注画面への作り込みにチャレンジするも難航 😮

    壊してしまった受注画面の見た目を取り戻すのに数日掛かりました。

  • 【ai】がーん、「Ascend G260S」液晶修理代11,400円

    先月、古くなったハンディーターミナルの1台が壊れ慌てて「Huawei Ascend G260S」を追加購入。
    現在、僕のアプリが動くスマートフォン「貧社のハンディーターミナル」は、Ascend3台、LG1台の計4台。
    評判も上々で、ほっとしています:-)

    やっと落ち着いたと思ったら、がーん:-o
    営業マンが「液晶パネルが割れちゃいました」と無残な姿になったAscendG260Sを持ってきた。
    App Inventor開発:Ascend G260Sのディスプレイ修理代は11400円

    壊れたのは5インチ液晶パネルの右側3センチ幅。
    試しにアプリのリサイズ機能を使いSサイズ(4インチ用)にすると使い難いが全ての機能が使えた。

    腹が立ったので、すぐに修理に出さず「パネルを割った責任を感じろ」とSサイズ表示でそのまま使わせました。

    その間に、同僚からお古のスマホを譲り受けハンディーターミナル用にセットアップ。

    これを代替え機にし、壊れたAscendをファーウェイの修理センターへ郵送。

    3日後、ファーウェイから見積書(PDFファイル)が届きました。
    5,000円の部品代に5,000円の手間賃。
    総額が、税込11448円。
    どのスマホメーカーも、液晶パネル交換はこれぐらいが相場ですよね。

    んんんん・・・、発売当初22000円で買ったスマホの修理代が11400円とは高いな・・・・・
    しかも保証期間内での、保証対象外の修理。
    App Inventor開発:Ascend G260Sのディスプレイ修理代は11400円

    最新の相場を調べると、2度の値下がりでアマゾン価格が14,750円(すげー安い!)
    修理代にプラス3000円で新品が買える!
    修理代が高いのか、それとも「Ascend G260S」が超安いのか・・・・
    きっと後者だと思います。
    App Inventor開発:Ascend G260Sのディスプレイ修理代は11400円

    修理するか、新品を買うか迷いましたが、修理しなくてもキャンセル料4860円取られるので修理してもらいました。
    修理センターへ送り、見積りまでに3日間、そして修理に4日間。
    1週間後に修理の終えたAscendが帰って来ました。

    高いな、高いなと思いながらも、どうなんでしょう?
    専用ハンディーターミナルの修理代はきっと市販品とは比べ物にならないの高額のハズ!

    使い捨て可能な費用で作れるスマホのハンディーターミナルシステムって、やっぱ「有り」ですよね 😀

  • [ai]プログラムを別画面へコピーする新機能「backpack」

    本家MIT App Inventor2に新機能が追加されたそうです。
    その名は「バックパック(=背負い鞄)」

    [Backpack: Copy and Paste Blocks to Different Screens and Projects]


    これは、ブロックプログラムをコピーし別Screenへ挿入できる機能。
    これが有ればApp Inventor開発は格段に楽になるはず

    僕のハンディーターミナルアプリは、まず最初に機能が少ない棚卸画面を作成。
    この画面をコピーし、より多機能な受注画面の基礎としました。

    あの時、「バックパック」が有ったらどんなに便利だっただろう・・・・・

    本家MITから数日遅れで「AI2LiveComplete」にも、「backpack」が移植されました。

    でも、メンバーフォーラムの投稿を読むと・・・

    「わぁ、エラー出まくり!」
    「あれ、プログラムが消えた!」
    みたいな投稿が飛び交っている。

    「バックパック」のバグが解決するまでログインするのを止めとこう・・・・・
    プログラムが消えては困る


    ちなみに、「Screen(=操作画面)」の複製コピーを作るのは、超面倒なんですよ
    受注画面を作り始める時、すご~く苦労して棚卸画面をコピーしました。

    [Screen画面をコピーする方法–形部商事]


    ZIP圧縮されたApp Inventorバックアップファイルを、ZIP解凍しないまま開くことが出来るソフトで中を覗き、
    複製したいScreenの名が付いたファイルを別名コピーし、ZIPを閉じる。

    詳しくは、私にとってApp Inventor界の神様Mr.Hossein Amerkashiのブログに書いてます。

    [AI Screen Manipulation–Hossein Amerkashiブログ]

    AI Screen Manipulation

  • 【ai】すごい、ブロック数は2000個以上あるかも・・・

    情けない、仕様書を書かずに思いつきで機能を増やし続けた素人プログラム。
    あまりにもブロックが多くなり過ぎ、ちょっとした修正をしたくても、どこを直していいかすぐに分からない!(困った)

    受注画面のプログラム、縮小表示しても全体を一度に表示できません。
    App Inventor開発:ブロックが多くなり過ぎ修正箇所がすぐに見つからないよ!

    試しに削除機能を使いブロック数をざっくり数えてみると思った以上に有りそう!

    作ったばかりの棚卸画面の全面リサイズは330個
    App Inventor開発:ブロックが多くなり過ぎ修正箇所がすぐに見つからないよ!

    棚卸画面の胆、ソフト10キーが520個
    App Inventor開発:ブロックが多くなり過ぎ修正箇所がすぐに見つからないよ!

    最も複雑な受注画面のソフト10キーは890個
    App Inventor開発:ブロックが多くなり過ぎ修正箇所がすぐに見つからないよ!

    他にも盛りだくさんな機能があるので、きっとブロック数は2000個以上有りそう・・ 😮

    App Inventor開発を初めて12ヶ月、我ながら頑張ったかも!
    このプログラムのほとんどは晩酌中、酔っぱらいながら作ったのでよく悪酔いしました。

    システム全体で考えるとApp Inventorアプリ以外に、Accessプログラムが2つ、VBSスクリプトが1つ。
    マスタのBulk Insertファイル生成プログラム。
    受注メール自動受信・添付ファイル分離プログラム。
    不要な空改行を取り除くVBSスクリプト。

    「貧社のハンディーターミナルアプリ」システム全体だと3000行くらいのプロジェクトかな。

    記録を見ると2014年10月4日に初回登録料69ドルを支払い、それから毎月5ドルの自動引き落とし。
    この12ヶ月、安価なIT投資でスマホアプリが完成し、いいボケ防止にもなりました 😀

  • 【ai】棚卸画面を全面リサイズ。グリッドデザインで再構築するも失敗

    先日、Google+「App Inventorコミュニティ」で見つけたTipsを参考に、操作画面の一部を自動リサイズさせてみた。
    前回試しに作ったのは横幅3等分と4等分に出来るボタンの自動リサイズ。

    [【App Inventor開発】画面サイズを元に自動リサイズするボタン]

    今度は棚卸画面全体のリサイズに挑戦:-x
    と言うか必要にせまられたので・・・・・・

    理由は違うけど同時期に2台のAndroid端末のディスプレーパネルを割ってしまい修理に出すことに・・・(泣)

    1台は実践投入中の「Huawei Ascend G620S」
    修理の間は、同僚にもらったばかりの4.1インチスマホを代替機として使用。

    その上で、僕の愛機NEXUS7が机から落下!
    がーん、不覚にも液晶を割ってしまった:-o

    僕のNEXUS、大量の棚卸をする時に必要に応じて仕事にも投入する予備機でもあり、一時的に端末1台分が不足中。

    そこで、急遽使っていない4インチディスプレイの古いスマホ(=Android2.3)が使えないか試してみました。

    しかし4インチディスプレーは小さく、操作ボタンの一部がはみ出て操作出来ない!

    ちなみに、僕のハンディーターミナルアプリにはリサイズ機能が有りS、M、Lサイズで画面上の部品サイズを数値固定で最適化しています。
    Lサイズ:7インチ(解像度:1920×1200)
    Mサイズ:5インチ(解像度:1280×720)
    Mサイズ:4.7 インチ(解像度:1280×720)
    Sサイズ:4.1 インチ(解像度:960×540)

    Sサイズより小さい4インチ(解像度:800×480)では、右端の一部と数字キーの1列分が画面の外に!

    そこで決断、棚卸の全画面自動リサイズ機能を作ってみよう!

    まずはパワーポイントに横12×縦20の方眼紙模様を貼り付け画面の部品をグリッドに合わせて配置する。横を12にしたのは3と4の両方で割り切れるから。

    App Inventor開発:ディスプレーサイズで操作画面を全面リサイズ

    この設計図を元に、僕のApp Inventorアプリに全面リサイズ機能を組み込んでいく・・・・
    さて、うまく出来るかな?

    App Inventor開発:ディスプレーサイズで操作画面を全面リサイズ

    がーん、画面が壊れた:-o
    画面が上半分によっている!

    原因を調べると棚卸画面表示と同時にシステムがソフトキーボードを自動表示させてるみたい。
    リサイズプログラムはキーボード表示後に動き出すので、キーボードの高さを引いた分がリサイズプログラムの基本値になる画面の高さとして代入されている!

    困った・・・・・
    Screen.Initialize先頭にHileKeyboardしてもこの不具合は直らない。

    App Inventor開発:ディスプレーサイズで操作画面を全面リサイズ

    困った、困った、困った:-o
    全面リサイズ用の改造したことで、せっかく完成していた従来のリサイズ機能を潰してしまった。
    後には戻れない:-(
    何とか、この方向で完成させなければ・・・・・
    愚かな冒険を始めてしまった 🙁

    追記:

    画面切替時に表示されるキーボードがどうしても止められず正しいディスプレイの表示縦サイズが取得できない。
    今回作ったプログラムは、この縦サイズを基準に各パーツの高さを計算する仕組みなので、この不具合は致命的。

    そこで作戦変更!

    トップ画面から棚卸画面を呼び出す時に、トップ画面の高さを取得し棚卸画面へ持ち込む。棚卸画面のリサイズ機能の基準縦サイズは、そのトップ画面の値を使うようにプログラムを変更しました。

    トップ画面の画面切換えボタンに「Scree.Hight」をjoinで追加
    App Inventor開発:ディスプレーサイズで操作画面を全面リサイズ

    棚卸画面では「get start value」でその値を取得し画面の縦サイズに代入。
    App Inventor開発:ディスプレサイズで操作画面を全面リサイズ

    これでようやく壊れてしまった棚卸画面が元に戻りました(ホッと)

    ただ、Android2.xは4.xより各パーツ周りに出来るマージンが多いのか画面の一部が欠けてしまう。
    そこで、IF文を追加してAndroid2.x(=4インチディスプレイ)の時は全体的に5%ほど小さい目にリサイズさせ棚卸リサイズ機能は無事完成しました 🙂

    ついでに、パーツが少ないトップ画面とシステム管理画面のリサイズ機能も完成。

    あと数画面でリサイズ全面導入が完了なんだけどな・・・・

    でも、もっともプログラムが複雑で部品数も多い受注画面を触るのは怖いな・・・・
    苦労してやっと安定してきたハンディーターミナルアプリの胆画面!

    4インチスマホでは受注はしない前提で、いじるのを止めておこう・・・ 🙁

  • 【ai】画面サイズを元に自動リサイズするボタン

    googleプラス「App Inventorコミュニティ」で面白い投稿がありました。
    ディスプレーサイズを認識し、ボタンを自動リサイズする方法です。

    自作開発アプリ「貧社のハンディーターミナル」、手元にあるAndroid端末のディスプレーサイズが全部違うので、端末ごとに画面上の部品サイズを細かく調整するが超面倒なんです!
    そこで、この投稿がすごく気になりました。

    では早速、サンプルアプリの作成!

    レイアウトは棚卸アプリを想定しこんな感じ
    ・upperBOX:上部部分を囲むボックス
    ・tenkeyBOX:10キーボードを囲むボックス
    ・btnRESIZE:リサイズを実行するボタン
    ・btn数字:数字ボタン

    App Inventor開発:ディスプレーサイズで自動リサイズするボタン

    プログラムブロックがこれ
    投稿されたアイデアはScreenサイズを取得し、それを必要なサイズに割るというもの。

    そこで僕のサンプルでは、Scree縦サイズを2で割って上下レイアウトBOXの高さに代入。
    Screen横サイズを4で割り数字キーの幅に代入。
    Screen縦サイズを2で割り、それを4で割った値を数字キー縦サイズに代入。
    App Inventor開発:ディスプレーサイズで自動リサイズするボタン

    この小さなアプリを僕の5インチスマホで動かすとこんな感じ
    リサイズ前は、すべての部品が上部中央に小さく固まっています。
    App Inventor開発:ディスプレーサイズで自動リサイズするボタン

    さて、リサイズボタンを押すとどうなるかな?
    やったー、見た目ばっちりです 😀

    App Inventor開発:ディスプレーサイズで自動リサイズするボタン

    試しにこのアプリをNexus7で実行すると・・・・
    これも完璧 😀

    App Inventor開発:ディスプレーサイズで自動リサイズするボタン

    これなら使える!
    早速、「貧社のハンディーターミナル」アプリにこのテクニックを導入。

    4.1インチスマホ、5インチスマホともばっちりな仕上がり 😆
    Nexus7はボタンが大きくなり過ぎ使い難くなったので自動リサイズを外しました。

    App Inventor開発:4.1インチディスプレーの新スマホでも綺麗に自動リサイズ

    サンデープログラマーに取って一番重要なのは細かな開発テクニックの情報量。
    周りに聞ける人がいない独学プログラミングは、本の多さ、google検索で見つかる記事の多さで難易度が大きく変わります。

    そう考えるとFileMaker開発は最悪。
    本は少ないし、ネットの情報も皆無。

    MS-Access開発は、本も豊富で、ネットの情報も多数。

    で、App Inventor開発は?
    日本では本も数冊、開発テクニックの情報は皆無。
    でも、英語圏で頑張れば超たくさんの情報がGoogle検索ですぐに見つかります。

    右往左往の末でたどり着いたApp Inventor。
    選んで本当に良かったです!
    と言っても私が利用してるのはその拡張版サービスなんですけど・・・・

  • 【ai】Androidと内蔵SQLiteのバージョン

    自作アプリ「貧社のハンディーターミナル」に得意先マスタをインポートする為にbulk insertファイル生成AccessVBAを作りました。
    このVBAには、2種類のINSERTファイルを作る機能があります。

    ひとつは普通のINSERT文のファイルでAndroid4.2以上用。
    もうひとつは、普通バージョンではbulk import出来ない古いAndroid2.x用のUNIONを使ったSQL文。

    ずっと気になっていたことが1つ分かったかも・・・
    それは、UNIONを使わないでbulk insert出来るのはAndroid4.1以上のようです:-)

    [[AppInventor開発]bulk import別パターン]

    App Inventor開発:2種類のbulk insert

    同僚が最新スマホを使っているのを目撃!
    これは、チャンス😡

    「古いスマホを使ってないなら安く売ってください」と頼んだら無料でくれました:lol:

    譲り受けたのはドコモ「シャープSH-01E」、4.1インチ液晶でOSはAndroid4.0。

    では早速、”なんちゃってハンディーターミナル”作り開始 😎

    端末初期化、アプリインストール、そしてマスターインポート・・・・・

    あれ、Android4なのに普通のbulk import文ではインポート出来ないぞ!
    試しにUNION側を使うと無事インポート成功。

    へぇえええええ・・・・、Android4.0のSQLiteのバージョンはAndroid4.2より2.xに近いかも・・・:-?

    試しにドコモのOSアップグレード情報を調べると・・・

    有った、有った、「シャープSH-01E」のAndroid4.1.2 OSアップグレードが提供されていました。

    で、早速バージョンアップ!

    改めてマスターインポートすると、今度は普通のinsert文でもインポート出来るようになりました。

    ふううう〜ん、プロでは無いので難しいことは分かりません。

    でも、どうやらAndroid2x〜Android4.0とAndroid4.1以上では内蔵SQLiteのバージョンに大きな違いがあるようです!

    Androidと内蔵SQLiteのバージョンの相関関係をググると下の書き込みを発見。

    [Version of SQLite used in Android?]

    これを参考するとAndroid4.0(Ice Cream Sandwich)のSQLiteは3.7.4
    Android4.1(Jelly Bean)のバージョンは3.7.11みたいです。

    大きなバージョンアップが有るのではと思ってたのに、実際にはx.x.4とx.x.11の小さな小さなマイナーアップグレードでした。

    [vb]<b>SQLite 3.8.10.2</b>
    23-6.0-MNC Preview 3
    22-MNC-MNC Preview 2 (still using SDK level 22)

    <b>SQLite 3.8.10</b>
    22-MNC-MNC Preview (still using SDK level 22)

    <b>SQLite 3.8.6</b>
    22-5.1.1-Lollipop

    <b>SQLite 3.8.4.3</b>
    21-5.0-Lollipop

    <b>SQLite 3.7.11</b>
    20-4.4W.2-Android Wear
    19-4.4-KitKat
    18-4.3-Jelly Bean
    17-4.2-Jelly Bean
    16-4.1-Jelly Bean

    <b>SQLite 3.7.4</b>
    15-4.0.3-Ice Cream Sandwich
    14-4.0-Ice Cream Sandwich
    13-3.2-Honeycomb
    12-3.1-Honeycomb
    11-3.0-Honeycomb

    <b>SQLite 3.6.22</b>
    10-2.3.3-Gingerbread
    9-2.3.1-Gingerbread
    8-2.2-Froyo

    <b>SQLite 3.5.9</b>
    7-2.1-Eclair
    4-1.6-Donut
    3-1.5-Cupcake[/vb]

    今回のことでハッキリしたのは”なんちゃってハンディーターミナル”用に手に入れる中古スマホはAndroid4.1以上にするのが無難なようです 🙂

    とにかく、無料スマホ製「貧社のハンディーターミナル」が完成しました 😆

    4.1インチなのでボタンが小さく押しにくいけど、携帯性は抜群!

    さすが日本製、カメラ性能がいいみたいでバーコードスキャンは早い 🙂
    App Inventor開発:新しいスマホで作った貧社のハンディーターミナル

    どうです田舎企業の内製ハンディーターミナル。
    きつと、大手ハンディーターミナル屋に見られて鼻で笑われそうな代物。

    でも、コストパフォーマンスは世界1。
    だって無料なんだもん 😀

  • [ai]ActiveStaterでのメール送信に行数の壁は無かった・・・

    棚卸データGmail送信の不具合が解決!

    [Ai2LiveComplete]

    私のハンディーターミナルアプリ、棚卸データ書出用として2種類のボタンを作ってみました。

    1:[ 送信 ]ボタン
    これは棚卸データをGmail本文に挿入する機能で、レコード数120行未満用

    2:[ 書出 ]ボタン
    こっちはSDカードにテキストファイルとして書き出す機能。

    で、今回解決した不具合は[ 送信 ]ボタンの120行の壁
    と言っても、本当は壁など無かったんですけど・・・・

    [が〜ん、固定長データをメール本文に挿入するのはダメみたい]


    [ 送信 ]ボタンを押すと、ActiveStaterコンポーネントが動きSQLiteに貯めた棚卸データをGmail本文に直接挿入。
    この時、たまにデータ後半が切り捨てられる不具合が発生。

    この不具合、レコード数が120行を超えたテストの時に起きたので、アプリの実務投入の際、120行未満なら[送信]ボタン、超えたら[書出]ボタンを使うように営業マンに指示しました。

    App Inventor:ActiveStaterのメール送信にレコード数の壁は無かった!

    でも数日前、予想外の現象を目撃!

    が〜ん、10行のレコードでも後半切捨が起きてる!

    なんで、なんで、なんで?
    120行以下なら大丈夫だと思ってたのに・・・・

    商品名が「丸美屋 とっとこハム太郎<ビーフ&コーン>」
    切り捨て直前の文字列が「丸美屋 とっとこハム太郎<ビーフ

    App Inventor:ActiveStaterのメール送信にレコード数の壁は無かった!

    ん、ん、ん、んんんん・・・、もしかして不具合の原因が分かったかも

    アンド記号「&」が制御記号として誤認識されてるみたい・・・・

    手がかりがつかめたので、早速検証開始!

    まず、オフコン商品マスタをハンディーターミナルアプリに取り込むためのSQLite用bulk insertファイルを生成するMS-Accessプログラムを修正。

    Replace関数で商品名内の小文字アンド記号を全角アンド記号へ置き換えるようにしました。

    そして、bulk insertファイルを作り直しアプリへインポート。
    App Inventor:ActiveStaterのメール送信にレコード数の壁は無かった!

    さて”<ビーフ&コーン>”の「コーン」の壁を越えられるかな?

    結果がこれ、普通に超えました!
    やったー、やったー、不具合が1つ解消できた!

    まぁ、きっとプロならすぐ気付けるんでしょうね・・・・
    でも、日曜プログラマーにとっては大きな一歩!
    App Inventor:ActiveStaterのメール送信にレコード数の壁は無かった!

    ついでなので実験継続。
    「コーンの壁」が無くなれば、果たして何行までGmailの本文に棚卸データを挿入出来るんだろう?

    と言うことで書出ソースのSQL文を書換え、商品マスタを棚卸データに見立てて書出し実験を継続。
    すると300行付近でまた切り捨てが発生!

    あれ、意外に早い限界なのね・・・・・・😮

    その箇所を調べると今度は半角シャープ#でした!

    なるほど、シャープ#でもActiveStarterは止まっちゃうのね!
    そこでVBAプログラムを再修正。
    半角シャープ記号もReplace関数で全角変換。

    そして再実験すると、8400行までGmail本文へ挿入することができました。
    それを超えると、Gmailが即効クラッシュ!

    きっと、ごれが仕様限界みたい。

    やれやれ、困っていた不具合が1つ解決!
    誰も聞ける人が居なく、作り方を書いた本も無いApp Inventor2の実務アプリ開発。
    これからも一人で右往左往しながら完成度を上げて行かねば。

  • [ai]「ARC Welder」でAndroidアプリをパソコンで動かしてみる

    [Google、AndroidアプリをChromeで動かすARC Welder公開。手持ちのAPKを変換]


    4月3日、Googleさんが「ARC Welder」を公開しました。
    ARCは、「App Runtime for Chrome」のこと。
    Windows、Mac、そしてChromebookパソコンでAndroidアプリを動かせる夢のソフト😆

    面白そうなので早速、Windows8パソコンに入れ、試しに自作ハンディーターミナルアプリ「なんちゃってハンディ」を動かしてみました。

    セットアップの手順は、まずchromeブラウザーからchromeウェブストアページへ行き「ARC Welder」をインストール。

    「Welder」の意味を調べると「溶接」。
    このアプリのロゴは、ドロイド君が溶接マスクをしてる絵なんですね!
    ARC Welderで自作アプリをパソコンで動かしてみる

    インストール後、chromeアプリに「ARC Welder」アイコンが追加されます。
    ARC Welderで自作アプリをパソコンで動かしてみる

    起動し、最初に表示されるウェルカムページがこれ
    ARC Welderで自作アプリをパソコンで動かしてみる

    [choose]ボタンを押すと作業フォルダを聞かれます。
    そこで、それっぽいフォルダを作成。
    ARC Welderで自作アプリをパソコンで動かしてみる

    次に現れるのがAndroidアプリ追加画面。
    2度目からの実行ではWelcomeページはスキップされ、このページが初期画面になります。
    (+)プラスボタンを押し、手持ちのAPKファイル(Androidアプリインストーラー)を選択。
    私の場合は、「なんちゃってハンディーターミナルアプリ」のAPKファイルを指定。
    ARC Welderで自作アプリをパソコンで動かしてみる

    砂時計がくるくる回転。
    AndroidアプリをChromeアプリに変換してるのかな・・・・・
    1分ほど待って現れたのが下の画面
    アプリ画面は「横向きか縦向きか?」
    「タブレット用かスマホ用か全画面表示か?」
    「コピペ情報をパソコンを共有するか?」を選択。

    これで準備完了。

    [Launch App]ボタンを押せばAndroidアプリが動くはず!
    ARC Welderで自作アプリをパソコンで動かしてみる

    さすが私が作った単純なアプリ。
    複雑な機能を何も持たないので問題無く動きました!
    SQLiteへの追加、削除もOK
    ARC Welderで自作アプリをパソコンで動かしてみる

    当たり前ですがカメラを使ったバーコードスキャンはエラー
    ARC Welderで自作アプリをパソコンで動かしてみる

    app inventor共有コンポーネント「shere」でmailto指定の棚卸書出し機能を動かすとWindows8のメールソフト一覧が出てきました。
    ARC Welderで自作アプリをパソコンで動かしてみる

    Thunderbirdを選ぶと、新規メール作成画面が現れプログラム通り棚卸レコードを本文に挿入。
    メール送信機能も正常に使えそう:-)
    ARC Welderで自作アプリをパソコンで動かしてみる

    次に、棚卸明細CSVファイル書出し機能を実行すると、これも問題無し 😀

    そのテキストファイルを「shere」で共有をかける部分はAndroid端末とは動作が違う。
    Androidだと共有可能アプリの一覧が表示されますが、Windows上だとExploreが開くだけ。
    後は、自分でFTPなりメールなりしてくれと言うことなんでしょう。

    アプリ終了後、再起動はどうするんだろうと思ったら、chromeアプリに僕の「2838HTdroid」アイコンが追加されてました:-)
    ARC Welderで自作アプリをパソコンで動かしてみる

    ちょっと使っただけですが、とてもいい感じでAndroidアプリがパソコンで動きます!

    開発が簡単なApp Inventorで開発し、安価なChromebookで動かす!
    専門スタッフを雇えない田舎の中小企業でも、簡単・安価・便利なシステムを自社開発出来そうな気がします 😀

  • 【ai】Android5.0.2でも僕のアプリが動きました

    2014年11月、知人のNexus5にAndroid5.0が降ってきました。

    「いいな最新OS。早くリリースされないかな僕が持ってるNexus7LET(2013)用・・・」

    そう言えば、App Inventorで作った僕のハンディーターミナルアプリってAndroid5.xで動くんだろうか?

    Nexus7LTE(2013)用Android5は、当初12月初旬だったリリース日が12月下旬に延び、2015年1月初旬になり、そして1月下旬に・・・・・

    待ちくたびれ、どうでもよくなってきた2月3日11:00にアップデートのお知らせが表示。

    ようやく、Android5.0.2が僕のNexus7に降ってきました!

    僕のNEXUS7に、Android5.0.2が降ってきた

    早速、アップグレード!

    さてな、Android5.0.2になったNexus7でハンディーターミナルアプリは動くかな?

    やった、動いた!
    あっけないほど普通に動きました

    僕のハンディーターミナルアプリ、無事Android5.0.2でも動きました

    動くことが確認できたので、これから発売される2015年モデルのスマホを安心してハンディーターミナル用として購入出来ます 

    [Ai2LiveComplete]
  • [ai]bluetoothバーコードスキャナー対応版が作れない・・・・

    12月決算の形部商事。
    年末棚卸しにも有料App Inventorサービス「AI2LiveComplete」で作った自作ハンディーターミナルアプリを使いました。

    [Ai2LiveComplete]


    結果は

    んんん〜、評判が悪い

    3ヶ月作り込んだ操作画面はそれなりに使いやすいと自信を持ってます。
    でも、仕様上どうしても改良出来ないのがカメラを使ったバーコードスキャン。

    読み取りが遅い。
    薄暗い倉庫では特に読まない!
    フラッシュを光らすと、白く飛んでもっと読めない!
    湾曲したバーコードは読めない!缶詰はほとんどダメ!
    バッテリーが半日で7割減った!
    などなど・・・・・

    やれやれ「ファーウェイAscend G620S」(22,000円)で、20万円の業務用ハンディーターミナル並の操作性を実現するのは無理なのかな・・・

    やっぱ、Bluetoothバーコードスキャナ(30,000円くらい)が必要みたいです。

    そこで、ハンディーターミナルアプリをBluetoothバーコードスキャナー対応にすべくプログラム変更開始。
    2週間ほど右往左往し、その結果は

    が〜ん、作れませんでした

    bluetoothキーボード接続時の仕様を調べるため簡易版受注画面を新規作成
    App Inventorアプリをbluetoothバーコードスキャナ対応に変更

    さて、プログラム。
    MS-AccessVBAなら「AfterUpdate」イベントを使うよな・・・・・
    でも、App Inventorにはそれが無い!

    有るのは「GotFocus」と「LostFocus」だけ

    App Inventorアプリをbluetoothバーコードスキャナ対応に変更

    まず、困ったのがLostFocusイベントの発生方法!
    手持ちBluetoothバーコードスキャナ「unitech MS910」の改行記号を何に変えてもカーソルが次のテキストボックスへ移動しない!

    CR,LF,CR+LF,TAB・・・・・・、
    AccessでもFileMakerでも改行記号CRでカーソルが次項目へ移動するんだけどな・・・・

    このまま数日、毎晩自宅で右往左往。

    いろいろ試し、ようやくイベントの使い方が分かりました 🙂
    AI2LiveCompleteの仕様かな?
    改行記号CRを送るとカーソルは移動しないけどLostFocusイベントは発生してるみたい!

    使い方がやっとわかり、完成したのがこのプログラム
    App Inventorアプリをbluetoothバーコードスキャナ対応に変更

    「やったー、出来た!」と実機で走らすと・・・
    おおおお〜、無事動きました 🙂
    App Inventorアプリをbluetoothバーコードスキャナ対応に変更

    と喜ぶのもつかの間、次の難題が・・・・・・・

    スキャナーの読み取り情報がtextboxに入力されるには2つの条件が揃った時だけ!
    1:テキストボックスにカーソルが有り
    2:その上でAndroidキーボードが表示されている時

    全操作を、組込10キーで操作する僕のアプリ。
    Androidソフトキーボードが表示させると操作キーが隠れてしまう!
    App Inventorアプリをbluetoothバーコードスキャナ対応に変更

    その上、bluetoothスキャナー接続中、Androidキーボードはこんな感じに縮みます。
    App Inventorアプリをbluetoothバーコードスキャナ対応に変更

    出たり・消えたり・縮んだり・伸びたり!
    bluetooth接続状態で、Androidソフトキーボードの表示がコロコロ変わり、それに伴い操作画面に使える縦サイズが変わっちゃう!
    bluetoothスキャナー対応版アプリを作るのは一筋縄ではいかないよ!

    夜な夜な、App Inventorと格闘!

    この仕様を前提で、ジャストインタイムにAndroidキーボードの非表示・縮小表示・拡大表示をコントロールするプログラムを作りました。

    「やったー、出来たぞ〜」と夜空に向かって吠えて戻ってくると・・・

    あれ、何かが変だ

    入力途中のデータが消えている!

    動きを観察すると、スキャナーがスリープモードになりbluetooth接続が切断された時、App Inventor製入力画面はリフレッシュ(=初期化)され、入力途中の画面上の値が全部消えちゃう!

    試しに、他のアプリ(メモ・GMAIL)で観察すると、この操作画面の初期化現象は起きない!

    なんで?

    Androidの本物アプリの操作画面とApp Inventor製操作画面って似てるようで別モノなのかも

    困った!
    袋小路モードです。

    受注作業、棚卸作業中、数分使わなければbluetooth接続が切れ、その度ごとに指定納品日・得意先コード・受注数を入れ直す必要があるアプリって不便過ぎ・・・・

    今のアプリはカメラでのバーコードスキャン専用アプリとして使い続けるしかないみたい

    僕にJAVAが書けるオツムがあればな・・・・・