SHOEISHA iD

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

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

特集記事(AD)

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

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

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

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

スターン氏
モバイル、特に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の名前のもうひとつ由来をサイトでチェックしてみてください!)

参考資料

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

吉澤 亨史(ヨシザワ コウジ)

元自動車整備士。整備工場やガソリンスタンド所長などを経て、1996年にフリーランスライターとして独立。以後、雑誌やWebを中心に執筆活動を行う。パソコン、周辺機器、ソフトウェア、携帯電話、セキュリティ、エンタープライズ系など幅広い分野に対応。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング