ホーム‎ > ‎Magic xpa‎ > ‎

Magic xpa 新連載概要


第160回 Windows RIA とモバイル RIA 混在のポイント

2021/06/30 23:10 に Masanobu Tanda が投稿   [ 2021/06/30 23:12 に更新しました ]

2021年6月30日

 Magic xpa で RIA アプリを作成しようとした場合、昨今はほとんどのケースで Windows、iOS、Android 混在型のアプリケーションになることが想定されます。

 そしてこのような場合、最もやっかいな作業になりがちなのがプログラム実行画面のサイズの仕分けや、OS ごとに分類される可能性のあるプログラムメニューの分岐となります。

 ここではその例として、弊社のデモアプリとして稼働している「丹田寿司」を例にとり、モバイル側の初期画面と Windows 側の初期画面を、同一のアプリケーション上でクライアントの OS を自動的に判定しながらメニューを分岐させる方法について解説していきたいと思います。

 丹田寿司では、iPhone や Android 側で寿司の注文を行い、寿司店の厨房側ではその注文を受けて寿司をにぎり、レーンに流すという作業を行うものとします。これら両者のプログラムを1つのアプリケーション上で一元管理します。

(以降、本編に続きます。本編ご購読のお申込みはこちらです)

第160回(2021年6月30日号)目次

1 iPhone 側の初期画面と Windows 側の初期画面
2 メニュー分岐の設計
3 iPhone 側の実行フォーム
4 Windows 側の実行フォーム
5 タスクタイプの設定
6 トランザクションの設定
7 メニュー分岐プログラムの構造
8 ダミー変数の定義
9 クライアント OS の判定ロジック
10 非インタラクティブタスクのフォーム
11 インタフェースビルダの実行
12 発行元の名前の設定
13 サーバ名の設定
14 開始プログラムの指定
15 インストーラの種類の選択
16 インストーラの配置先
17 インストーラへの URL
18 バックグラウンドモードでの実行
19 モバイル側起動用 txt ファイルの用意
20 Windows 用インストーラの実行
21 Windows 側プログラムの実行
22 Windows スタートメニューの確認
23 iPhone 側の接続先の設定
24 寿司の注文のテスト
25 厨房側のご注文リストでの確認
26 トッププログラムのトランザクションの設定

第159回 データベース接続のタイミングの重要性について

2021/06/02 0:53 に Masanobu Tanda が投稿   [ 2021/06/02 0:55 に更新しました ]

2021年5月31日

 Magic では、データベースへの接続手順はほとんど自動で行われるため、開発者は該当するデータベースへのゲートウェイの選択と接続のためのパスを指定するだけで済むのですが、このときに見落としがちなポイントが1点あります。今回はこの件について解説していきたいと思います。

 この重要なポイントを見落とすと、登録したはずのレコードがデータベースに反映されていないとか、あるいは指定したデータベースとは別の、意図しない場所のデータベースに保存されてしまったりとかの状況に遭遇します。

 今回はそれが何故起こるのか、そしてそれをどう解消していけばよいのかについて解説します。

(以降、本編に続きます。本編ご購読のお申込みはこちらです)

第159回(2021年5月31日号)目次

1 開発用フォルダと実行用フォルダの準備
2 データベーステーブルの確認
3 サンプルプロジェクトの用意
4 サンプルテーブルの作成
5 APG プログラムの作成
6 ダミーレコードの登録
7 データベースファイル生成の確認
8 プロジェクトフォルダのコピー
9 別プロジェクトのオープン
10 初期データベースの確認
11 ダミーレコードの追加
12 ダミーレコードの確認
13 元データベースの確認
14 ダミーデータが勝手に増えている!
15 データベースファイルの確認
16 開発プロジェクトの再起動
17 ダミーデータが再び消えた!
18 怪奇現象の謎解き

第158回 データベースレコードの変換出力と持ち運び

2021/05/05 2:26 に Masanobu Tanda が投稿   [ 2021/05/05 2:28 に更新しました ]

2021年4月30日

 今回は、データベーステーブルのデータを外部に持ち運ぶ手法について解説します。アプリケーションを開発する過程においては、開発者の環境とアプリケーション利用者の環境との間で往々にしてデータを持ち運ぶ必要性にかられます。

 これまではそれを実行するために、データをテキストファイルに出力して持ち運んだり、あるいはデータベーステーブルのデタッチ・アタッチや、バックアップ・リストア等の手間のかかる外部作業を行ったりしてこれを実現してきました。

 しかしながら、Magic xpa に SQLite エンジンが標準で添付されるようになってからは、外部のユーティリティをまったく利用しなくても、容易にデータを変換しながら持ち運ぶことができるようになりました。Magic に同梱された SQLite ゲートウェイは、自己完結の精密さでこれを行いますので、安心してデータを移行したりすることができます。

 また、SQLite は名前が「Lite」であるとは言えど、1ファイル最大140TB(テラバイト)までのデータベースを管理することが可能なスペックとなっており、なおかつ他の大型 DB のように1データベースに複数のテーブルをまとめて保管することも可能ですので、アーカイブ目的としての利用も可能です。

 それでは具体的にその活用法について学んでいくことにしましょう。

(以降、本編に続きます。本編ご購読のお申込みはこちらです)

第158回(2021年4月30日号)目次

1 SQLServer のデータソース
2 APG による確認
3 Management Studio による確認
4 SQLite データベースの作成
5 データベース特性のオプション
6 データベースの変更
7 F8 キーによる構文チェック
8 バックアップの確認
9 インデックスのスキャン
10 バックグラウンドでの変換
11 APG による SQLite データの確認
12 Management Studio 側での確認
13 バックアップテーブルの確認
14 SQLite ファイルの所在
15 SQLite ファイルのコピー
16 移動先のデータベース定義
17 データベース特性のオプション
18 データベースの変更
19 APG による内容の確認
20 データベースの再変換
21 F8 キーによる構文チェック
22 バックアップの設定
23 インデックスのスキャン
24 バックグラウンドでの自動変換
25 APG による変換後のデータの確認
26 Management Studio による内容確認

第157回 画面再表示とビュー再表示の違い

2021/04/01 22:57 に Masanobu Tanda が投稿   [ 2021/05/05 2:29 に更新しました ]

2021年3月31日

 今回の記事のタイトルは「画面再表示とビュー再表示の違い」となっていますが、使用するサンプルプログラムは前号の「サブタスクの編集内容が親タスクに反映されないのは何故」からの続きとなります。

 前号では、親タスクに戻ったときに、子タスクで行った編集内容を反映させるために「画面再表示」という内部イベントを使用して画面を更新していました。

 実は前号でも少し触れましたが、このときに使用する内部イベントは「画面再表示」以外に、「ビュー再表示」というイベントを使用することも可能です。

 そこで今回は、なぜこのように似たイベントが2種類用意されているのか、そしてそれらをどのように使い分けたらよいのかについて解説していきたいと思います。

 むやみに「ビュー再表示」ばかり使うのではなく、それぞれのメリット、デメリットを把握したうえで、用途に応じて使い分けていただければと思います。

 なお、Maigic のタスク特性には、さらに「ウィンドウ再表示」というオプションも用意されていますので、これとの違いも改めて確認していきます。

 繰り返しになりますが、これらの設定はクラサバ以外に、RIA、WebClient でも共通の概念となりますので、基本をしっかり押さえながら、プログラムを作成してまいりたいと思います。

(以降、本編に続きます。本編ご購読のお申込みはこちらです)

第157回(2021年3月31日号)目次

1 データ再表示イベント
2 前号のプログラムの改編
3 改編プログラムの実行
4 画面再表示ボタンを押す
5 新規レコードの追加
6 画面再表示ボタンを押す
7 ビュー再表示ボタンを押す
8 画面再表示とビュー再表示の違い
9 ビュー再表示のデメリット
10 既存レコードの削除時の動作
11 画面再表示ボタンの動作
12 エラーメッセージの確認
13 ビュー再表示ボタンの動作
14 ウィンドウ再表示との違い


第156回 子タスクの編集内容が親タスクに反映されないのは何故

2021/03/02 2:46 に Masanobu Tanda が投稿   [ 2021/03/02 2:50 に更新しました ]

