タグ: ハンディーターミナル

  • [ai]AppyBuilderPersonal(ローカルPCインストール版)

    ハンディーターミナルアプリ開発の為に加入したSqliteが使える拡張機能てんこ盛り有料版App Inventerサービス『AppyBuilder』が2017年11月にオープンソース化され完全無料に!

    そして、その数日後に公開されたのが
    『AppyBuilder Personal version』

    パソコンにインストール出来るローカル版AppyBuilder。

    有料会員が思ったように集まらずビジネスとして止めてしまったAppyBuilderサービス。
    いつサーバがCloseされるか分からない状態でとても不安!

    苦労して作ったハンディーターミナルアプリの改造が出来なくなる日がいつか来るはず....

    その保険になると思ってるのがこのローカルバージョン。

    AppyBuilderPersonalダウンロード———-github

    AppyBuilderコミュニティで発表された『AppyBuilder Personal version』
    20171224AppyBuilderPersonalアナウンス

    ダウンロードファイルをZIP解凍すると
    20171224AppyBuilderPersonalファイル


    設定方法はAmerkashi社長のHOWTOビデオで勉強


    AppyBuilderサーバを起動するとDOS窓が開きます。
    最終行に『Dev App Server is now running』のメッセージ
    20171224AppyBuilderPersonalサーバ

    ビルドサーバを起動するともう一つDOS窓が開きます。
    最終行に『Server running』のメッセージ
    20171224AppyBuilderPersonal Build Server

    これで準備完了のハズ!

    ローカルで動いてるはずのApp ServerのURL
    http://localhost:8888
    にアクセスすると無事開きました!
    ページ上部には、予告されていた社長の収入になる広告が表示されてます。
    社長の為に、広告をたくさんクリック!
    220171224AppyBuilderPersonalWEB

    続いてハンディーターミナルアプリのバックアップファイルをインポート

    http://localhost:8888で開いた僕のハンディーターミナルアプリのデザイン画面
    220171224AppyBuilderPersonalWEB


    Personal versionでビルドしたapkファイルをスマホにインストールすると無事動きました!

    私のアプリはSilverプラン(=旧Android用サーバ)で開発しています。

    今回のパーソナルバージョンはGOLDプラン(=最新android用サーバ)がベースなのでインポートするとデザインが崩れ一部の機能が動きません。
    でも、9割以上の機能が生きてるのでゼロからの再開発より全然楽。

    SilverからGOLDへの変換に失敗した機能を直し、好きになれないGOLDプランのサイケデリック風(=マテリアルデザイン)をシックなルックスに手直しすればサーバCLOSEの心配がないローカルPCで動かせる開発環境が手に入ります!

    20171224AppyBuilderPersonalAPK


    Amerkashi社長、Personal versionありがとう!
    あと数ヶ月は月額利用料払いますからね!

  • [ai]久~しぶりに自作ハンディターミナルアプリを改造

    素人でも簡単にAndroidスマホ用データベースアプリが作れるのが「AppyBuilder」。

    積み木感覚でプログラムブロックを並べるビジュアル系開発言語「App Inventor」に、独自拡張機能をてんこ盛り追加した有料版サービスが「AppyBuilder」です。

    [AppyBuilder]
    [本家MIT App Inventor(オリジナルサービス)]

    Google検索「App Inventor+SQLite」でたまたま見つけ「AppyBuilder」会員になって3年目かな・・・

    [Using SQLite component with ListPicker–Hossein Amerkashi’s Blog]

    これが実際のSQLプログラムがこれ。恐ろしい程、簡単にデータベースを操れます!

    「RunQuery」ブロックにテキストボックス挿し込んでSQL文を書くだけ!
    ド素人の私でも、すらすらプログラミング出来るんです!




    我が社のハンディーターミナルシステムは、このサービスでアプリを自作。
    2,3万円の格安スマホで動かすケチケチシステムなんです。

    11台のハンディーターミナルシステム構築で、
    掛けた費用は約30万円以下!
    安いでしょ?

    で今やってるのが、この秋導入予定で開発中の新基幹業務システム向けのアプリ改造!

    お中元・お盆商戦が終り時間が出来たので久々に開発再開

    新機能は3つ、「返品入力」「プライスカードデータ収集」そして「出荷検品」

    その中の「返品入力」「プライスカード」がほぼ完成!
    棚卸画面に入力項目を追加。
    3モード(棚卸・返品・プライスカード)切替リストボックで、入力項目の表示・非表示とカーソル移動順をコントロール。

    エクスポートする固定長ファイルのファイル名とデータレイアウトも切り替えます。

    せっかくなのでアイコンも一新!
    新しいのは今風のシンプルデザイン。
    自作ハンディーターミナルの新アイコン


    ハンディアプリの新旧アイコンとAppyBuilderのライブテスト用コンパニオンアプリアイコン(Gold Plan(マテリアルデザイン用)+Silver Plan)を並べてみました。
    < 自作ハンディーターミナルの新アイコン


    追加した画面は、分かりやすいように色分けしています。
    綺麗でしょ!
    自作ハンディーターミナル機能拡張中


    最後は、1番難易度が高い「出荷検品」画面
    元からある棚卸画面のカスタマイズでは無く、新規画面を追加しての作り込みが必要。
    んんん~、面倒くさそう・・・・

    9月中の深夜と週末は、この画面開発に追われそうです。

  • [ai]自作ハンディーターミナルアプリに新機能

    歩きながら、食事しながら、運転しながら、伝票入力しながら、検品しながら、ピッキングしながら、常に頭の中は次期基幹業務システムのことばかり!

    あれは必須、これは予算次第で必要、それは不要、今のこの画面をこう変えたい、次はこんな新機能が必須、予算次第で有ると便利なこんな機能・・・・・

    事前打合せ「要件定義」で必要なことを全て語りつくさねばと、常に思いついたことをメモに取り、パワーポイントにまとめシステム屋さんへメールするのが最近の日課。

    重要な機能を要件定義で伝え忘れると、数十万円の追加料金を払うか、諦めないといけないシビアな話し合い!(胃が痛い)

    書いて書いて書いて

    そんな中、僕のハンディーターミナルアプリにも新機能が必要になりました。
    そこで、ひさーしぶりにAppBuilder(有料App Inventor+SQLite)開発。

    [ Appy Builder ]

    ハンディーターミナルアプリ完成以後、使う用事が無く月額利用料だけを1年近く払ってるAppBuilderへ久々にログイン!

    作り始めたのは棚卸画面の機能拡張。

    具体的には、棚卸画面に入力モード切替スピナーを追加、「プライスカードデータ収集」と「返品入力」機能を開発中。

    まずはルックスから!
    操作中のモードが分かりやすくなるよう色分けしました。

    20170323棚卸画面モード切替プログラム開発中


    これがオリジナル棚卸画面(緑色)
    3自作ハンディーターミナルアプリに新機能


    追加機能1:得意先返品(ダークレッド)
    3自作ハンディーターミナルアプリに新機能


    追加機能2:プライスカードデータ収集(水色)
    3自作ハンディーターミナルアプリに新機能


    週末プログラミングで、中身も5割完成。

    それにしても、久しぶりに使いましたが、ヤッパAppBuilder(有料App Inventor+SQLite)は最強!
    モバイル用SQLシステム作るならAppBuilderを超えるイージー開発環境は無いです!

    断言できます。

    [ Appy Builder ]
  • [ai]あぁ、棚卸データがFTP出来ない!

    明日12月30日は年度末の棚卸し。

    急遽、この日の為に僕のハンディーターミナルアプリ「貧社のハンディーターミナル」の改造を始めました。

    [AppBuilder]

    半年前、有料App Inventorサービス「AppBuilder」がバージョンアップ!
    その際、追加されたFTPコンポーネントを受注業務画面に続き、棚卸画面にも導入。

    棚卸固定長ファイルをオフコンへ送信する為のアプリを選択する「ActiveStateコンポーネント」を、FTPコンポーネントに差し替えれば動くはず(簡単簡単

    卸ファイルを送信するためのActiveState

     

     

     

     

     

     

     
     
    これでボタン一発、イントラFTPサーバへ棚卸データをUPLOAD出来るはずが・・・・

    ガ~ン、何度やってもUPLOADしない!

    FTPサーバのログを見ると、ログインはしてるのになぜかアップロードが出来ない!

    僕のハンディーターミナルアプリ、FTPは出来てるのにUPLOADしないのは何故?

     

     

     

     

     

     

     

    なんで?なんで?なんで?
    期末棚卸が出来ないと大事だ

    必死に、FTPが出来る受注画面と出来ない棚卸画面を並べて比較。
    でも、違いがどうしても分からない

    で最後の手段、プログラムコピー機能「backpack」経由で受注画面のFTPプログラム一式を棚卸画面へコピーし調整したら・・・・・

    やった、動いた!
    UPLOAD出来た!
    これで期末棚卸が出来るよ

    明日の棚卸に目処がたち心に余裕が出来たのか、その瞬間不具合の原因が分かりました!

    ファイル指定名が原因でした

    ActiveStateコンポーネントのファイル指定:file://sdcard/katabe/TANA001.txt

    FTPコンポーネントのファイル指定:/katabe/TANA001.txt

  • [ai]有料AppInventor「AppyBuilder」に新サービス!

    [MIT App Inventor]

    SQLiteが使えたので「AppyBuilder」に加入し今年で4年目かな・・・
    独自拡張機能てんこ盛りの有料サービス「AppBuilder」に新サービスが追加されました。

    [有料サービス:AppyBuilder]

    ハンディーターミナルアプリが安定したので、最近ほとんど読まなくなったメンバー向けメルマガに目を通すと・・・

    新サービスが始まってる!

    その名は「GOLD PLAN」(月額8ドル)

    このサービスの目玉機能は3つかな!
    後は、今の「SILVER PLAN」とほぼ同じ。

    新サービスの目玉機能
    1:マテリアルデザイン対応
    2:本家MITプログラムのインポート
    3:本家MIT App Inventor Extensions対応 

    大注目が、MIT App Inventor Extensionsに対応したこと!

    Extensionは、1年前からメンバー内で話題になってた本家MITの機能!
    社長が、満を持してAppyBuilderに移植してくれました!

    App Inventor Extensionとは、本家MIT App Inventorに拡張機能を追加出来る仕組み。

    [MIT App Inventor Extensions]

    元はプログラミングの教育用で簡単なものしか作れない本家MIT App Inventor。
    このサービスに、欲しい機能(=Extension)を追加していけば本格的なAndroidアプリ開発環境に変身できちゃう!

    まぁ、必要なExtensionが有ればの話ですが・・・
    または、自分で作るか!

    「超簡単App InventorでSQLiteが使えたらな・・・」で加入した「AppyBuilder」

    無料MIT App Inventor用に、有志が無料SQLite Extensionを作ってくれれば有料サービスを使わなくてもスマホ用データベースアプリが作れるようになる!

    そうなったら社長、困るだろうな・・・・

    AppyBuilderGOLDPlan

    試しにネットで拾ったMIT App Inventor Extensionsを2,3個「AppyBuilder」に追加すると全部エラーで動かない!
    Extensionsの不具合なのか、それとも出来たてホヤホヤ「AppyBuilder」Extensions機能が悪いのか・・・・・・

    やっぱ、ネイティブ機能として最初からいろいろ付いてる「AppyBuilder」の方が圧倒的に安定してる。

    まだしばらくは有料サービス「AppyBuilder」を使い続けるか!

  • [vba]AccessVBAからWinSCPを使ったFTP

    [AppyBuilder] [MIT App Inventor]

    AppyBuilder(=App Inventor+独自拡張機能)で作った自作Androidハンディーターミナルアプリ「貧社のハンディーターミナル」にBIGな新機能を追加

    それは、不安定な1万レコード強のオフコンマスターのbulk importを安定させる新プログラム。

    昨日は、その実戦投入準備のために右往左往

    最後の最後で手こずったのがVBAから実行するコマンドラインFTPの方法。

    WindowsXP、Windows7端末で動いてる方法が、なぜか僕のWindows10では動かない

    upload開始と表示されたまま先に進まない。

    Google検索「Windows ftp.exe upload 止まる」で原因を調べると、

    ftp.exeがActiveモードしが対応していなく、ファイアウォールでそのポートを開ければ動く

    そうなの・・・LAN内のFTPサーバなのに

    各PCに入れてるファイアウォールプログラムの調整が必要なら超面倒

    そこで作戦変更。

    googleでPASVモードが使える別のコマンドラインFTPクライアントを検索。

    で見つけたのが「winSCP」

    [winSCP]

    winSCP関連の情報サイトを読みながら右往左往。
    で、やっと設定方法が分かりました。

    [vb title=”設定ファイル:winscr2ftp.script”] open ftp://ftpuser:ftppasswd@192.168.1.99 put "C:\katabe\MASTER.zip" /MASTER.zip close exit [/vb] [vb title=”実行コマンド”] c:\Program~2\WinSCP\winSCP.exe /script=c:\katabe\winscr2ftp.script [/vb]

    このコマンドを、マスタbulk imprtファイル生成VBAから実行させたら・・・

    動いた

    これで全ての準備が出来ました!

    私のハンディーターミナルアプリ、最後に残った2つの問題の1つがこれで解決!

    早速、今日から実践投入だ

    追記:
    まず、4台のスマホでアプリをアップグレード。
    3台は問題無く動いたが、なぜか1台だけbulk importとは関係ないエラーが出ました!

    「beep.wavが再生出来ない!」

    この問題のスマホは、確かAndroid4.2。
    このAndroidだけWAVEファイルに未対応・・・・・

    以前のアプリでは、ネットで拾ったかん高いMP3ビープ音でした。
    今回は、低くこもった音が欲しかったので自分で机を叩いて自作したWAVEファイル。

    元々、この端末は私のLG製の愛機。
    これで開発をし、実戦投入もこれが1号機。

    愛着のあるスマホの為に、ひと作業するか
    WAVEファイル→MP3ファイル変換ソフト検索中・・・

  • 【vba】7za.exeで複数ファイルを1個のzipファイル

    App Inventor製、自作ハンディーターミナルアプリ用に作った新マスタデータインポート機能の為に、bulk importデータ生成MS-Access VBAプログラム側も改良。

    [zip利用の新マスターインポート機能]

    40個のファイルを1個のZIPファイルに出来るコマンドラインプログラムが無いかGoogle検索。

    で見つかったのが7za
    [インストールしないでzipや7z圧縮ファイルを作る方法]

    ワイルドカードが使えるのでどんなにファイルがたくさん有ってもコマンド1行で実行出来る。

    MS-Access VBAからでも簡単に実行出来そうです。

    これをハンディーターミナルアプリ用bulk importファイル作成Access VBAに組み込めば新マスターインポート機能用ファイルも作れそう!

    [vb title=”使い方としては、こんな感じかな?”] c:\Temp>7za a master.zip .\master\*.txt

    7-Zip (A) 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
    Scanning

    Creating archive master.zip

    Compressing m1.txt
    Compressing m2.txt
    Compressing m3.txt

    Everything is Ok
    [/vb] [vb title=”このコマンドを、実際のbulk importファイル生成プログラムに実装”] Shell ("cmd.exe /K c:\katabe\7za.exe a c:\katabe\MASTER.zip c:\katabe\master\AImaster*.txt")
    [/vb]

    動いた!

    追記:
    実際のVBAプログラムへ追加すると、あっさりZIPファイルが出来ました!
    で、せっかくなので出来たZIPファイルをFTPサーバへputさせられないかと試行錯誤・・・
    でも、うまく動きませんでした。
    現在、Windows10のFTPコマンドの勉強中・・・・・

    [Windows7で動いてるこの仕組み、なぜか10では途中で止まる!]

  • 【ai】zip利用の新マスターインポート機能

    もともとは、「App Inventor SQLite」でGoogle検索してて、たどり着いたのがAmerkashi社長のブログ。

    [Hossein Amerkashi’s Blog(社長ブログ)]

    最初はマニアが集まる有料サークル的集まり「Ai2LiveComplete」でしたが、去年、それっぽい名前を付け一般人向けのサービスに衣替えしました。

    それが、拡張機能満載の有料App Inventorサービス「AppyBuilder」

    [Appy Builder]

    私はこのメンバーになって3年かな・・・・

    作ったアプリは1つだけ、それがハンディーターミナルアプリ
    貧社のハンディーターミナル

    そして今日、念願だった新機能が完成したんです

    自分で言うのも何ですが、「この機能、スゲー良い

     

    まず僕のアプリには大きな欠点が2つ有ります。

    その1つが、オフコンのマスターデータのbulk importが常に不安定なこと

    その原因は、開発環境の2つの仕様にあります。

    (1)SQLiteへのbulk importは、1ファイル最大500レコード。
    (2)bulk importファイルは、WEBからのダウンロードのみ

    この仕様の上で作ったインポートプログラムがこれ

    このプログラム、超「not simple」!

    200,000行近いレコードを500行ずつに分け、ダウンロードしながらインポート!
    それを40回近くLOOPで繰返す!

    途中、WEBサーバの反応が遅かったり、スマホの書き込みが遅れたら、そのファイルのインポートは失敗する。

    それを避けるために必要なのが、時間稼ぎ。

    そこでLOOPを3分割し、LOOPごとにダイアログボックスを表示。

    わざとユーザーに数秒待ってからOKボタンを押してもらう。

    ね、変な仕様でしょ!

    「ハンディーターミナル」アプリにzip圧縮を使った新マスターインポート機能を作ってみました

    今日完成したのがこれ!

    「AppyBuilder」は約半年ごとにバージョンアップし、社長が本家MITには無い新コンポーネントを追加してくれます。

    で、この夏のバージョンアップで追加された2つのコンポーネントを使ったのが新インポートプログラム。

    利用したのは、「FTPコンポーネント」のFtp.Download機能。

    そして「Fileコンポーネント」のFile.List機能、File.UNZIP機能、File.Read機能

    40個近いbulk importファイルを1個のZIPファイルにしFTPサーバに置く。

    新プログラムでは、ZIPダウンロード、UNZIP、ファイル名のLIST化、そしてそのLISTを元にLOOP。

    FileRead機能でSQL文を読み取りINSERTを実行する。

    bulkファイルは、スマホ上に保存済みなので処理は1瞬!

    1分以上かかっているインポートが、新プログラムだと2,3秒で、しかも確実に完了します。

    ありがとう社長

    「ハンディーターミナル」アプリにzip圧縮を使った新マスターインポート機能を作ってみました

    さてと、これだけではシステムとしては不完全。

    次に、bulk importファイル生成MS-Access VBAプログラムに、ZIP機能を加えなければ・・・・・・・

    ZIP圧縮のコマンドラインプログラムを探さねば

    追記:
    新旧インポートプログラムを実データで実行速度を比較してみました。
    旧プログラムは、得意先マスタ12秒+商品マスタ1分55秒。合計で2分6秒。
    新プログラムは、2マスター一括インポートで9秒でした!
    すご~い改良結果でした

  • [ai]マスターインポートの安定化計画(WEB→zip+FTP)

    入会4年目の拡張機能満載の有料App Inventor2サービス「AppyBuilder」の定期アップグレードで、追加されたのがFTPとFileコンポーネント。

    [AppyBuilder]
    [Hossein Amerkashi’s Blog(Hossein社長ブログ)]

    この2つのコンポーネントを組み合わせれば、もしかしてあの問題が解決出来るかも・・ 🙄

    AppyBuilderで自作したハンディーターミナルアプリの欠点の一つが、オフコンの1万行オーバーの商品マスターインポート処理。

    これがとっても不安定で頻繁にエラーが起きるんです:cry:

    その理由は下の2つのシステム的制約!
    「SQLiteのbulk importは1ファイル最大500レコード」
    「bulk importファイルは、WEBコンポーネント経由でのみ読み込み可能」

    今動いてるアプリの仕様は、WEBコンポーネントで500行のbulk importファイルをダウンロードしながらinsert文を実行!
    これを1万数百行分、FOR文で繰り返しています。

    すると、その途中「ダウンロードが追いつかない」「INSERTが追いつかない」などの問題が発生しエラーが起きます!

    CPU処理速度が早く、ローカルディスクへのI/O速度が早い高級スマホならエラーは起こりにくいが、2万円前後の安い中国製スマホだと処理速度不足でエラーが起きちゃうんです:-o

    その上で、無線LANの電波の強さでもエラーになるし、マスターデータ公開用WEBサーバを動かすパソコンの処理速度が遅くてもエラーになる。
    今、WEBサーバとして使えるのが社内最強である僕のCore i5パソコンだけ!
    一世代前のパソコンだと、アプリ側で「WEBサーバが返事をしない」エラーが頻発します。

    全てが最速で無ければ安定しない「マスターbulk import機能」を何とかしなければ・・・・・🙄

    で、考えました 😎

    賢い「AppyBuilder」のFileコンポーネントにはZIPファイルの解凍機能も有る!

    ならば、こんなことは出来ないか?

    1:30ファイルのbulk importファイルを、まず1個のZIPファイルに圧縮。
    2:FTPコンポーネントで、そのZIPファイルをAndroid端末内にダウンロード。
    3:Fileコンポーネントのunzip機能で、30個のbulk importファイルを指定フォルダーに解凍。
    4:FORでファイルの数だけループしながら、SQLiteコンポーネントでマスターデータをbulk import。

    で、作ってみたのがこのプロトタイプ。
    マスターインポートの安定化(webget→ftp)

    操作画面で「getFTP」ボタンを押すと、FTPコンポーネントでZIPファイルを端末にダウンロード。
    マスターインポートの安定化(webget→ftp)

    その次に「unZIP」ボタンでZIP解凍させると、2つのbulk importファイルで表れました!
    マスターインポートの安定化(webget→ftp)

    「execBULKinsert」ボタンを押すと、解凍されたbulk importファイルを読み込みSQLを実行!
    マスターインポートの安定化(webget→ftp)

    確認の為に、「SQLselect」ボタンでデータベース内を確認すると、無事に4行(=1ファイル2レコード☓2ファイル分)のレコードが登録出来てました!
    マスターインポートの安定化(webget→ftp)

    これだけ確認できれば、ZIP+FTP版マスターインポートが作れる目処が立ちました。

    この仕組みが完成すれば、今は出来ない社外でのマスターインポートも出来るようになる!

    さてと、後は僕が実行に移すだけか・・・・・・ 🙄

    やれやれ、またあの巨大化(=肥大化)したアプリに追加の機能を加えることになるのね!
    僕は果たして無事に作り込めるんだろうか?
    いじり過ぎてアプリ自体を壊してしまわないか心配でなんです。

  • [ai]ハンディーターミナルアプリにFTP機能を追加

    4,5ヶ月ぐらいの周期かな?
    定期的にバージョンアップされ拡張機能が追加される有料版App Inventorサービス「AppyBuilder」

    [AppyBuilder]
    [Hossein Amerkashi’s Blog(Hossein社長ブログ)]


    先月の追加されたのが、待ちに待ってたFTPクライアント機能
    早速、僕のアプリに追加!

    今まではハンディーターミナルアプリに貯めた受注データを固定長ファイル化。
    それをFTPクライアントソフト「anyFTP」でオフコンへアップロードしてました。

    この機能追加で、ハンディーアプリ単体でアップロード出来るようになりました。

    今回作ったのがブロックがこれ
    ネイティブでFTP機能が追加され本当に便利!
    数個のブロックの組み合わせだけで、FTPクライアント機能がネイティブで動くようになりました!
    ありがとうHossein社長!

    僕のハンディーターミナルアプリにFTP機能を実装!

    FTPでエラーが起きた時のブロックがこれ
    僕のハンディーターミナルアプリにFTP機能を実装!

    ワザとエラーさせるとこんなメッセージが出ます。
    僕のハンディーターミナルアプリにFTP機能を実装!

    苦労したメール添付送信+送信先アドレス自動挿入は諦め、従来通りShareコンポーネントでGmailを選択。

    [ActiveStarterで添付ファイル付きメール送信出来ないのね!]

    送信先メールアドレスは、本文に書いてユーザーに知らせることにしました。
    僕のハンディーターミナルアプリにFTP機能を実装!

    3年前、google検索「App Inventor SQLite」でたまたま見つけたこのサービス!
    やっぱ、すげー便利です:lol:

    Hossein社長が頑張ってるのに、このサービスが日本で無名なのが残念!
    と言うか、本国アメリカでも無名みたい:cry:

    日本の中小企業経営者で、IT投資節約の為にモバイルプログラムを独学したいなら、このサービス「AppyBuilder」はオススメです!

    超難しいモバイルアプリ開発がほどほど簡単に出来ますよ。(あくまで程々ですけど)

    難解なJavaプログラミングがこのサービスを使えば1/100の簡単さでアプリがスイスイ作れます。

    その証拠が、アホな私でも総ブロックス2000個以上のアプリ「貧社のハンディーターミナル」を完成させ、この2年半、実業務で使えています。

    言い方を変えると、「ここまで敷居を下げてくれたプログラム開発環境ですらアプリが作れない人は、アプリ自作を目指すべきでないIT音痴」だと断言出来るくらい開発が分かりやすくて楽です。

  • 【ai】AppyBuilderがバージョンアップ、FTPがネイティブ機能に!

    1ヶ月8ドルの独自多機能版有料App Inventorサービス「AppyBuilder(旧名AiLiveComplete)」に加入してもうすぐ2.5年かな・・・・

    [AppyBuilder(旧名AiLiveComplete)]
    [Hossein Amerkashi’s Blog(社長のブログ)]

    2年前に、目的のハンディーターミナルアプリ「貧社のハンディーターミナル」は完成。
    その後は、たまに見つかるバグ修正と「あればより便利になるかも」的追加機能を加えるくらいで、ほとんど何もしないまま月額利用料だけを払い続けています。
    (経費として認めてくれないまま僕個人のクレジットカードから・・ 😥 )

    その「AppyBuilder」が2016年7月11日に何度目かのバージョンアップ。
    今回、私が欲しかったFTPコンポーネントが追加されたので早速テスト 😀

    FTPは見えないコンポーネント
    AppyBuilderの新機能FTPを試す

    プログラムブロックがこれ!
    AppyBuilderの新機能FTPを試す

    私のハンディーターミナルアプリ、受注データ(固定長ファイル)をオフコンへ転送するのにイントラに建てたFTPサーバを使っています。

    今の仕様は、書き出した固定長ファイルをActivityStarterで起動させた外部FTPクライアントアプリ「AndFTP」でアップロード。

    [AndFTP]

    FTPコンポーネントが有れば、この部分の操作をよりスムーズに作り込めるはず!

    で、早速AppyBuilderの勉強再開:-x
    久しぶりに、AppyBuilderサーバへログイン!

    出来たばかりの機能、マニュアルもなく、教えてくれる人もいない!
    只々、いじって覚えるのがAppyBuilder流!

    と言っても使うブロックが数個しかなので全通りの組み合わせを試しても1時間も掛かりません。

    で、まず完成したのがこれ
    FTPサーバ上のファイル名一覧をテキストボックスに挿入する機能。
    AppyBuilderの新機能FTPを試す

    次が本番用のプロトタイプ
    FTPサーバへファイルをアップロードするプログラム。
    失敗時は、エラーメッセージも表示させます。

    AppyBuilderの新機能FTPを試す

    アップロードを成功するとテキストボックスに”成功”と出ます。
    AppyBuilderの新機能FTPを試す

    ワザとエラーさせるとテキストボックスにエラーメッセージが挿入されます。
    AppyBuilderの新機能FTPを試す

    プログラム方法が分かったので、いよいよ実際のアプリへ移植せねば!
    今週末は、超久しぶりに「貧社のハンディーターミナル」を本格的にいじってみるか・・・(ちょっと不安 🙄 )

    複雑すぎて作った本人もよく分からなくなった「ハンディーターミナル」アプリ!
    さて、うまくFTPコンポーネントを組み込むことが出来るかな?

    それに、このプロトプログラムの他に、FTPサーバ・ユーザー名・パスワードをSQLiteに登録、参照、FTPプログラムへの自動挿入の機能も考えねば・・・・(やっぱアプリ開発は胃が痛い!)

    それにしても「AppyBuilder」はとっても便利で面白い
    ネット検索する限り、ブログでこのサービスを日本語で語っているのは僕だけです!
    こんな良いサービス、なんで他の日本人は使わないんだろうか?

    不思議です。
    まぁ、飛び込む時のハードルは、すげー高かったですけど・・・

    最後に、このFTPコンポーネントに不満が1つ:-x
    ポートを変える機能が無い!
    FTPサーバはデフォルトポート21で動いているのが前提。
    port21以外で動くサーバには使えません 🙁

    メンバー向けフォーラムでの社長の投稿を読んでると、直接は言ってないが
    「なんで今さら大昔のFTPを欲しがるの?もっと便利なのがあるぞ!」
    とFTPを軽視していると感じました。

    IT投資を頻繁にできない日本の零細企業では、大昔のIT技術がまだまだ現役なんだと米国会社の社長に知てってもらいたいですね 😮

  • [ai]Google地図表示機能の追加

    さて、有料サービス月額利用料5ドルの拡張版App Inventor2「AiLiveComplete」の会員を続けるべきか、それとも止めるべきかを検討中。

    と言うか、今はサービス名が代わり「H.Appy Builder」。
    月額利用料は一方的に値上げされ8ドルなんです:-o
    (※元々のメンバーは納得出来ませんが、月額利用料値上げの代わりに新規メンバーの初期費用は安く設定されてます。)

    [AppyBuilder]

    僕がこのサービスに2年加入し唯一作ったアプリは1つだけ、「App Inventor2+SQLite」で動くブロック2000個から出来てる「ハンディーターミナルアプリ:貧社のハンディーターミナル」

    今は、このソフトのメンテナンスの為に、何もしていないまま会員(=僕個人のクレジットカードからの引落)を続けています。

    この状況で、一方的な利用料の値上げは納得出来ないな・・・・・ 😮

    取り合えず何か有意義な追加機能を付けてみよう 🙄

    参考にしたのは社長のブログのこのページ
    [How to develop location based Android App]

    得意先検索のボタンを押すと、検索対象の得意先住所の文字列でGoogleマップ検索し地図を表示する機能。

    元々有ったキーワード得意先検索のプログラム。
    住所文字列からGoogleマップを表示

    Hossein社長のブログを参考にしたGoogleマップ検索機能
    住所文字列からGoogleマップを表示

    操作画面はこんな感じ
    住所文字列からGoogleマップを表示

    [地図]ボタンでGoogleMap検索が実行され検索場所が地図に表示されました!
    住所文字列からGoogleマップを表示

    超簡単ブロックベースプログラムで地図検索が完成しました。

    このページで色々文句言ってますが「H.Appy Builder」はすごくイイサービスです 😆

    以前より月額利用料は高く成りましたが、初回登録料が値下げされたので新規申込メンバーにとっては非常に魅力的なサービスだと思います 😀

    なお、このサービスですらスマホアプリ開発が出来ない人は、アプリ開発はあなたには絶対無理。
    それくらい超簡単に高機能Androidアプリが作れます 😀

    だって、アホな僕でも実戦投入済みのアプリが作れました!

  • [ai]「abs <H」エラーでアプリが動かない(泣)久しぶりのApacheの設定だ・・

    ここ半年、とっても安定していた僕のハンディーターミナルアプリから突然見知らぬエラーが出た!

    しかも、そのエラーはこのアプリで一番不安定なマスターインポート機能から 😮

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

    WEBサーバ上に置いた1ファイル500レコードのbulk importファイルにしたマスターデータを1万数千レコード分、FORブロックでダウンロード&インポートを繰り返す、この開発環境の仕様上絶対に安定しない部分。

    困ったな・・・、直せない不具合だったらどうしよう:cry:

    abs<Hエラーでアプリが動かないよ

    さてと、原因は何なの?

    そうだ、3月28日にメジャーバージョンアップが行われた!
    いつもバージョンアップする度に仕様が変わり何かしらエラーが出る。
    きっと今回も、それが原因かな・・・・

    とにかく早く直さないと新規登録された商品情報をスマホアプリへインポートできないよ 😮

    で、久しぶりにサーバへログイン。

    ヤバイぞ!
    アプリ安定後数ヶ月、ソースを見直す必要が無かったので仕様を忘れてしまったかも・・・・

    確か、このブロック群がマスターインポートのはず!
    エラーを吐いてるのはABSブロック(=絶対値を返す)だから探していくと1箇所だけ使ってました。

    ここがエラー箇所みたい:roll:

    [計算ブロック:abs−−−ソフトウェア技術ドキュメントを勝手に翻訳]

    それはインポート処理の初っ端、bulk importファイルが何個あるかを書いた目次ファイルの1行に書かれた数字を取得する部分。

    でも、なぜ?
    昨日までは何の問題もなく動いてたのに・・・・

    absブロックの仕様変更?!

    試しにこの処理を無効化し、代わりに読み込んテキストデータをテキストボックスへ書き出してみるとビックリ:-o

    が〜〜〜〜ん、WEBサーバのエラーコード404ページではないか!

    ※エラーコード404=インターネットのホームページが開けないとき表示されるエラーメッセージ

    「abs<H」エラーの原因って、404エラーページのHTMLだったのね!

    abs<Hエラーでアプリが動かないよ

    URLは正しいはずなのに、なぜ404エラーなの?

    で、調べてやっと原因が分かりました。
    WEBサーバソフトが正常に動いていない 😮

    [AN HTTPD]

    「AN HTTPD」は、2006年に開発が終わった小さな無料WEBサーバソフト
    SSLもCGIもSSIも・・・複雑なものは何も要らない、ただプレーンテキストファイルをHTTPでダウンロードさせるだけのシンプルで軽いWEBサーバとして「AN HTTPD」を選択しました。

    このソフトが、僕のWindows10(64ビット)マシンで突然、正常に動かない!
    起動の度にドキュメントルートフォルダとMIME設定が初期化され、僕のスマホアプリが正しくファイルをダウンロード出来なくなってる!

    昨日当てた更新プログラムが原因なのかな・・・・・:roll:

    abs<Hエラーでアプリが動かないよ

    さてと、では今度はどのWEBサーバソフトを使おうかな?
    シンプルで軽そうな奴はどれだ・・・・

    あれ、もうすぐ21時!
    腹も減ったし、眠いので、そろそろ家に帰りたい!

    面倒なので探すのを止めて、ド定番「Apache(64ビット版)」をインストールすることにしました。

    バージョンアップの度に多機能になるApache。
    設定に自信が無いので、取り合えずドキュメントルートとMIMEだけ設定。

    abs<Hエラーでアプリが動かないよ

    無事に起動!
    僕のアプリも正常にマスタファイルをダウンロード出来てる 🙂

    さすが最新64ビット版Apache、「AN HTTPD」より体感速度も早いように感じる。

    イントラ内のWEBサーバだから設定はこれでいいか!
    設定箇所が多すぎてマニュアルを読む気がしない。

    時間も遅いし腹もへったしな・・:-(

    プロのハンディーターミナル屋に頼めば数百万円。
    それをケチって自作し運用するって大変だな・・・・ 🙄

  • [ai]9200円「STREAM S 302HW」は文鎮に・・・・

    下の記事で、日本製中古スマホ「SH-06E」が安売りされてると知り東京の友人に2台買って送ってもらいました。

    [IGZO液晶4.8インチスマホが特価販売中、最安14,800円から(2016/2/6)–impress]
    [アキバの中古スマホ(14,800円)でハンディーターミナル—katabe]
    そのスマホを”なんちゃってハンディーターミナル”化すべくセットアップしていると話しかけられた。
    声を掛けてきたのは脅威の低価格9200円で買った「Yモバイル! Huawei STREAM S 302HW」を使ってる営業マン。

    [最安値スマホを探して右往左往!で、9200円端末購入—katabe]
    彼が言うには「STREAM S」のカメラの性能が低過ぎて、うす暗いところではバーコードスキャンが出来ず、オートフォーカスも遅いのでスムースに受注作業が出来ないそうな・・・・

    ならば試しにセットアップ出来立てのシャープ「AQUOS SH-06E青色」と交換。

    1日営業活動をしてもらい感想を聞くと、
    「10倍早くなりました!こっちが良い」
    と言われたのでそのまま「AQUOS SH-06E青色」を彼のスマホ(=ハンディーターミナル)に!

    App Inventor2開発:9200円の文鎮

    さてと・・・・ハンディーターミナルとしてダメ出しされた「STREAM S」君の行き場が無くなった!
    「脅威の低価格9200円ハンディーターミナル」のハズが一転、脅威の高価格9200円の文鎮に!

    こんな所に「ケチの銭失い」が潜んでいてなんて・・・・・

    ちなみに、私のハンディーターミナルアプリには大きな問題点が2つのあります。
    1つは、光学式バーコードリーダーとして使う搭載カメラの性能でバーコードスキャン速度が大きく変わること。
    もうひとつが、AI2Liveの仕様による1ファイルMAX500レコードのバルクインポート。
    マスターレコード1万超をFORで繰返すインポート機能が常に不安定 😥

    使用中のスマホをランク分けすると・・・
    “Aランクスマホ(カメラOK、インポート安定度98%)
    Galaxy J(僕の私物)
    AQUOS SH-06E(秋葉の掘出物)

    “Bランクスマホ(カメラはOK、インポート安定度70%)
    Ascend G620S(安いSIMフリー)

    “Cランク(カメラもインポートも遅い)
    STREAM S 302HW(ネット検索で最安値)

    で、試しにQuadrant Standard Editionで各スマホのベンチマークを取ってみました。
    その結果がこれ
    App Inventor2開発:使ってるスマホをベンチマークテスト

    CPU早い順
    101,083(Galaxy J)
    44,643(Ascend G620S)
    35,617(SH-06E)
    16,101(STREAM S)

    メモリー早い順
    17,943(Galaxy J)
    10,625(SH-06E)
    4,108(Ascend G620S)
    3,943(STREAM S)

    I/O早い順
    6,378(GalaxyJ)
    4,835(SH-06E)
    8,461(Ascend G620S)
    9,933(STREAM S)

    私が知りたいのは:roll:
    「Ascend G620SのマスターインポートがAQUOS SH-06Eの2倍以上時間がかかる原因」

    ボトルネックは何なのか?

    ■まずCPU性能:

    ハンディーターミナルアプリとは、バーコードスキャンしたJANコードでマスター検索し商品名を表示。
    後は数量、単価を入力してSQLiteにINSERTするだけの単純なプログラム。

    ハンディーターミナルアプリにCPU性能はあまり関係ないみたい!
    9200円「STREAM S」レベルのCPU性能でも入力作業自体はサクサク動きます。

    ■I/O早い順の結果が不思議:

    使用感では一番遅い「STREAM S」の数値が一番高い 😳
    そして2番目に高いのが、2番目に遅い「Ascend G620S」

    I/O値って低い方がベターなの?
    I/O値って実際のところ何の数字なんだろう?
    不思議・・・・

    計測方法を調べようとQuadrant Standard Editionの開発元Aurora SoftworksのWEBサイトを探しましたが、会社が無くなったみたいで閉鎖されてました。

    ■最後にメモリーテスト

    どうやらバルクインポートで重要なのはメモリー性能みたいです。
    テストの結果が、そのままバルクインポートの体感速度と比例してます。

    これからハンディーターミナル用のスマートフォンを買う時は、カメラがほどほどに良く、そしてQuadrant Standard Editionでメモリー性能が10,000を超えてるモデルか調べてから買うようにしたいと思います。

    それにしても意地悪な経理に、9200円がハンディーターミナルとしては使いにくいとバレたら「9200円返せ」って言われそう 😮

  • 【ai】firebaseでクラウドデータベースの実験

    [ Inquiry AiLiveComplete ]

    僕が加入している有料会員制 App Inventor2ディストリビューション「AI2LiveComplete」は、5,6ヶ月に一度アップグレードされます。
    2014年10月に加入してから17ヶ月で3度のバージョンアップが有りました。

    このアップグレード、まるでプログラムオタクの社長が「これ便利そうだから新機能として追加しとくね!」みたいなオタク的サービス精神いっぱいの機能追加がメイン!(+バグフィクス)

    この3度目のバージョンアップがつい先日、2016年2月11日にリリースされました。
    今回の目玉機能が「実験的Firebase対応」

    メンバー向けメールには、「テスト導入。将来どうなるかは分からない」と書かれています!

    ところでFirebaseって何?

    調べてみると、この会社はgoogleに買収され、今はgoogleの一部としてサービスが提供されているようです!

    [ Firebase ]

    サービス内容は、リアルタイム同期型クラウドデータベースらしい・・・・・

    何だ、それ?

    チャットシステム開発とかに使うと便利なサービスみたいですね!
    Aさんがチャットへ投稿をすると、リアルタイムでBさんのアプリ画面にその発言が表示されるようなアプリが簡単に作れるそうです。

    さてこの技術、形部商事の仕事に活かす方法は無いのかな?

    例えば、外回りの営業マンが得意先で受注を1件入力すると、リアルタイムで会社のモニターにその明細内容が表示されるような仕組みが作れないか・・・・

    で、取り合えずテストアプリを作ってみました。

    元データ側スマートフォンのSQLiteに3レコードを用意。
    そのデータをFor nextでループしながらFirebase.StoreValueイベントでクラウドデータベースへアップロード。

    それと同時に受信側スマートフォンで、Firebase.DataChangedイベントが発生し、データが降ってくるので、それを受信。

    その明細を受信側SQLiteへinsertできれば受注作業リアルタイムモニターアプリ開発も夢では無くなる!

    テストアプリの外見がこれ
    App Inventor2開発:Firebaseでクラウドデータベースとリアルタイム同期

    試行錯誤して作ったプログラムがこれ!
    関係ないですが気付きました!?
    「バックパック」アイコンがいつの間にか変わっています!
    以前のアイコンはとてもダサかったが、新しいのも、どうなんでしょ?
    ダサいかも・・・・
    App Inventor2開発:Firebaseでクラウドデータベースとリアルタイム同期

    スマホでアプリを起動させるとこんな感じ
    App Inventor2開発:Firebaseでクラウドデータベースとリアルタイム同期

    いよいよ実行!
    まずは1台のスマホでクラウドへの書き出しから受信までを行う!

    「Firebase追加」ボタンを押すと・・・・・

    ローカルSQLiteのデータが無事Firebaseに保存されました。
    App Inventor2開発:Firebaseでクラウドデータベースとリアルタイム同期

    オリジナルテーブルの3レコードをFirebaseへ書き込む。
    と同時にクローンテーブルにその3行が書き込まれ画面中央のリストボックスに表示されました!(大成功)
    App Inventor2開発:Firebaseでクラウドデータベースとリアルタイム同期

    次に、2台のスマホを並べて実験。
    右側スマホからオリジナルテーブルに保存されている3レコードをFirebaseへ書き込む。
    と同時に、左側スマホのクローンテーブルにそのデータが保存されました!

    App Inventor2開発:Firebaseでクラウドデータベースとリアルタイム同期

    これはスゴイ!
    ほとんど時差なく2台のスマホ内のSQLiteデータが同期された!

    ならば、受信側スマホでアプリを停止させた状態で、元データ側スマホでデータアップロードするとどうなるの?

    App Inventor2開発:Firebaseでクラウドデータベースとリアルタイム同期

    テスト結果は、最終レコードだけが同期されました!
    これは同じTAGで書き込みしてるのが原因だよな・・・・・

    1万行のマスタを同期させるには、1万個のTAG付きで書き出す必要があるのかな?
    1万個のTAGを作ってしまったら、初期化はどうすればいいのかな?

    勉強を初めて3日目!
    リアルタイム同期型クラウドデータベースは、まだまだ謎だらけ!
    もっともっと勉強しなければ・・・・ 🙄

    でも、ネット探しても馬鹿でもわかるような優しい解説してくれてるページが無いんです、Firebaseに関しては!?
    素人には難しすぎる領域かも・・・・・ 😮

  • [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]僕のハンディーターミナルアプリで決算棚卸

    毎年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