GSMAがリリースしたスマートフォン向けアプリ開発に関するガイドラインを読んでみた。
GSMA、スマートフォン向けアプリ開発に関するガイドラインを発表 – WirelessWire News(ワイヤレスワイヤーニュース)
GSM Association(GSMA)は2月27日(現地時間)、MWC 2012開催中のバルセロナにて、スマートフォン向けアプリケーションの開発に関するガイドライン「Smarter Apps for Smarter Phones」を発表した。
NTTドコモが、1月に起こしたSPモードの障害の原因として、Androidに搭載されているアプリの制御信号の多さについて指摘し、今後GSMAでの活動を通して対策を検討していくと発表していました。
ドコモ、アプリ会社にネットワークへの配慮を「お願い」 通信障害対策の一環 – ITmedia ニュース
実は、ドコモが指摘するよりも以前に、海外ではノキアシーメンスがAndroidのシグナリングの多さを指摘していたりして、海外ではそれなりに話題になっていたり。
Light Reading Mobile – 4G/LTE – NSN: Android & RIM Are Signaling Bad Boys – Telecom News Analysis
Google (Nasdaq: GOOG)’s Android and Research In Motion Ltd. (RIM) (Nasdaq: RIMM; Toronto: RIM) have not answered operators’ calls to support a standard in their smartphones that will reduce the signaling load on mobile networks, according to recent tests conducted by Nokia Siemens Networks .
そんなこともあってか、GSMA(GSM Association)がMWC2012にてスマートフォン向けアプリケーションの開発に関するガイドライン「Smarter Apps for Smarter Phones」を発表しました。
ドキュメントは以下からダウンロードが可能です。
Documents(PDF)
ドキュメントを5章で構成されています。
ネットワーク周りの話は「2章 Network friendliness」と「3章 Ideal mobile application」に記載がありましたので、ポイントになりそうな点を要約してみました。
2.1 Requirements and constraints in mobile broadband
■ Limited bandwidth: The available bandwidth for mobile networks may vary depending on the geographic coverage and the underlying technologies used. On average it is lower than a Wi-Fi connection. In addition, when the mobile consumer is on the move, the bandwidth can dynamically step up or down
■ Data is not always free: Outside monthly allocations and bundled price plans, mobile data usage can be expensive particularly when roaming. This can mean high bills for users
■ Battery life: Mobile terminals are a miniaturised feast of technologies powered by a battery. When in full operation, the battery runs a processor with an active screen and data communication over the mobile network. Transferring large amounts of data puts the radio access into high drive mode. Add an active colour screen and the battery can drain in just a few hours. Considered use of the network, screen and processor resources when designing an app can dramatically improve battery life
■ Network connectivity: Mobile networks cannot by nature guarantee reliable connectivity at all times. Blind coverage spots, the limitations of deployed technologies, switching between cells, or moving in heavily built-up areas, can all result in lost data packets, increased latency, reduced network speed, and connectivity interruption
■ Security: Users do not always have direct control over their choice of wireless access networks. They can be connected to public Wi-Fi hotspots or in extreme cases even to spoofed networks, so privacy can be compromised or identity stolen. Authentication, secure protocols and a cautious approach to content transmission should be adopted by all developers
2.1 モバイルネットワークにおける要件と制約
- 限られた帯域幅
モバイルネットワークはWi-Fiよりも低速であり、地域や場所によってモバイルの帯域は大きく変動する。 - データは常に無料ではない
モバイルは使い放題と限らず、従量課金であったり、通信料に制限がある場合もある。 - バッテリーの寿命
データ通信時には急速に消耗する。カラー画面を表示させながら通信すると数時間で放電する場合もある。 - ネットワーク接続
信頼性や安定性は高くない。場所によっては圏外になったり、パケロス、遅延なども起きる。 - セキュリティ
フリーのWi-Fiスポットに接続している場合もあり、盗聴されている可能性もある。開発者は認証や安全なプロトコルを採用し、慎重にアプローチしていくことが重要。
「3章 Ideal mobile application」には、接続が切断された場合の対処についても記載されています。
If the request is not user initiated then error notification can be either non-modal with a retry option or not shown at all. However, if the request is scheduled and repetitive, then it would make sense to change the interval dynamically to avoid re-establishing connections too frequently during network loss over a long period of time. Recommended retry intervals are one minute, then five minutes, and then 15 minutes. More frequent retries will drain the battery rapidly.(スライド33ページ)
「通信断が発生した場合のリトライ間隔は、1分後、5分後、15分後にリトライすることを推奨する。」
In order to maintain connections in VoIP applications, iOS provides a mechanism to set a keepalive handler with setKeepAliveTimeout:handler: on UIApplication, which will be called automatically by the system. The minimum interval is 10 minutes, however, Apple recommends using 29 minutes which seems to be the most optimal for maximising battery life.(スライド72ページ)
「KeepAliveの間隔は10分以上を推奨する。ちなみにAppleは29分を推奨としている。」
このガイドラインが活用されるのは、もう少し先になるのでしょうが、今後の動向に注目していきたいと思います。