2021年2月28日

 今回の記事は、クラサバ、RIA、WebClient の各タスク共通のテーマで、トランザクションが関連した内容です。

 2階層構造の親子タスクを作り、親タスク、子タスクともに同じテーブルを使用するものとします。

 親タスクでデータの一覧を表示し、特定のレコードを編集したりするような場合に、子タスクをズームしてこれを行うというパターンがよくあります。ところがこのときに、子タスクで編集した内容を親タスクに戻って確認すると、子タスクで変更したはずのデータが親タスクのデータに反映されていないというケースがよく見受けられます。

 これには理論的な理由があるのですが、今回はこれをシングルユーザ環境で行った場合とマルチユーザ環境で行った場合の注意点を合わせて解説していきたいと思います。ここでは両者のいずれの場合も、Magic の「トランザクションキャッシュ」の動きが関係しています。

 理由がよく分からずに、安直に「レコード書込」イベントを発行して、修正した内容を強制的に保存してしまうという手法は得策ではありませんので、これを機会にその動作をご一緒に検証してまいりたいと思います。

 ここで使用するサンプルプログラムはクラサバのオンラインタスクですが、上でも述べましたように、このプログラムは RIA、あるいは WebClient のタスクに変換して動作させた場合でも、まったく同じように動作します。この一貫性が Magic の最大の武器のひとつであるとも言えます。

(以降、本編に続きます。本編ご購読のお申込みはこちらです)

第156回(2021年2月28日号)目次

1 親タスクのサンプル実行画面
2 子タスクのサンプル実行画面
3 子タスクでデータを修正
4 変更データが反映されない!
5 プログラムの再起動で反映!
6 Magic のトランザクションキャッシュ
7 親タスクのロジック
8 編集ボタンのイベント
9 フォーム上の編集ボタンのイベント
10 子タスクのロジック
11 フォーム上の終了ボタンのイベント
12 子タスクのトランザクションの設定
13 プログラムの再実行
14 親タスクのトランザクションキャッシュ
15 キャッシュをリロードするイベント
16 イベント発行のタイミング
17 プログラムの再実行
18 マルチユーザ環境における問題点
19 親子のトランザクションの再確認
20 子タスクのトランザクションの見直し

第155回 Magic xpa 4.6.1 + Xcode 11で iOS プロジェクトをビルドする(2)

2021/02/03 0:45 に Masanobu Tanda が投稿   [ 2021/02/03 0:45 に更新しました ]

2021年1月31日

 前号(2020年12月31日号)からの続きです。前号では、Xcode11 から iPhone iOS13 実機へ直接、ビルドして配布する方法について学びました。

 今回は、もう一つのアプリ配布方法であるインストーラ(ipa ファイル)経由のインストールについて解説してまいります。

 この方法では iPhone に対して直接、ビルド配布するのではなく、別途、配布用のインストールファイルを作成し、Apple から提供されている「Apple Configurator 2」という環境設定ツールを用いてインストールを行います。

 従って、Xcode11 のインストールに併せて、あらかじめ「Apple Configurator 2」のインストールも行っておく必要があります。これらは Mac App Store からダウンロードが可能です。

 なお例により、本記事の内容を実行するには、あらかじめ Apple Developer Program への登録と、開発用証明書の取得、およびアカウントへの実行デバイス(ご自分の iPhone)の登録が必要となります。これらの手続きがまだお済みでない方は、下記の Apple 社のページを参照して手続きを完了させておいてください。

Apple Developer Program

 ※これらの登録手順の詳細は、マジックソフトウェア社主催の「Magic xpa iOS 導入トレーニングコース(1日間)」でも解説しています。必要に応じてトレーニングにご参加ください。

マジックソフトウェア社・トレーニング

 では早速、その手順について解説してまいりたいと思います。この手順を習得すれば、インターネット経由での OTA 配布(Over-The-Air )や、Apple Developer Enterprise Program 上での配布も容易となります。

(以降、本編に続きます。本編ご購読のお申込みはこちらです)

第155回(2021年1月31日号)目次

