SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事(AD)

ついにCurlでモバイル開発が可能に!
ワンソース・マルチユースのモバイル開発環境「Caede」

  • このエントリーをはてなブックマークに追加

 2011年11月28日、Curlのモバイル開発環境のプレビュー版「Caede」が公開された。Caedeは、様々なモバイルに対応するクロスプラットフォーム開発環境で、Curl言語のみでスマートフォンとPCの両アプリケーションを開発できる「ワンソース・マルチユース」をコンセプトとしている。今回は、Caedeプロダクトチームを統括している岡田 一志氏、UI部分を担当した小段 政樹氏、カール ウィリアム スターン氏、ロジック部分を担当した菅原 洋介氏、福田 祥貴氏に、Caedeの概要や特徴、今後の展開などについて伺った。

  • このエントリーをはてなブックマークに追加

デスクトップの『Curl』とモバイルの『Caede』

Caedeの概要について教えてください

岡田氏
Caedeは「Curl Application Export Development Environment」の略称で、Curl言語のみでモバイルアプリケーションを作成できる統合開発環境です。Caedeには、Curl言語で開発されたソースからモバイルモジュール(HTML5、CSS、JavaScript)を生成するためのトランスレータ、フレームワーク、ライブラリ、そしてEclipseプラグインが用意されています。

Caedeで開発したアプリケーションは、モバイルデバイス上でハイブリッドアプリケーションとして動作します。Curlアプリケーションと同じように画面や画面遷移、ビジネスロジック、Webサーバとの対話などが実現でき、さらにモバイル特有のローカルストレージや、カメラ、GPSなどのデバイスとの連動処理なども含めて実現することを目的としています。
 

モバイルへの対応はどのように実現しているのでしょうか

岡田氏
Curlにはそもそもクロスプラットフォームというコンセプトがありますが、現在はデスクトップのみが対象です。しかし、iPhoneやiPad、Androidといったモバイルデバイスの企業利用が増えてきていることから、モバイルへの対応は常に意識していました。

Curlをモバイルデバイスへ対応するには、いくつかのアイデアがありました。例えば、iOSやAndroidにランタイムという形で対応する方法、あるいはWebViewのようにAndroidやiOSネイティブではなく、JavaScriptで動かす方法などです。Caedeでは、後者の仕組みを採用しました。

モバイルの各プラットフォームに対応するには、製品の種類が多岐にわたるうえ、バージョンアップも頻繁です。そこで、すべてのプラットフォームで動く、Google Web Toolkitのように、Curlで書いたプログラムをコンパイルするとHTMLやJavaScriptを直接書かずに、モバイルアプリケーションを作成できる環境を作ろうと考えました。これにより開発者は、Objective CやJavaなどの各プラットフォームに併せた言語を覚える必要はなく、Curl言語だけでモバイルアプリケーションを開発できるようになります。
 

Caedeのコンセプトについて教えてください

岡田氏
Curlは、エンターテインメントおよびエンタープライズが中心となっています。最終的にはゲームよりもエンタープライズのビジネス向けにフォーカスすることを目的としています。そのため、今あるCurlとコラボできるツールとしてCaedeが使えればと考えています。現時点のプレビュー版では、まずモバイルで動くことを第一にしていますが、将来的には、基幹システムや業務システムはデスクトップ環境でCurlを使用し、モバイルに対応する部分でCaedeを補助的に使用していただくという方針です。

デスクトップのCurlとモバイルのCaede、そのバックエンドの仕組みを共通化することで、どちらの環境でも同じサービスを使うことができるのは大きなメリットです。ただ、Curlには大量データのハンドリングが得意という特長がありますが、それがモバイル上でニーズがあるのかどうかはまだ不透明です。そのため、モバイルのCaedeでは、日報システムや見積システム、あるいはグループウェアなどを、営業担当の方が手軽に持ち歩けるものとしての利用方法などを想定しています。ほかにも工場の在庫管理、またタブレットなどでお客様に製品やサービスの説明を行うといった、小売店などでの用途にも対応したいと考えています。

既にCurlを使用している企業にとってはより導入しやすく、また業務システムをモバイルで手軽に利用できるという点を生かし、未導入の企業に対しても新しい提案をしていきたいと考えています。
 

デスクトップとモバイルの双方に対応できる総合力

Caedeの競合製品と、それらに対する強みを教えてください

小段氏
まず、ひとつの言語で完結するという点が挙げられます。従来の手法では、HTML5やCSS3、JavaScriptなど、様々な言語の習得が必要になり、最先端の技術をすべて取り入れようとするとハードルが高くなってしまいます。CaedeとCurlなら、Curl言語だけでデザインおよび画面・ロジックの開発ができるため、学習面でのハードルやコストも抑えることができます。
 
