マイネット・システム設計事務所は、Webシステムを中心に、分析・企画・コンサルティング・運用業務などを行うITの総合設計事務所です。


業務システム専用ブラウザ(Biz/Browser)

Biz/Browser イメージ
Biz/Browser(オープンストリーム社のHPより抜粋)

タブレット業務アプリ作成の問題点

iPadやAndroid端末で業務アプリを作成する場合にはいくつかの悩ましい問題があります。
企業にとっては結構重大な決断が必要なはずです。あまり考慮せずに簡単に踏み込むと情報システム部門は火の車に陥ることもあります。 問題点をいくつかあげてみますと、

  • 1. ネイティブアプリ=開発者の技術習得問題
  • 2. HTML5=開発効率の問題
  • 3. iPadライセンスの問題
  • 4. 頻繁なバージョンアップ

などが考えられます。個別にみていきましょう。

1. ネイティブアプリ=開発者の技術習得問題

iPad,Androidともにネイティブアプリケーションを開発するためには、新たな開発環境に習熟しなければなりません。それで内製にはコストがかかるので外注するとなると、まだまだ希少な 開発者(特に企業の業務のわかる開発者)を集めることはとても困難です。将来のメンテもままなりません。
できれば既存の開発者が既存のWindows環境で既存のWindowsのアプリの開発のごとくストレスなく開発したいものです。ネイティブアプリの開発は業務システムには技術と保守の2つの面でリスクを伴うでしょう。

2. HTML5=開発効率の問題

ネイティブアプリほどではなく、HTML5での開発の出来る人材は既存の開発者の中にもいて確保は容易かもしれません。 しかし、企業ユーザーの要求に見合う開発効率と操作性を両立させることはまだまだ容易ではないようです。そもそもWebブラウザーは 閲覧がメインの目的ですので日本の企業で必要な業務システムの操作性を得るのは大変高度な開発を要求されることが多いものです。
そのために開発効率は低下し思わぬコスト増にみまわれる可能性があるのです。(エンドユーザー向けのアプリであれば問題ないですが...)

3. iPadライセンスの問題

Androidではあまり問題ではないですが、iPadのネイティブアプリで開発した場合厄介なのはライセンスの問題です。
いちいちApple様にお伺いをたてないとアプリを配布することができません。コスト面でも手数の面でも大変ですね。

4. 頻繁なバージョンアップ

iPadやAndroidでは頻繁にOSのバージョンアップがあります。その都度アプリケーション改修作業が発生する(少なくとも検証する必要がある)可能性があります。 OSのバージョンアップを持ってるユーザーに禁止する方法もいい方法がなく、結果システム部門はバージョンアップ恐怖症に陥るかもしれません。

解決策 =Biz/Browser AI

弊社では、前述の4つの問題点を解決する手段として、オープンストリーム社のBiz/Browser AIをお薦めします。
それでは前述の4つの問題点をBiz/Browser AIでは、どのように解決するのでしょうか?

1. ネイティブアプリ=開発者の技術習得問題

Biz/Browser 入力画面サンプル1 Biz/Browserの 入力画面サンプル1

この画面は見た通り、Windowsライクな入力画面です。Biz/Designerという無償開発ツールですぐに作れます。
Biz/DesignerでVisual Studoioと同じようにテキストやラベルなどの部品を画面で配置します。するとソースコードが自動的に作られます(下記ソース参照)ので、あとはその部品の挙動をコーディングで追加すればOKです。 ここでは画面のサイズ以外にはiPadやAndroidの知識をほとんど必要としません。

