その他の最近の情報



編者:日経ソフトウェア

発行人:桔梗原 富夫

編集長:田島 篤

発行:日経BP社

178ページ

1,886円+税

 

内容

2010年10月2日にHTC Desire(X06HTII)が発売されました。

Android2.1搭載のスマートフォンで、iPhone4に次ぎ、評判は上々のようです。

さすがにiPhone4の勢いほどではないけど、アプリケーションの開発という点では、

より柔軟・オープンであり、今後に期待できます。

 

さらにHTC Desire(X06HTII)は、2010年10月8日には、Andoroid2.2へアップデート

可能で、加速度的にiPhoneを凌ぐ勢いとなりそうです。

 

さて、前置きが長くなりましたが、この書籍では、こういった状況を踏まえてかどうか、

アプリケーションの開発について、2大スマートフォン(もちろんIPhoneとAndroid)の

両方のプログラミングについて書かれた最新の書籍になります。

 

私の場合は、Mac環境、Apple製品を好んで利用しないため、必然的に、Javaでの

開発が手軽にできるAndroidとなった訳ですが、スマートフォンの開発については、

やはり、iPhone、Android両方の知識について理解する事も大切です。

 

この書籍ではタイトルのとおり、"入門"ではありますが、こうした2大スマートフォンの

アプリケーション開発について、両者を比較しながら、体系的に、手軽に学べるという

点では、とても有用なバイブルとなると思います。

 

日経ソフトウェアの過去の記事から作られているムック本ではありますが、

基本的な知識と、技術がしっかり学べると思います。

今の時代の、システムエンジニア、プログラマの基礎知識としても、

知っておくべき内容がたくさん詰まっていると言えます。

 

目次

 

第1章 作って楽しい!

  • Part1 iPhoneプログラミング入門 効率的に始めるための4大ポイント!
  • Part2 iPad専用のスプリットビューとポップオーバーでRSSリーダーを作る
  • Part3 Androidで作って楽しむ弾幕系シューティングゲーム
  • Part4 iPadプログラミング入門 高速動作と大画面を生かす!パーティクルによる電光掲示板アプリを作る
  • Part5 開発者が明かすニコニコ生放送のiPhoneアプリはこうして生まれた

 

第2章 Androidの基礎を極める!

  • Part1 最も重要な「Activity」を理解する
  • Part2 音声読み上げアプリケーションを作る
  • Part3 Intentで超簡単アプリケーション連携
  • Part4 実例で学ぶIntentの使い方
  • Part5 Androidの秘密兵器、Serviceを理解する
  • Part6 Serviceに独自のinterfaceを持たせる
  • Part7 データ共有に必須のContentProvider
  • Part8 アプリにContentProviderを実装する

 

第3章 達人への第一歩

  • Part1 16個のサンプルで一目瞭然高度な機能がすぐに使える!
  • Part2 最速で学ぶObjective-C メモリー管理をマスターすればObjective-Cがわかる!
  • Part3 最速で学ぶObjective-C GUIプログラム作成に必要な概念をマスターしよう
  • Part4 iPhone実践プログラミング 電子コンパスを使ったアプリを実機で動かそう
  • Part5 iPhone実践プログラミング MapKitで地図アプリを作ろう
  • Part6 Phone実践プログラミングGameKitを使ってBluetooth通信対戦ゲームを作ろう
  • Part7 Javaエンジニアから見たiPhone/Androidアプリ開発記

 

付録 開発環境のセットアップ

 

ポイント

2大スマートフォンのアプリ開発が同時にわかる!

世界的なブームとなっているiPhone/iPadとAndroidのプログラミングを同時に

学びましょう。iPhoneプログラミングの基本、Objective-C、iPadの画面サイズを

生かすアプリの作り方、Androidの4大構成要素(Activity,Intent、Service、

ContentProvider)、Androidで作る弾幕系シューティングゲームなど、多彩な内容

を詰め込みました。iPhone/iPadとAndroidの類似点と相違点を把握しながら学べ、

それぞれのOSに対する理解も深まります。

 

補足

iPhone/iPadの開発は、通常Mac上での開発となりますが、

C#環境でも開発することがが可能なようです(Mono環境)

これは、開発の生産性においても、Windowsプログラマにとっても、

とても可能性の広がる事だと思います。Appleの対応についても、

もっともっとオープンになればうれしいことです。

 

 

 

 Google App Engine for Java「実践」クラウドシステム構築

 

