SHOEISHA iD

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

連載記事

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

CodeZine BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。

書籍に関する記事を見る

'); googletag.cmd.push(function() { googletag.pubads().addEventListener('slotRenderEnded', function(e) { var ad_id = e.slot.getSlotElementId(); if (ad_id == 'div-gpt-ad-1659428980688-0') { var ad = $('#'+ad_id).find('iframe'); if ($(ad).width() == 728) { var ww = $(window).width(); ww = ww*0.90; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/728+","+ww/728+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/728+","+ww/728+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/728+","+ww/728+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/728+","+ww/728+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(90*ww/728)+"px;width:"+728+"px;}", 0 ); } else { if ($(window).width() < 340) { var ww = $(window).width(); ww = ww*0.875; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/320+","+ww/320+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/320+","+ww/320+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/320+","+ww/320+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/320+","+ww/320+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(180*ww/320)+"px;width:"+320+"px;}", 0 ); } } } }); }); } else { document.write('
'); document.write('
'); }
HTML5で作る! 次世代スマートフォンOS「Tizen」アプリケーション

Tizen SDK 2.2の変更点・注意点と、カメラアプリの作例

HTML5で作る! 次世代スマートフォンOS「Tizen」アプリケーション(2)

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

 TizenをはじめとするWebベースのスマートフォンOSの登場で、スマートフォンアプリ開発のあり方が今後大きく変わっていくかもしれません。Tizenは、今冬に日本でも端末の発売が予定されています。本連載では、HTML5関連技術を使ってTizen向けのスマートフォンアプリを開発するための手法を、豊富なAPIの紹介とサンプルアプリの制作を通じて先取りしていきたいと思います。第二回目の本稿では先日バージョンアップがあったTizen SDK 2.2の変更点の解説と、実際に簡単なカメラアプリをソースコードを交えながら解説していきたいと思います。

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

Tizen SDK 2.2のリリース

 7月末、TizenSDKの2.2のリリースが行われました。主な変更点としては、ハードウェアキー(BackキーとMenuキー)のサポート、Webアプリのセキュリティ設定の強化、Tizen UI Frameworkのデザインの刷新、IDEの機能充実、他APIの機能追加などが挙げられます。

 今回のアップデートの位置づけとしては、総額400万ドルのTizenアプリコンテストについての応募用の正式な開発環境として準備されました。このアプリコンテストはTizenストアに登録することが前提となるので、つまり今バージョンがTizenストアオープン時の最初のプラットフォームバージョンということになります。

 Tizenが端末として最初に発売される国は日本、フランス、アメリカ、中国、ロシアの五か国に限られています。そのため、このコンテストで日本発のアプリの活躍が期待されています。応募締め切りは11月1日となっているので、これから始めてみようと思っている方もぜひ参加を検討してみてください。

 さて、Tizen SDK 2.2の内容について、この章ではインストール、もしくはアップグレードについての注意点とWebアプリのセキュリティ強化について解説します。

インストールの注意点

 2.2から新しくSDKをインストールされる方に向けて、インストールでつまずきやすい箇所について述べておきます。また、さらに詳しい動作環境については、「Tizen SDKの前提条件」のページで確認できます。

 まず必要な環境として、各OS向けのJava JREもしくはJDKの1.6以上(Oracle純正のJava推奨)が挙げられます。さらにMac OSの場合、ネイティブアプリ開発をするためのコンパイル環境として、CommandLineToolsのインストールも必要になります。下記のURLからCommandLineToolsをインストールしてください。

 また、Mac OSでインストールマネージャーが起動できないという人は、システム環境設定の[セキュリティとプライバシー]の[一般]タブの下部[ダウンロードしたアプリケーションの実行許可]の項目を[すべてのアプリケーションを許可]にしてみてください。

 Windows 8(特にインストールに失敗する64bit)については残念ながら依然サポートは表明されてはいませんが、ここで非公式にインストールする方法を紹介します。通常通りダウンロードした実行ファイルを起動するとプログラムが強制終了しますが、その後、一時ファイルが作成されているフォルダ[(ユーザフォルダ)\AppData\Local\Temp\tizensdk_(日時)]をコマンドプロンプトで開き、[javaw -jar InstallManager.jar]を実行すると本来のインストーラが立ち上がります。あとは画面のガイド通りにインストールを進めていくことができます。

 Windows環境でプロセッサーがIntelベースのものではない場合、Tizenエミュレータを仮想化支援技術(Intel Vt-x)により高速動作させるためのツール「HAXM」のインストールができなくなりますが、エミュレータのHWアクセラレーションがオフになる以外については正常にSDKを使うことが可能です。

 すでに2.1や2.2 Betaをインストール済みの人は、インストール済みのプログラムからinstallManagerを起動し、一度古いバージョンのSDKをアンインストールしてください。

 アップグレード後のIDEの起動画面はそれ以前のものと変わらないですが、アップグレードした場合にはConnectionManagerなどの一部の画面項目が隠れてしまっていることがあります。その際には[Preferences]-[ResetPerspective]を選択して画面構成を一度リセットすることで、本来の画面レイアウトが復帰します。

