ネイティブ開発とWeb開発の方向性

ネイティブ開発とWeb開発の方向性

iPhone向けのアプリケーションには、ネイティブ・アプリケーションとWebアプリケーションがあります。後者の「Webアプリケーション」は、搭載ブラウザのSafariで稼働するタイプものを差しており、サーバー・アプリケーションということでありません。iPhoneの世界ではそういうものを「Webアプリ」ということが多いので、本稿でもその用語を使うことにします。

Webアプリについては、基本的にはHTML/CSS/JavaScriptといった仕組みで作るので、iPhoneだからという特殊性はあまりありません。画面サイズと入力デバイスの違いに気をつけるのが基本ですが、iPhone独自の仕様をうまく取り込むとより最適化されます。

例えば、画面幅、拡大縮小の動作、回転したときの動作、iPhone特有のイベントの処理を組み込みます。他の環境と共通に使うとなると特別な仕組みの組み込みは考えどころでもありますが、iPhone特有の機能はそんなに多くはありませんので、Appleの「Safari Dev Center」のサイトなどでチェックをしておくことをお勧めします。

このWebアプリは、iPhoneがアメリカで発売された2007年から使える手法で、Appleは主としてセキュリティ的な理由を掲げてネイティブ・アプリケーションの開発はできないようにしていました。しかしながら、2008年にSDKをリリースし、App Storeでの配布が始まった事で爆発的なブームになったことは記憶が新しいでしょう。

もちろん、ネイティブでないと作れないアプリケーションがあるのは確かですが、Webアプリへの注目が少ないのはなぜでしょうか。いろいろ理由はあるとしても、大きいのはApp Storeへの登録の有無があります。とりわけ、App Store開設当初だと、掲載すること自体がそれなりに目立ったので、不特定多数への配布には有利です。現状はもはや登録アプリが多いのでそういうメリットは少ないかもしれません。そして、業務アプリではWebアプリである方が都合がいい場合は多々あるでしょう。

まずはネイティブかWebかを考える

業務ソフトの場合、どういう順番でプランが立つかはケース・バイ・ケースですが、iPhoneで行くぞということになったら、次に考えるのはWebアプリなのか、ネイティブ・アプリなのかです。Webアプリのメリットはなんと言ってもクライアントに配布しなくてもいいという点で、管理の軽減があります。その一方で、機能制約がありますし、一番大きなポイントは通信が切れた場合に一切利用できなくなってしまうところです。

ネイティブ・アプリの場合は常に利用できるのがメリットですが、業務アプリではサーバにあるデータベースを使うことが恐らく前提になるので、通信が使えないときのケアは作り込む必要があり、それも単純には済まない場合もあるでしょう。いずれにしても、一長一短があり、慎重に結論を付けたいところです。本稿では、ネイティブ・アプリケーションとして作ることにします。しかしながら、Webアプリも作成できることは検討事項として忘れないようにしましょう。

ネイティブ・アプリケーションのことはこれからたっぷりと説明するので、Webアプリケーションの開発について簡単に解説しておきましょう。HTML/CSS/JavaScriptなので、もちろんエディタでも開発できますし、Eclipseなどでも開発は可能です。HTMLなどの開発結果をサーバーに置くでしょうから、iPhone実機上で都度都度デバッグするというやり方も可能です。

一方、Appleからは「Dashcode」というWebアプリケーションの開発ソフトがリリースされています。ページの開発を、コンポーネントを並べて行くようにできるというのがまずは1つのメリットとして挙げられます。

また、JavaScriptやCSSのライブラリが用意されていて、例えば処理中を示すぐるぐる回るギアのようなオブジェクトをドラッグするだけで使えるようになるなど、スクラッチから作る場合に大変な作業も、ある程度は軽減されます。そして、iPhoneシミュレータで動作させてのデバッグも可能です。

Dashcodeでの開発はもちろん検討すべきで、一度は使ってみる事はお勧めします。ただし、生成されるHTMLなどがちょっと独特なので、普段はコードを手で書いている人ほど戸惑うところは多いかもしれません。Dashcodeでラフに作って後はコードに手を入れるというのも、構成が複雑でやや大変です。まだまだこういったあたりもノウハウの蓄積が必要な段階です。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30