福田氏
開発者視点でいえば、例えばJavaScriptは動的な言語で、デバッグしづらいという面があります。特にボリュームのあるアプリケーションを作るときには、設計のしやすさに限界があります。一方、Curlは静的な言語であり、Javaと同じようにクラスの設計ができます。また、IDEなどを使って生産性をサポートでき、開発者にメリットがある言語といえます。
 
菅原氏
Curlの統合開発環境である「CDE」も、今後Caedeに対応していきます。CDE上にも、Caedeでアプリケーションを作る際にサポートする機能も搭載する予定です。専用ツールによりデバッグもしやすく、生産性の向上が見込めるでしょう。
 
岡田氏
また、Caedeにはエミュレータを搭載する予定であり、ツール内でAndroidとiOS双方の実機での表示を確認することができます。開発から検証までWindows上で完結できることも、メリットといえるでしょう。
 
スターン氏
現在、HTML5が次世代インターネットといわれていて、開発にはCSSやJavaなども関連してきます。モバイル開発では、メインのエリアとして画面を作るという作業があります。画面にはいくつもの要素があって、それぞれのファイルをいじっていく必要があります。そのためのツールもありますが、HTMLではまだまだ難しく、開発コストがかさむ要因になっています。Curlでは、画面を作成する様々な要素をひとつで完結できるようにしていきたいと考えて開発しています。
 
岡田氏
モバイル開発には様々な製品があり、どういう環境がいいかユーザーが迷っている状態だと思います。これはちょうど、RIAが出てきた時ど同じような状態だと感じています。業務システムを作る際、いくつかの技術を組み合わせなければならない、様々なことを覚えなければならないというのは開発者の負担も大きくなってしまいます。こうした開発をひとつのプラットフォームで実現できるという製品はよくありますが、Caedeではプラットフォームだけでなく、言語もひとつ学ぶだけで済みます。
 

プレビュー版でコンセプトを伝え、ユーザーの要望を吸い上げたい

モバイル対応で苦労した点を教えてください

スターン氏
モバイル、特にAndroidは変化が速く、デバイスが次々に出てきています。OSのバージョンアップも頻繁で、Android 2.xだけでも複数のバージョンがあり、続いて3も4も出てきています。多様なプラットフォームに加え、デバイスの個体差もあるので、機種によってアップデートできるのかどうかなどの差異を把握するだけでも大変でした。さらに、既存のバグや独特の動作もあり、それをカバーするためのフローは常に意識する必要がありました

画面表示に至っては、デバイスによって解像度が違ううえ、OSのバージョンやブラウザのバージョンにより、1ピクセルだけの違いが発生するということもありました。今後もより力を入れて対応していくべき課題です。

Caede プレビュー版(※Androidのみ対応)
Caede プレビュー版(※Androidのみ対応)
 
小段氏
画面周りはユーザーがもっとも目にする部分だけに、一番クレームの出るところでもあります。これまではデスクトップ環境が対象で、画面が広く自由度も高かったですが、モバイルではボタンの大きさひとつとっても、微妙に小さくて押せないということもありました。最適なデフォルトのサイズを決めるまで、何度もトライ&エラーを繰り返しました。

また、最近のモバイル向けアプリやWebサイトに表示されているアイコンなどは、グラデーション表示になっていたりととてもリッチに表現されています。Caedeでは、UIにもこだわって作成し、モバイルとデスクトップの見た目の差異などもなくしていきたいと考えています。
 
菅原氏
ロジックのトランスレータは、CPA(Curl Program Analyzer)というCurlのプログラムアナライザーで解析したCurlの構文をJavaScriptにトランスレートする仕組みなのですが、言語仕様がまったく違うところは苦労しました。Curlには、便利な機能がたくさん盛り込まれており、使わなかった、あるいは知らなかった機能にも改めて気付かされました。

CurlのソースコードをそのままJavaScriptに落としても、それが必ずしも最適なものではない可能性があります。例えば、JavaScriptを配列に入れて関数呼び出しをするような場合、Curlでは複数の戻り値が出てくるようなものは1個目の値だけ自動的に取り出して四則演算に使います。また、JavaScriptとCurlではスコープが違うため、Curlをそのまま出力してしまうと変数名がコンフリクトし、動きが変わってしまうという問題もありました。トランスレータには、これらの問題を回避するための仕組みを組み込んでいます。
 
福田氏
同じく、言語仕様の違いには悩まされました。トランスレートされたJavaScriptのコードを受け取って動かせるようにするライブラリを作っているのですが、言語仕様の問題は大きいです。基本的に今回はJavaScriptでプログラムを動かすというアーキテクチャを採用しています。Curlの言語仕様をある程度実現するため、数値の精度の違いやクラス継承の有無などを吸収する部分を作り込むのが大変でした。Curlに用意されている豊富なAPIも、限定的ですがCaedeはひと通り対応しています。もはやこれは移植作業だと思いました。
 
