Magic xpa モバイルアプリ事例のご紹介
所在地:新潟県新潟市Magicの日本へのリリース当初からMagicを全面的に活用し主に新潟県内のユーザー様へシステムの開発・導入支援・サポートを行っています。
http://www.sofusys.co.jp/
Facebook www.facebook.com/sofusys
本日ご紹介したいこと
Magic xpa モバイルアプリの事例を通して
• お客様との取り組み
• 開発したアプリ
• 取り組んでどうだったか
• オフライン化してみました
• モバイルRIAを始めるには・・・
株式会社サンコー殿
ガス栓・フレキ管用継手・強化ガスホース用金具の製造および販売
社員数:105名
主な取引先
東京ガス株式会社 日立金属株式会社光陽産業株式会社 株式会社ニシヤマ
ISO9001認証登録
本社:埼玉県川口市 工場:新潟県上越市
生産管理システム/品質管理システム/販売管理システム
WindowsServer2008+
MSSQLServer2008
20数年前からMagicを採用生産管理・品質管理・販売管理等、
共に構築させていただいてきました。
発注管理システム
外注管理システム
作業管理票発行
月次棚卸システム
作業票システム製品在庫管理
中間不良管理
製品不良管理
原価管理システム
全数検査システム
計測システム
検査計画実績
仕入管理システム
消耗品発注システム
Magic Engine
Windows OS
埼玉・本社
WindowsServer2008+
PervasiveSQL
販売管理システム
仕入管理システム
作業実績 生産現場で入力したい・・・どう実現?
ハンディターミナルを検討
端末コスト、言語で開発しなければならない・・・・
スマートフォン・タブレット プライベートで使ってみて
使いやすい、便利、使ってみたい、導入してみたい
iPad mini Nexus7の登場
Magicがモバイルアプリに対応
作ったアプリはこんなアプリ
製造現場で、作業実績を登録するアプリです。
Magic xpa モバイルRIAGoogle Nexus7 (40台)Windows Server 2008+Magic xpa RIA ServerMS SQL Server 2008
まずPC版先行開発
PC設置できるところはPCで入力することを想定し、
まずは開発に慣れているWindowsPC版アプリの開発をスタート
次に取り組むモバイルアプリのことは、
あまり意識せずに、要望を取り入れ、
プロトタイプを開発しプロジェクト
チームに評価いただき結果をフィード
バック。必要な機能を実現していきま
した。数週間で完成。
2012年7月
プロジェクト発足 PC版ほぼ完成
PC版開発開始
2012年12月
モバイル版アプリ開発に着手
PC版と同じようにしてほしい
↑
↓
モバイル版はできるだけシンプルにしたいマウスとキーボード前提のPC版と同じにする?
本当にPC版の機能全て必要?
シンプルにしたい、どこまで出来るかわからない等々
いろんな意見、考え・・・・なかなかまとまらず・・・
プロトタイプ、スパイラル、アジャイル開発
標準的に作って、検証していただき、課題を上げて、それを聞いて、プログラムへ反映→それをまた検証→
リモートでサーバ上にキャビネットファイルを置く
Magicアプリは端末毎のアップデート不要なので気軽に更新できる。
ドキュメントを共有し、課題、
スケジュール、優先順位の認識をあわせて、
お客様と一緒に、検討しながら開発しながら、
操作がわかりにくい 表示が小さい ボタンがほしい
一画面でみたい 条件で表示色変えたい
前工程や・後工程も見たいこの条件でチェック
数値型でなく文字型に
この項目はこの計算式で初期値を
項目を追加してほしい 桁数足りない
この場合必須、この場合スキップ ・・・・・
配布
検証
評価
修正
プロトタイプ
iOSかAndroidか iPadかNexus7か
Magicの利点を生かして、決めずにスタート
まずは手軽に取り組めるNexus7で
iPad(iPad mini)でも動作してみて
操作のわかりやすさ、操作感はiPad
Nexus7なら、あまり遜色ない
Nexus7はNFC(非接触ICカード等)が使える。メリットありそう
・・・・・
アプリが完成に近い段階、(完成した段階?)でNexus7に決定しました。
決定したと言っても、購入する機種を決めただけで、この先iPadや他機種がメリットある場合、対応していけるのもMagicの大きな利点
導入経緯
2012年7月
プロジェクト発足
2013年2月
PC版稼働開始
4月
モバイル版1部門にて稼働開始
7月
全体の半分で稼働
10月
全部門にて稼働
2012年10月26日
Magic xpa ベータ版ダウンロード開始
2週間一度のペースで打ち合わせドキュメント共有
Android & iOS両方プロトタイプの開発2~3日で基本部分完成
プログラム上の工夫
とにかく実機で動かし確認しながら開発
実際にユーザが操作する状況をイメージして、できるだけシンプルに
ファイルIOを減らす工夫をする。
最新版(2.4c)を使う。パフォーマンスが向上している。
フォーム上のイメージと実画面のイメージ
フォーム上コントロール特性「位置」特性を使って、画面サイズに応じて位置やサイズが変化するように
フォーム上、ラベルで済むものはエディットでなくラベルに
Magicの開発者であれば、クラサバのみの経験者だとしても、当アプリのような内容の場合、心配する必要はない。
効果・新しい動き
PC版はほとんど使われず、モバイル版がメイン(予想外)
今回、開発したアプリは「ちょっとしたしくみ」
その「ちょっとしたしくみ」を各システムと連携させることで大きな効果が
現場の人たちが、要望を出してくれるようになった
さらに現場から新たなシステム化への提案→実際に開発スタート!
こうなったらいいね! 次はこれに取り組んで行こう!
Magicで開発するモバイルアプリ
全部一人で開発できる。
端末側、サーバ側、通信、データベース・・・ 通常の開発の場合は、それらを一人が全て対応するのは、かなり難しい・・・Magicならば、一人で全部できる。
プロトタイプ、スパイラル、アジャイル開発
打合せ→数日で提供→ユーザ様にて評価→
お客様と一緒に検討することで、業務の理解、問題の共有
みんなで実物を確認しながら、みんなで作る、育てる。
気軽にやれる。やってみれる。間違っても作り直せる。
課題があることをお客様と一緒に前向きに取り組める。
現在の取り組み
NFC連携
ロットを特定する為に利用
各システムへ展開
出退勤、お弁当注文
タブレットアプリPCアプリ連携
入力はPCで、参照はタブレットで・・・
入力効率がかなり向上し、現在展開中
【NFCとは】今最も注目を集めている近距離無線通信技術FeliCaや、世界中に普及しているMIFAREなどの非接触ICカードの上位互換性であること、さらにはNFCの通信規格を搭載している機器同士が双方向に通信可能なため、今後幅広い活用が見込めます。
Magic xpa モバイルRIAにNFC機能を組み込むには
• NFCのIDmやUIDを取得し文字列に変換するネイティブアプリを作成
• モバイルRIA開発者ガイド「Magic xpa-ネイティブOSコードの利用」を参考にソースコードをモバイルRIAのビルド環境に置きビルドする
※そのときにNFC IDm、UIDを変換した文字列をMAGICが受け取れるようinvokeExternalEvent(”IDm UID文字列”); をソースコードに組み込む これにより、Android端末でNFCをかざすとIDmやUIDが文字列に変換されMAGICに向けて外部イベントが発行される・・・Magic側で外部イベントを拾い、IDm、UIDを取得する。→後はMagicのプログラムで。。
AndroidやNFC関連の情報やソースコードそのものがインターネット上に溢れているためJAVA開発者じゃなくても何とかなる
(情報を探すのが大変という方は・・・翔泳社「Android NFCプログラミング完全ガイド」が参考に・・・
当社で開発したAndroid用ネイティブアプリは「パッケージソフト.com」に登録させていただきました。 JavaソースコードやMagicのサンプルプログラムも含め、無償で提供させていただきますので、よろしければご利用ください。
http://www.package-soft.com/tool/sofusys01.htm
オンライン→オフライン化への対応
2.4cへマイグレーションを行う。
オフライン用にDBMSを「Local」としてデータベースを定義(2.4cのデフォルトのMagic.iniには最初から定義済み)
データリポジトリを複写する。
データリポジトリ複写元のデータベースをオフライン用に変更(データベースをLocalにする)
オフライン用データ作成プログラムを作成
(DataViewToDataSource関数を使用)
・タスクタイプ:オフラインにチェック。
オフラインアプリケーション開発ガイドを参照し、ロジックや処理方法、運用方法の再検討が必要だと思います。
・オフラインタスクはサーバ側のデータソースは使用できない&オフラインのサブタスクのみ定義可能。・オフラインプログラムからサーバプログラムを呼び出すにはメインプログラム内の[イベント]ロジックユニットを実行させるイベントをオフラインプログラムで発行することで実現させる。
オフライン、オンライン、プログラム構成
メインプログラム
メニュー
サーバDB→ローカルDB取り込みプログラム
オフラインタスク
オンラインタスク
各選択画面
実績入力画面
イベントA発行
イベントA
ローカルDB→サーバDBアップするプログラム
どちらも非インタラクティブなリッチクライアントタスクDataViewToDataSource()関数を使用最終更新日時指定で以降のみ対象とすることも可能
イベントB発行
イベントB
オフラインプログラムは直接サーバにアクセスすることができません。
オフラインプログラムからサーバプログラムを呼び出すには、メインプログラム内の[イベント]ロジックユニットを実行させるイベントをオフラインプログラムで発行することで実現できます。(オフラインアプリケーション開発ガイドより抜粋)
オフラインタスクの制限• サーバ側のデータソースは使用できない。• オフラインタスクはオフラインのサブタスクのみ定義できる。(オフラインアプリケーション開発ガイド抜粋)
開発会社にとってのメリット
サンコー様以外のお客様へ、この取組みをお話しすることによって、違う業種であっても、話が出てくること
ちょっと試しに作って、見てもらって、評価いただけることで、
訪問のついで、話のついで、ちょっとした時間で、見せれる、話を聞ける
お客様へ見せる方法:MSJ殿デモアプリ
iPhone,iPadなら、Appストアより
「Magic xpa Client 日本語版」をインストール
URLを以下にhttp://psdws3.magicsoftware.co.jp/DemoMenu/DemoMenu.txt
Androidなら、MSJ殿サイトよりダウンロードhttp://psdws3.magicsoftware.co.jp/MSJ_DemoMenu.html
URL入力不要
ご自分のスマートフォンに入れて、いつでも見せることができます。「こんなアプリがMagicで開発できます。ちょっとやってみませんか?」
↑
見てくれます。
始め方
MSJ殿サイト内スキルアップセンター
http://devnet.magicsoftware.co.jp/skillup/magicskillup/
①リッチインターネットアプリケーションのチュートリアルをさっと目を通します。(お急ぎの方はスキップしてもOK)
④「AndroidでのMagic RIAはじめの一歩」記述されているとおりにやってみる。
②IISをセットアップして、Magic Studioインストール(体験版でもOK)
③Android機を用意
自分で作ったプログラムがAndroidで動作!\(^o^)/あとは、Magicのプログラムの世界なので、いろいろ自由に試すことができます。
⑤「モジュールカスタマイズ編」は、ユーザ導入前までに読んでおけば良い
じっくり、時間ある時に製品添付「モバイルRIA開発者ガイド」を読む