著者: 株式会社グルージェント

発行日: 2009年10月10日

発行者: 片山 巌

発行所: 株式会社技術評論社

310ページ

2,480円+税

 

 内容

Googleのスケーラビリティを案件で使い切る。活用の秘訣は、「制約」を正しく

理解すること。割り当てと制限、BigTableによるDB構築、課金のしくみ、

Google Apps、GDataとの連携、Memcache、Mail・・・API活用

 

ポイント

Window Azureサービスも開始され、クラウドサービスもビジネスだけではなく、個人的な

利用についても十分現実的なものになっていきている。Windows Azureも魅力的であるが

まだまだ情報も少なく、個人的に試してみるのは、まだ先かなぁと思う。

 

そんな中、やはり無料で使用でき、導入が容易、機能も豊富なサービスといえば、

Google App Engine for Javaでしょう。特にJava Webアプリケーションサーバの

実行環境が無料で利用できるというのは、Javaユーザにとっては、特にありがたい

でしょう(レンタルサーバでもJavaの実行環境が提供されるのは稀なので)

一定の使用量を超えると課金になるが、そこそこヘビーなアプリケーションでなければ、

制限を超えることはないと思う。ぜひ一度試してください。

 

本書では、こういった、サービスの基本的な内容、課金について、導入手順などはもちろん、

サービスの各機能の使用方法のポイントを、わかりやすく説明されているので、このサービス

の素晴らしさが実感できると思う。

 

とりあえず、触ってみたいという方は、Eclipse環境で導入可能なので以下参照してください。

http://pg2se.com/site/2009/07/google-app-engine-for-java.html

 

内容詳細

第1章 クラウド時代のシステムインテグレーション

1.1 クラウドコンピューティング

1.2 Google App Engine

1.3 Google App Engine for Java

 

第2章 制約

2.1 Quota(割り当て)とLimit(制限)

2.2 Java APIに対する制約

 

第3章 クラウド時代のシステムインテグレーション

3.1 GAEアカウントの作成とデプロイの準備

3.2 開発環境の構築

3.3 アプリケーションの作成とデプロイ

3.4 アプリケーションの設定

3.5 アプリケーションの管理

 

第4章 データストア

4.1 BigTable

4.2 JDOによるデータストアの操作

4.3 インデックス

4.4 トランザクション

4.5 JDO以外のデータストアAPI

4.6 データストア設計上の注意点

 

第5章 サービスAPI

5.1 Memcache API

5.2 URLフェッチ API

5.3 Images API

5.4 Mail API

 

第6章 テスト

6.1 ユニットテスト

6.2 ローカル環境でのテスト

6.3 実環境でのテスト

6.4 パフォーマンスの確認

 

第7章 GAEが提供するサービスとの連携

7.1 GAEが連携可能なGoogleアプリケーション

7.2 アカウント認証サービスとの設定

7.3 Google Calendarとの連携

7.4 GAE/Jアプリケーションを独自ドメインで運用

7.5 Secure Data Connector

 

第8章 追加リソースの購入

8.1 Billingの体系

8.2 Billingの設定

8.3 課金量の予測

 

2009年9月7日、オープンソース給与・勤怠システム「MosP」の

フレームワークとAPIが公開された。

MosPは、Mind Open Source Project の略で、「モスプ」と呼ぶ。

 

MosPはマインドが開発し公開しているJava Webアプリケーションであり、

Strutsと同様にMVCアーキテクチャをとる構造となっている。

 

画面サンプル

mosp0.jpg

mosp1.jpg

 

フレームワークの特徴

Action基本クラスは簡易ワンタイムパスワード機能や認証情報確認機能等を備えて

おり、データベースにアクセスするためのクラスとしてDaoとDtoクラスがある。

またjOpenDocumentを利用したOpenOffice.org帳票作成クラスと、Apachi POIを

利用したMicrosoft Excel帳票作成クラスがある。OpenOfficeまたはExeclで作成

したテンプレートに値を埋め込んで帳票を作成できる。

 

ドキュメントとして、アプリケーションの作成方法を記述した「MosPフレームワーク

手順書」と、APIのドキュメントが用意されている。 また、開発者向けにコミュニティ

MosP Developer's Communityを開設されており、情報を入手することができる。

 