1 デバイス指定の変更
2 Archive の実行
3 今回もビルドエラーが!
4 エラーの詳細
5 署名の変更
6 Archive の再実行
7 あいかわらずエラーが!
8 プロビジョニングのコンフリクト
9 コンフリクトの回避
10 Archive の再々実行
11 Archive ダイアログ
12 アプリ配布ウイザードの開始
13 配布形態の選択
14 署名方式の指定
15 ビルド作業の開始
16 インストーラの出力先
17 Archive ダイアログの終了
18 インストーラの所在確認
19 前号のアプリの削除
20 環境設定ツールの起動
21 インストール開始
22 インストール中の画面
23 インストールの完了
24 アプリの実行
25 Xcode 11 の終了

第154回 Magic xpa 4.6.1 + Xcode 11で iOS プロジェクトをビルドする

2021/01/05 0:05 に Masanobu Tanda が投稿   [ 2021/02/03 0:44 に更新しました ]

2020年12月31日

 Magic xpa 4.6から xpa 4.6.1へのバージョンアップは、Magic 本体にとってはマイナーバージョンアップのレベルでしたが、そこに添付された iOS プロジェクトに関しては、それまでの Xcode 10までの対応から Xcode 11への対応が正式に実現された大きな節目となりました。

 Xcode 11では、Apple 社による仕様変更により、モーダルウィンドウのデフォルト表示が従来のフルクリーン表示からモーダルビューの本来の表示形式であるカード型に変更されていたり、あるいは iPhone X から取り入れられたノッチデザインの影響などにより、画面表示周りにいくつかの仕様変更がなされています。

 したがって、Magic 4.6以前に同梱された iOS プロジェクトを Xcode 11でそのままビルドすると、フルスクリーンで表示されるべきウィンドウがモーダルビューとなり、それをフリックすることでアプリがフリーズしてしまったり、あるいは iPhone を横置きにするとテーブルコントロールのタイトル行が隠れてしまったりする等の不具合が生じていました

 これらの問題が、今回の xpa 4.6.1へのバージョンアップで正式に解消されたことになります。

 併せて、Xcode 11ではアプリアイコン名の登録方法や、アプリへの署名手順もこれまでの作法とは一部異なる点も生じてきましたので、今回の解説ではこれらも含めて順を追って解説してまいりたいと思います。

 また、本記事では USB ケーブル直結によるビルドと、インストーラ(ipa ファイル)経由のインストールの両方を解説してまいります。従いまして、Xcode 11のインストールに併せて、あらかじめ「Apple Configurator 2」のインストールも行っておいてください。これらはすべて Mac App Store からダウンロードが可能です。

 なお例により、本記事の内容を実行するには、あらかじめ Apple Developer Program への登録と、開発用証明書の取得、およびアカウントへの実行デバイス(ご自分の iPhone)の登録が必要となります。これらの手続きがまだお済みでない方は、下記の Apple 社のページを参照して手続きを完了させておいてください。 

Apple Developer Program

 ※これらの登録手順の詳細は、マジックソフトウェア社主催の「Magic xpa iOS 導入トレーニングコース(1日間)」でも解説しています。必要に応じてトレーニングにご参加ください。

マジックソフトウェア社・トレーニング

(以降、本編に続きます。本編ご購読のお申込みはこちらです)

第154回(2020年12月31日号)目次

1 事前に必要となる準備事項
2 Magic に添付された iOS プロジェクトのコピー
3 xcodeproj から Xcode 11を起動
4 Xcode 11起動時の画面
5 MagicApp の General タブの表示
6 iPhone 実機でいきなり実行を試す
7 デバイスを選択してプロジェクトを実行
8 ビルド失敗の内容
9 ビルドエラーの詳細
10 自動署名への切り替え
11 自動署名への切り替えの確認
12 開発チーム(開発者)の選択
13 プロジェクトの再実行
14 通知の送信を許可
15 RIA アプリの稼働先を指定
16 RIA アプリの起動
17 アプリアイコンの確認
18 アプリアイコン名の変更
19 プロジェクトの上書き再実行
20 変更後のアプリ名の確認

第153回 さくらインターネット上に Windows インスタンスを作る(2)

2020/11/30 21:13 に Masanobu Tanda が投稿   [ 2020/11/30 21:28 に更新しました ]

2020年11月30日

 さくらインターネット VPS のサービスは、月額1,000円からの固定料金制で、初期費用も従量課金も一切無しという安心プランです。しかも、最初から固定のグローバル IP アドレスが割り振られていますので、RIA サーバとしても WebClient サーバとしてもすぐに稼働させることが可能です。

 本記事では、Magic xpa の開発版を稼働させるに足るパフォーマンスの、月額2,000円のコースをベースに解説していきます。月額2,000円とはいえ、CPU は仮想 3Core で、SSD 100GB を搭載したスペックとなっています。3Core ですので、CPU 使用率が2個までフル稼働に達しても、残りの1つで Magic サーバは稼働し続けます。

 さて、前号ではさくらインターネット VPS 上に Windows Server 2016をインストールし、VNC コンソールからその立ち上がり画面を表示させるところまでを解説しました。

 今回はその続きとして、この VNC コンソールから Windows Server 2016に初回のログオンを行い、さらにローカルの Windows 10からリモートデスクトップ接続を行うところまでを解説します。そして最後に、さくらインターネットの管理画面からサーバのステータスを見る方法も併せて解説します。

 ※初回のログオンは Windows 10のリモートデスクトップ接続でいきなり行ってもよいのですが、VNC コンソールからのログオンの仕方も確認しておくことで、後々のトラブル対処の一助ともなります。

 ではそのコンソールログオンを行ってみましょう(後略)。

(以降、本編に続きます。本編ご購読のお申込みはこちらです)

第153回(2020年11月30日号)目次

1 Ctrl + Alt + Del の送信
2 Windows Server へのコンソールログオン
3 ネットワークの設定
4 サーバーマネージャーの終了
5 さくらインターネットからログアウト
6 リモートデスクトップからの接続
7 コンピュータ名とユーザ名の入力
8 パスワードの入力
9 セキュリティ証明書の確認
10 Windows デスクトップの表示
11 デスクトップが表示されない時の留意点
12 ファイルやフォルダの転送
13 さくらインターネットのサーバ管理画面
14 VNC コンソールの再表示

第152回 さくらインターネット上に Windows インスタンスを作る

2020/11/04 1:27 に Masanobu Tanda が投稿   [ 2020/11/04 1:29 に更新しました ]

2020年10月31日

本連載では、これまでに下記の通り、Amazon AWS、および富士通クラウド上で Magic を稼働させる手順について解説してきました。

Amazon AWS

第98回 AWS で Magic xpa を使用する (2016年4月30日)
第99回 AWS で Magic xpa を使用する(2) (2016年5月31日)
第100回 AWS で Magic xpa を使用する(3) (2016年6月30日)
第101回 AWS で Magic xpa を使用する(4) (2016年7月31日)
第102回 AWS で Magic xpa を使用する(5) (2016年8月31日)

富士通クラウド

第144回 富士通クラウド上に Windows インスタンスを作る(2020年2月29日)
第145回 富士通クラウド上に Windows インスタンスを作る(2)(2020年3月31日)
第146回 富士通クラウド上に Windows インスタンスを作る(3)(2020年4月30日)

これにより、多くの読者の方々が気軽にクラウド上に Magic の開発環境を構築したり、Magic のアプリケーションサーバを設置したりすることができるようになったことと思います。

そこで今回は、国産クラウド(システム自体もすべて国産)の代表選手とも言える「さくらインターネット」のクラウドに焦点を置いて解説していきたいと思います。

さくらインターネットは、2011年3月の東日本大震災時においても、まったく影響を受けることなく稼働し続け、国内のレンタルサーバー各社の中でも、ずば抜けた信頼性を証明するものであるとして、ニュースでも大きく取り上げられました。

この安定性の要因としては、さくらインターネット上で稼働しているシステムが、すべて自前で構築されて管理されている純国産システムであるという点にもあります。他社のクラウドのように海外システムを日本語化したものではなく、エラー発生時にも不可解な英語のメッセージが出たりすることもありません。日本人の文化にとっても、使いやすいインターフェースとなっています。