Webアプリケーションのセキュリティ設定の強化

 Webアプリのセキュリティ設定の強化として、FirefoxやChromeで利用され、W3Cでの策定もされているContent Security Policy 1.0が採用されました。これによって端末で表示、実行可能なリソースを種類に分けてドメイン指定できるようになりました。具体的にはJavaScriptソースが実行できるドメイン、CSSだけをインポートするドメイン、画像だけをダウンロードするドメインなど指定できるようになります。

 具体的には何も入力をしていない状態だと、下記のような状態になっています。

default-src '*'; script-src 'self'; style-src 'self'; object-src 'none';

 これはそれぞれ、下記の表のような具合に動作します。

default-src '*'; 基本的にはすべてのドメインのリソースの実行を許可する
script-src 'self'; ただしScriptに関してはアプリ内のリソースのみとする
style-src 'self'; Style(CSS)についてもアプリ内のリソースのみとする
object-src 'none'; objectタグについては実行を許可しない

 ここでJavaScriptをインターネット上からインポートして実行したい場合は、

script-src 'self' http://cdnjs.cloudflare.com/;

といった風に指定していきます。CSPについては、提唱元であるMozillaのサイトで詳しい解説を読むことができます。

 また、アプリケーション自体のURL遷移をドメインで制限するallow-navigation設定も追加されました。ここでドメインを制限することで、アプリ内で任意のAタグのリンクなどを開いた場合に、許可されたドメイン以外のアドレスであった場合はアプリ内でなく外部ブラウザで表示されるようになります。

 CSPとallow-navigationは、config.xmlのPolicyタブで設定することができます。前バージョンまでのAccess設定とCSP設定を同時に設定すると、ビルドが失敗することに注意してください。

会員登録無料すると、続きをお読みいただけます

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

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

メールバックナンバー

次のページ
サンプルアプリ:どんなアプリ?

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
HTML5で作る! 次世代スマートフォンOS「Tizen」アプリケーション連載記事一覧

もっと読む

この記事の著者

松園 勝喜(ピーシーフェーズ株式会社)(マツゾノ カツキ)

組み込み系エンジニア時代は携帯電話を使った研究開発に取り組む。ピーシーフェーズ入社後は、各種モバイル向けアプリのサーバーサイドを主に担当する傍、クライアントサイドの開発も担当。

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

橋本 悟(ピーシーフェーズ株式会社)(ハシモト サトル)

ピーシーフェーズにて、モバイル向けの各種アプリケーション開発やサーバーサイド開発を担当。主に受託開発を行いながら新規技術の調査開発などにも従事

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7343 2013/09/04 14:00
" ); }

おすすめ

アクセスランキング

  1. 1
    ガントチャートをWebアプリに組み込める「ガントシート」でプロジェクト管理機能を作成してみよう NEW
  2. 2
    1/10まで全文無料公開、人気の入門書シリーズ『いきなりプログラミング Androidアプリ開発』
  3. 3
    新しいクエリ言語「Wvlet 2024.9」リリース、SQLを現代のデータ分析向けに再設計 NEW
  4. 4
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  5. 5
    静岡のPythonカンファレンス「PyCon mini Shizuoka 2024 continue」が2月8日に開催 NEW
  1. 6
    生成AIでは対応が難しい検索もある? Elasticsearchが語るこれからの「検索」のポイント NEW
  2. 7
    ライフステージが変われば目指すキャリアも変わっていく?──仕事と育児、どちらにも無理なくフィットした環境を手に入れるには NEW
  3. 8
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  4. 9
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  5. 10
    Cloudflare、HTTP/3のテストとデバッグ用ツール「h3i」をオープンソース化 NEW