標準機能(給与計算)
・SaaS基盤対応    ・賞与計算
・勤怠データ取込   ・個別賞与計算
・給与計算       ・賞与情報一覧
・個別給与計算    ・賞与明細出力
・給与情報一覧    ・賞与データ出力
・給与明細出力    ・社員賞与情報管理
・給与明細出力    ・賞与項目管理
・給与データ出力   ・MosP連携
・社員給与情報管理
・給与計算情報管理
・給与項目管理

標準機能(勤怠管理)

・SaaS基盤対応    ・個人情報登録
・出勤入力       ・MosP連携
・退社入力
・休暇入力
・有休管理
・確認変更
・承認機能
・帳票印刷
・スケジュール登録
・エクスポート
・基本情報登録

 

勿論、業務としてMospを採用するのは、それぞれの会社や、個人個人で、

意見は分かれるだろうが、オープンソースでどのように、給与システムや

勤怠管理システムが作られているかは技術者としては気になるところです。

 

 

Googleのインフラでウェブサービス(ウェブアプリケーション)が利用できる、

「Google App Engine for Java」が2009年4月に遂に公式発表された。

(最初の言語としてにPythonが2008年に公開されています)

 

スクリプト言語ではなく、JavaのWebコンテナ上でのバイトコードでの動作が

提供されるのは驚きです(もちろんセキュリティ上の制限はあるようです)

 

JSP、Servletはもちろん、JavaVMで動作することから、JRuby、Jython、Groovy、

Scala、Quercusなどを利用して、各種スクリプト言語も動作させることができそうです。

 

まずは、「Google App Engine for Java」を利用するまで進めてみたいと思います。

 

1.必要な環境

  Eclipse3.3、または、Eclipse3.4

  Google App Engine のアカウント

  ※インストール・取得方法は割愛します。

 

2.Eclipseへのプラグイン追加

    • [ヘルプ]-[ソフトウェア更新] メニューを開きます。
    • [使用可能なソフトウェア] タブを選択し、[サイトの追加] ボタンを押します。
    • [ロケーション] に、次の内容を入力し、[OK] ボタンを押します。
    • [Google Updates Site for Eclipse] が追加されるので、チェックボックス
      に、チェックを入れ、[インストール] ボタンをクリックします。
    • [次へ]で進み、ライセンス確認をすると、インストールが開始されます。
      ※インストール後、Eclipseを再起動をするようになります。
    • Eclipseのツールバーに、次のような、Google App Engine のツールが
      表示されていると準備完了です。
    • 20090705.jpg 

 

3.プロジェクトの作成

    • Google App Engine ツールの、左端のボタンをクリックすると、
      新規プロジェクト作成のウィザードが開始されます。
    • [Project Name] [package] を任意で指定して、[終了] ボタンを押します。
      ワークスペースに、[Project Name] で指定したプロジェクトが作成されま
      す。

 

4.プロジェクトの実行

    • ワークスペースの、プロジェクト名を右クリックして表示されるメニューの、
      [実行]-[3.Web Application] をクリックします。
    • ウィンドウが2つ起動されます。
      a)AppEngine server ...デバッグ実行用のサーバコンテナ
      b)デフォルトアプリケーションの画面(簡易ブラウザ)
    • デフォルトアプリケーションはGWTで実装されたAjaxのサンプルです。
      ->ボックスに入力し[Send]ボタンを押すとAjaxでメッセージが表示されます

※このデフォルトのソースを変更して、自分のアプリケーションを開発していきます。

※[デバッグ]メニューで実行すると、クライアント、サーバどちらもデバッグできます。

※簡易ブラウザでなく、同じURLをほかのブラウザに入力しても実行できます。
   ->コンパイルが必要です(ツールの真ん中のボタンをクリック)

 

5.アプリケーションの公開(デプロイ)

    • Google App Engine のアカウントを取得してログインします。
    • [Create an Application] ボタンを押します。
    • [Application Identifier] [Application Ttitle] を入力し、[Save] を押す。
      ->IDはGoogle Appspotのサブドメインなので世界でユニークな設定になります
    • 次に、Eclipseの設定です。ワークスペースのプロジェクトを右クリックし、
      [Google]-[App Engine Settings] メニューを開き、以下を入力します。
      [Application ID]-> 先に設定した[Application Identifier]を入力します。
      [Version]-> ユニークな番号を指定し、[OK]ボタンを押します。
    • デプロイを実行します。同じく[Google]メニューから、[Deploy to App Engine]
      を選択するか、ツールの右端のボタンを押します。
    • Google App Engineで登録した[Email]、と[Password]を入力し、[Deploy]
      ボタンを押すとデプロイが実行されます。
    • [コンソール] ウィンドウの最後に"Deployment completed successfully"
      と表示されればデプロイの完了です。

 