ただ、さくらインターネットはクラウド関連のサービスメニューが非常に多く、初心者にとってはどのサービスから着手したらよいのか分かりにくい点もありますので、ここでは入門者向けとして理解しやすく、また価格もお手頃な「さくらインターネット VPS」のサービスに的を絞って解説していきたいと思います。

お手頃価格であるとはいえ、さくらインターネット VPS は、Magic の開発環境を構築したり、完成したアプリケーションをクラサバ、RIA、WebClient にかかわらず、Magic サーバとして実行させたりするうえでは十分な機能を備えていますので、安心して利用することができます。ちなみに、利用料金は月額1,000円からの固定料金制で、従量課金は一切なしという安心プランとなっています。

※本記事では、Magic を稼働させるに十分なスペックを持つ月額2,000円の固定料金プランの利用について解説していきます。

それでは具体的な利用手順について解説してまいりましょう(後略)。

(以降、本編に続きます。本編ご購読のお申込みはこちらです)

第152回(2020年10月31日号)目次

1 さくらインターネットの Web サイト
2 さくらインターネット VPS サービス
3 2週間無料でお試し
4 アカウントの確認
5 アカウントへのログイン
6 申し込みプランの選択
7 追加ソフトウェアの選択
8 ライセンス追加の申し込み
9 お支払い方法の選択
10 最終の確認画面
11 お知らせメールの配信先
12 ログイン情報の記載メール
13 お申し込み受付完了のお知らせ
14 仮登録完了のお知らせ
15 ログイン情報の確認
16 サーバ一覧の表示
17 サーバの起動
18 サーバの設定画面
19 VNC コンソールの起動
20 Windows Server のインストール
21 インストール中のモニタリング
22 Windows Server の立ち上がり

第151回 WebClient のオーバレイウィンドウをカスタマイズする(2)

2020/10/05 1:20 に Masanobu Tanda が投稿   [ 2020/10/05 1:25 に更新しました ]

2020年9月30日

前号では、オーバレイウインドウの四隅を角丸にし、タイトル部分のバランスと配色を調整するところまでを学習しました(画面1)。

画面1 前号までの途中完成図

ここまでで、下記の6項目の課題のうち、1番と2番が完成したことになります。

 1. オーバレイの四隅が角ばっており、オーバレイらしくない。
 2. 見出しタイトル領域が狭く、コントロールのバランスが悪い。
 3. 項目タイトルと項目データに段差があり、見づらい。
 4. 項目タイトルの左側に余白がない。
 5. 終了ボタンが左寄せであり、左側に余白がない。
 6. 背景の色が濃すぎて、親タスクのデータがよく見えない。

今回はその続きとして、3番から6番までの課題である、「項目データの表示バランス」と「終了ボタンの位置の調整」、および「背景の透明度を変更する方法」を学びます。

6項目の全ての課題の修正が完了すると、完成図は画面2のようになります。

画面2 6項目の課題の完成図

なお、ここで学ぶ修正手順は、ただ単にこの1画面を修正するだけの解説にとどまらず、汎用的な修正手順のコツをつかんでいただくことに重点を置いています。したがって、そのコツを習得された暁には、ほとんど自由自在にレイアウトを調整していく能力が身に付くことが期待できます。

もちろん今回の修正も前回と同様、ソースコードとなる HTML や TypeScript には一切の手を触れず、簡単な CSS の追記だけで作業を進めていきます。追加する CSS はわずか数行で、その場で暗記できる内容の記述ばかりです(後略)。

(以降、本編に続きます。本編ご購読のお申込みはこちらです)

第151回(2020年9月30日号)目次

1 残り4項目の課題の修正
2 HTMLやTypeScript には手を触れない
3 前号の最終画面の確認
4 項目タイトルと項目データの段差の解除
5 項目タイトルの余白設定
6 項目タイトルの余白設定の変更確認
7 終了ボタンの配置の変更
8 ボタンの配置を司るスタイルを探す
9 モーダルウィンドウのスタイルまで遡る
10 ブロックレベル要素内の特定のスタイル
11 CSS セレクタの使用
12 終了ボタンの配置変更確認
13 「×」ボタンの配置の再考
14 オーバーレイの背景の透明度の変更
15 カラーパレットで試行錯誤して設定
16 スタイルが反映されないことへの対処

1-10 of 160