アクセスランキング

  1. 1
    ガントチャートをWebアプリに組み込める「ガントシート」でプロジェクト管理機能を作成してみよう NEW
  2. 2
    1/10まで全文無料公開、人気の入門書シリーズ『いきなりプログラミング Androidアプリ開発』
  3. 3
    新しいクエリ言語「Wvlet 2024.9」リリース、SQLを現代のデータ分析向けに再設計 NEW
  4. 4
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  5. 5
    静岡のPythonカンファレンス「PyCon mini Shizuoka 2024 continue」が2月8日に開催 NEW
  6. 6
    生成AIでは対応が難しい検索もある? Elasticsearchが語るこれからの「検索」のポイント NEW
  7. 7
    ライフステージが変われば目指すキャリアも変わっていく?──仕事と育児、どちらにも無理なくフィットした環境を手に入れるには NEW
  8. 8
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  9. 9
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  10. 10
    Cloudflare、HTTP/3のテストとデバッグ用ツール「h3i」をオープンソース化 NEW
  1. 1
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  2. 2
    「CUDA」 ~マンガでプログラミング用語解説
  3. 3
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  6. 6
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  7. 7
    Google、社内AIエージェント「Google Agentspace」発表
  8. 8
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース
  9. 9
    テストは増え続ける、でもボトルネックにはできない──テスト効率化の2つのカギを朱峰 錦司氏が解説!
  10. 10
    管理職の24.1%、今後管理職を「続けたくない」と回答。理由は「責任やストレス」が最多に

イベント

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

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

メールバックナンバー

アクセスランキング

  1. 1
    ガントチャートをWebアプリに組み込める「ガントシート」でプロジェクト管理機能を作成してみよう NEW
  2. 2
    1/10まで全文無料公開、人気の入門書シリーズ『いきなりプログラミング Androidアプリ開発』
  3. 3
    新しいクエリ言語「Wvlet 2024.9」リリース、SQLを現代のデータ分析向けに再設計 NEW
  4. 4
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  5. 5
    静岡のPythonカンファレンス「PyCon mini Shizuoka 2024 continue」が2月8日に開催 NEW
  1. 6
    生成AIでは対応が難しい検索もある? Elasticsearchが語るこれからの「検索」のポイント NEW
  2. 7
    ライフステージが変われば目指すキャリアも変わっていく?──仕事と育児、どちらにも無理なくフィットした環境を手に入れるには NEW
  3. 8
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  4. 9
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  5. 10
    Cloudflare、HTTP/3のテストとデバッグ用ツール「h3i」をオープンソース化 NEW

アクセスランキング

  1. 1
    ガントチャートをWebアプリに組み込める「ガントシート」でプロジェクト管理機能を作成してみよう NEW
  2. 2
    1/10まで全文無料公開、人気の入門書シリーズ『いきなりプログラミング Androidアプリ開発』
  3. 3
    新しいクエリ言語「Wvlet 2024.9」リリース、SQLを現代のデータ分析向けに再設計 NEW
  4. 4
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  5. 5
    静岡のPythonカンファレンス「PyCon mini Shizuoka 2024 continue」が2月8日に開催 NEW
  6. 6
    生成AIでは対応が難しい検索もある? Elasticsearchが語るこれからの「検索」のポイント NEW
  7. 7
    ライフステージが変われば目指すキャリアも変わっていく?──仕事と育児、どちらにも無理なくフィットした環境を手に入れるには NEW
  8. 8
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  9. 9
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  10. 10
    Cloudflare、HTTP/3のテストとデバッグ用ツール「h3i」をオープンソース化 NEW
  1. 1
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  2. 2
    「CUDA」 ~マンガでプログラミング用語解説
  3. 3
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  6. 6
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  7. 7
    Google、社内AIエージェント「Google Agentspace」発表
  8. 8
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース
  9. 9
    テストは増え続ける、でもボトルネックにはできない──テスト効率化の2つのカギを朱峰 錦司氏が解説!
  10. 10
    管理職の24.1%、今後管理職を「続けたくない」と回答。理由は「責任やストレス」が最多に