6.アプリケーションの実行

    • アプリケーションはインターネットを通じて、世界中に公開されます。
    • 公開されるアドレスは、http://[Application Identifier].appspot.com/ です。
      ->[Application Identifier] は、先に設定したIDです。
      ※ちなみに私の場合、http://appcontents.appspot.com/ で公開してます。
      ※GWTのUIを利用する際に日本語を設定すると文字化けしますので、
      ソースコード(リソース)の設定をUTF8にすると回避できます。


以上、Google App Engine for Java を利用する方法を書きました。

※とっても簡単にGoogleのインフラを利用したWebアプリケーションの開発ができる

ことが分かってもらえたかと思います。

 

JavaVMの環境が提供されているので、これを利用して、様々なサービスを

提供できる可能性が広がっています!!

 

長いタイトルですが

やりたいこととしては、サーバーサイドで表題の処理をおこない、

ADOのレコードセットをクライアントに返したいということです。

ADOのレコードセットのシリアライズ方法にXMLデータを利用します。

 

ADODB.Recordset

ADOは、Windows環境(ExcelやAccess等のVBA)で多く利用され、

レコードセットのデータを簡単に加工したり、張り付けたりすることができるように

なっています。また、ADOのレコードセットには標準でXMLへの入出力機能があり、

簡単にシリアライズ・デシリアライズ化することができます。

 

本題

上記のXMLデータを用いて、直接ADO接続でDBMS(Oracle等)に接続する環境が

クライアント側になくても、サーバサイドよりADOのレコードセットをシリアライズした

XMLをクライアント側に返すことで、クライアント側で、ADOのレコードセットを自由に

利用することができるようになるということです。

一種のWebサービスとしての利用と言えます。

 

COM

それではなぜ、COM(Component Object Model)かというと、もちろん、COMを

利用しなくても、Dom等を用いて、Javaの標準のライブラリでもADO仕様のXMLを

生成することは可能なのですが、サーバーサイドでも同じADOの機能を用いた処理

を行うことで手順がすっきりとし、生成されたXMLデータの互換性もほぼ問題は

発生しないという点、パフォーマンス的にも有利ではないかという点でComを選択

してみました。

※もちろんこの時点でサーバサイドもWindows環境に限定されてしまうことになり

ますが、ADO以外にもComを利用した様々なWebサービスを提供できそうです。

 

準備

JavaでComの操作をするためのライブラリとしては、JCom(Java-COMブリッジ)

利用しています。まず、まずComを呼び出すためのNativeのライブラリ、jcom.dll

を、"java.library.path"上に配置します。jcom.dllは上記ライブラリに含まれます。

また、"java.library.path"の確認は、

System.getProperty("java.library.path")

で確認するか、または、

-Djava.library.path=

で設定します。

通常、SystemやSystem32がこれに含まれます。

次に、jcom.jarをライブラリパスに設定し、これでjavaからCOMの操作をする

準備の完了です。

 

サンプル

以下は、JCom経由でADOにてMSSQLServerに接続し、SQLを発行して

レコードセットを取得します。取得したレコードセットは、Saveメソッドにて、

ファイルに保存します(Saveメソッドの2つめの引数"1"がXML形式での保存を

意味します。

  ReleaseManager rm = new ReleaseManager();
  
  try {
   //ADOConnectionの作成
   IDispatch con = new IDispatch(rm, "ADODB.Connection");
      
   //ConnectionStringの設定
   con.put("ConnectionString", "Provider=Sqloledb;Data Source=(local)\\SQLEXPRESS;Initial Catalog=dbname;Connect Timeout=15;user id=sa;password=");

   //データベースへ接続
   con.method("Open", null);
   
   //SQLの実行
   IDispatch rs = (IDispatch)con.get("Execute", new Object[] {"SELECT * FROM 商品マスタ"});
   
   //XML形式で出力
   rs.method("Save", new Object[] {"C:\\excel.xml", 1});
   
   //解放
   rs.method("Close", null); 
   con.method("Close", null);
  }
  
  catch(Exception e) {
   System.out.println(e.getMessage());
   e.printStackTrace();
  }

  finally {
   rm.release();
  }