これはWindowsのアプリでも同じなのです。 つまりBiz/Browserはマルチプラットフォーム対応なのです。
このソースを見れば普通のプログラマーならすぐに作れるようになると思うはずです。 それも、「WindowsでもAndroidでもiPadでもOKです!」と自信をもって言えるのです。 何せソースコードは同じなのですから...(ただし一部iPad,Androidでは使えない機能があります。)

    Title = "社員情報入力";
    Form frmInput {
	    X = 0;
	    Y = 0;
	    Width = 650;
	    Height = 378;
	    BgColor = $CCCCCC;
	
	    Record message{
		    String m[];
	    }
	
	    Record flg{
		    Number f[10] = 0;
	    }	
	
	    ImageLabel iml_title {
		    X &= (^.Width - Width) / 2;
		    Y = 11;
		    Width = 612;
		    Height = 50;
		    BgColor = $9999FF;
		    Border = $TRUE;
		    BorderStyle = $SUNKEN;
		    BoxStyle = $ROUND;
 		    Value = "  社員情報入力";
		    FontSize = 30;
		    VerticalAlign = $CENTER;
		    HorizontalAlign = $CENTER;
	    }

    中略... 
	
	    Label l_simei {
		    X = 15;
		    Y = 105;
		    Width = 98;
		    Height = 25;
		    BgColor = $FFFFCC;
		    Border = $TRUE;
		    BorderStyle = $ETCHED;
		    Value = "氏名";
		    HorizontalAlign = $CENTER;
		    VerticalAlign = $CENTER;
		    FontSize = 12;
	    }
	    TextBox t_simei {
		    X = 113;
		    Y = 105;
		    Width = 189;
		    Height = 25;
		    IMEMode = $DHIRA;
		    NextTabKey = $ENTER;
		    FontSize = 12;
	    }
		
    中略... 

	    ComboBox cb_syozoku {
		    X = 113;
		    Y = 164;
		    Width = 204;
		    Height = 166;
		    NextTabKey = $ENTER;
		    IMEMode = $CLOSE;
		    AutoTab = $TRUE;
		    FontSize = 12;
		    ComboItem itm_syozoku[];
		    itm_syozoku << csv(.value){
			    "100 経営管理本部"
			    "101 営業本部"
			    "102 プロダクト事業部"
			    "103 ソリューション事業部"
			    "104 コンサルティング事業部"
		    };
		    Value = itm_syozoku[1].Value; /* 初期表示を"営業本部" */
	    }
	
	    ImageButton imb_touroku {
		    X = 549;
		    Y = 327;
		    Width = 84;
		    Height = 37;
		    HorizontalAlign = $CENTER;
		    VerticalAlign = $CENTER;
		    Title = "登録";
		    BgColor = $9999FF;
		    FgColor = 17;
		    FontKind = $STD;
		    FontSize = 12;
		    FontFace = $BOLD;
		
		    Function OnTouch( e ) {
			    if( MessageBox("登録してよろしいですか?",
                    "登録確認",$OkCancel + $IconQuestion) == OkSelected) 
                    {
				    //.Delete();
			    }
		    }
	    }
	    GroupBox GroupBox2 {
		    X = 16;
		    Y = 195;
		    Width = 622;
		    Height = 120;
		    BorderStyle = $ETCHED;
		    BoxStyle = $ROUND;
		    Title = "連絡先";
		    FontSize = 12;
		    FgColor = $3333FF;
	    }

	    OptionButton opb_seibetu {
		    X = 371;
		    Y = 105;
		    Width = 92;
		    Height = 25;
		    Scroll = $NONE;
		    Border = $TRUE;
		    BgColor = 18;
		    LayoutSpacing = 4;
		    FontSize = 12;
		    NextTabKey = $ENTER;
		    OptionItem itm_seibetsu []{
			    Height = 20;
			    Width = 42;
			    LayoutMargin = 2;
			    Layout = $HORIZONTAL;
			    LayoutSpacing = 2;
		    }
		    itm_seibetsu << csv(.title,.value){
			    "男",0,
			    "女",1
		    };
	    }
    }	
    if ( !$DESIGNTIME ) {
	    frmInput.t_simei.SetIMECompObject(frmInput.t_simeifurigana,$DKANA);	
    }
                
入力画面サンプル1のソース(一部)

ちなみに、このコードの大半は画面デザイン部分からの自動生成。実際に書いているのはOnTouch(Windowsアプリでいうonclickと同等)イベントなどの動作部分だけ。 これはVisual Studioとほぼ同じですね。

ここでは、Webサーバーとの通信部分が書かれていませんが、これも簡単なパラメータの受け渡しでhttpプロトコルを使ってCSVデータ、もしくはXMLデータをWebサーバーから受け取る 事で簡単に実現できます。あたかもWebアプリのように動きます。

また、Webサーバーに仕事を頼まなくても最新バージョンではローカルだけでもデータのハンドリングができるようになっています。

2. HTML5=開発効率の問題

前述の画面を見れば、HTML5の開発効率の問題もBiz/Browserであれば消し飛んでしまいますね。

前の画面は少しWindowsライク過ぎたので、タブレットらしい画面もBiz/Browser AIで簡単に実現可能 であることを次の画面で確認してください。

Biz/Browser タブレット画面例
Biz/Browser タブレット画面例

3. iPadライセンスの問題

Biz/Designerで作ったアプリはcrsという拡張子を持ったスクリプトファイルで、Biz/Browser AIがそれを読んで解釈実行します。
つまり、iPadからみれば「Biz/Browser AI」だけがiPadアプリで、crsファイルはWebブラウザ(例えばサファリ)のHTMLファイルと同じ位置づけになります。サーバーに配置するのですから当然ですね。 というわけで、「Biz/Browser AI」以外ライセンス問題は発生しません。また、オープンストリーム社が「Biz/Browser AI」のライセンス登録をしていますので、ユーザーは一切ライセンス問題から 解放されます。

4. 頻繁なバージョンアップ

この問題も唯一「Biz/Browser AI」だけが対応を迫れるだけで、ユーザーの作ったcrsファイルには影響ありません。 少々遅れるかもしれませんが、オープンストリーム社の対応を待ってバージョンアップをすることになります。

Biz/Browserのご相談

弊社は、長年Biz/Browserに携わって来ました。 またオープンストリーム社の代理店でもあります。
製品のご購入、サポートまた開発の請負など、広範囲で対応可能です。
Biz/Browserのことにつきましては、何なりとお申し付けください。特に広島以西のお客様お待ちしております!

ご相談はまずお問い合わせフォーム、メールもしくはお電話でどうぞ。

メール
sales@mynet-inc.co.jp
電話番号
092-481-6676
「担当 小松」まで
ご参考
 

マイネット・システム設計事務所は、Webシステムを中心に、分析・企画・コンサルティング・運用業務などを行うITの総合設計事務所です。