岡田氏
今後は、Curlで書いたものを、ボタンひとつで、AndroidやiOSなどの実行コードを生成できるようにしたいと思います。なお、GPSや加速度センサー、カメラといったモバイルデバイス特有の機能も盛り込んでおり、その部分は、ネイティブなJavaやObjective-Cで実装し、CurlのAPIで呼び出すことができるようにしています。

また、モバイルアプリケーションは、Webアプリケーションとアーキテクチャが違い、多くのロジックをモバイル上で実行する点からクラサバに近いと考えています。現在のWebアプリケーションは、JavaScriptで実装している部分は、入力チェック程度の実装というケースが多く、JavaScriptで多くのコードを実装することにそこまで慣れているエンジニアがすべてだとは考えておりませんので、Curl言語というニッチ言語ではありますが、言語仕様はJavaなどにも近い点があり、PhoneGapなどのJavaScriptでモバイルアプリケーションを開発するツールと比べても優位点はあると思います。

将来的には、デスクトップもモバイルも同じフレームワーク、同じ作り方でアプリケーションを開発できるように統合したいですね。フレームワークやライブラリ・開発環境をもっと洗練させて、美しい見映えや操作性といったユーザビリティも実現していきたいです。
 

Caedeのアピールポイントを教えてください

岡田氏
Caedeを使ったアプリケーションという点では、見た目がリッチになるという点が一番わかりやすいと思います。また、開発者側の側面からは、学習コストが低く開発環境も実際に試すことができるため取り組みやすいことと、作業負荷が減ること、堅牢なCurlならではの信頼性が高いアプリが作成できることなどが挙げられます。今後は、サポートも充実させていく予定です。

リッチな見た目を表現できるCaede
リッチな見た目を表現できるCaede
Caedeは現状、開発環境として使うべきか、業務システムのフロントに向いているのかなど、モバイルで使用する想定でどこまで切り出すべきか、実は私達も明快な解が出ていない部分もあります。そこでプレビュー版でコンセプトを伝え、たくさんの人に実際に使っていただき、ニーズを拾っていきたいと考えています。Curl Global Communityでフィードバックを受け付けているので、どんどん欲しい機能を挙げていただきたいです。

現在、CaedeとCDEのベータ版をダウンロードはこちらから可能です。また、スタートアップのためのガイド「Getting Started」を見ていただければ動かすことができると思います。GUIやライブラリも用意しています。さらに「Curl Developer Center」にはAPIやリファレンスなど細かい情報がありますし、コミュニティでも様々な情報を出していきます。

そのほか、オンサイトでセミナーも開催します。Curlを知らなくても使い方の基本や作法、フレームワークやGUIの扱いも理解できると思います。eラーニングなども用意しているので、ぜひご参加ください。
 

最後に、今後のスケジュールについて教えてください

岡田氏
今回リリースしたプレビュー版でユーザーの要望を集約し、次のリリースで必要機能を追加したベータ版を作成、バグフィックスしたのち製品版という流れになります。サービス面やライセンス、サポートは未定ですが、Caedeを試せる環境は常に提供します。共有ライブラリも、基本的な構文やAPIを含めるだけでなく、要望に沿った内容を追加していければと思います。また将来的には、MDM(モバイルデバイス管理)との組み合わせも考え、セキュリティ面の強化や、ソリューションとして提供することも意識しています。業務系アプリの開発者が抱えるであろう課題に、私たちはこれからも取り組んでいきたいと考えています。
 

ありがとうございました

 Curlでは現在、モバイル開発環境「Caede」プレビュー版のリリースを記念し、キャンペーンを開催している。Caedeをダウンロードすると、Curlをオンラインで学習できるE-Learningツール「Curlベーシックコース(定価30,000円)」のアカウントを無料で取得でき、60日間いつでもどこでもCurlを学ぶことが可能だ。キャンペーン期間は2012年1月10日から3月31日まで。詳細は、キャンペーン専用サイトを参照いただきたい。

 また、Caedeを実際に使用したモバイルアプリ開発チュートリアル記事も公開されている。Caedeのインストールから、サンプルアプリをエミュレータ上で動かすまでの一連の流れが詳細に書かれているので、ぜひ一読してほしい。

Caedeのダウンロードはこちら
(Caedeの名前のもうひとつの由来をサイトでチェック!)
Caedeのダウンロードはこちら(Caedeの名前のもうひとつ由来をサイトでチェックしてみてください!)

参考資料

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6345 2012/02/02 16:28

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング