この度、Mapbox Mobile Maps SDK v10.0.0-rc1(リリース候補版)がAndroidとiOSで利用可能になりました。最新のリリース候補版SDKでは、v10の強力でパフォーマンスに優れたモバイルマップ体験をGoogle PlayやApple App Storeの本番アプリに導入することができます。
v10のパブリックベータ版は1月に公開されましたが、それ以来パフォーマンスの最適化やインターフェースの安定化を行い、多くのバグを解消してきました。またパブリックベータ期間中には、1,000人以上の開発者にv10をダウンロードしていただきました。SDKの改善にご協力いただいた全ての開発者に感謝を申し上げます。
ベータ版リリースを見逃してしまった方向けに、v10で導入された機能を簡単にご紹介します。v10では、3D地形の表現やカメラシステムが導入されており、マップの表示方法が劇的に改善されています。また、KotlinやSwift、iOS Metalへの対応による基盤の刷新、コアのレンダリング速度を改善するパフォーマンスの向上などが実装されました。さらに、ライフサイクルにおける定型文の削減や、エラー処理の改善、マップのスタイルをさらに簡単に扱うことができる新しいドメイン固有言語(DSL)の導入などにより、開発者の体験も向上しています。その他、v10の詳しい機能については以下の記事、もしくはプロダクトページをご覧ください。
v10の機能はパブリックベータのリリース時からさらに進化しています。パブリックベータ期間中の最後の週には、新しいオフラインキャッシュシステムとレンダーキャッシュシステムが導入され、パフォーマンスが大幅に向上しました。
1. 新しいレンダーキャッシュで描画処理を大幅削減
マップをレンダリングする際には、全フレームにおいて描画するため、多くの処理を必要とします。v10の新しいレンダーキャッシュは、ドローコール(描画処理の呼び出し)の結果をテクスチャとして保存し、動的なレンダリングと既存のキャッシュされた結果の活用をシームレスに切り替えることで、描画処理の量を大幅に削減します。これにより、特に複雑なスタイルを描画する場合、レンダリングの精度や品質を落とすことなく、CPUとGPUの付加的な処理を大幅に削減できます。
この新しいレンダーキャッシュによる効果は、上のビデオで紹介しているMediaTek Helioを搭載したタブレットのようなローエンドのAndroidデバイスで最も顕著に現れます。しかし、高速なデバイスを使用しているユーザーも、バッテリー駆動時間や処理能力において、新しいレンダーキャッシュの効果を感じることができます。
新しいレンダーキャッシュは、全てのAndroidシステムで利用することができ、以下のシンプルなコードのみで有効化することができます。
2. 新しいオフライン機能でダウンロード時間を大幅に短縮
Mapbox Mobile Maps SDKには、以前からオフライン機能が搭載されています。オフライン機能では、事前に地図データをダウンロードしておくことで、インターネットに接続されていない場所でもマップを閲覧することができます。しかし、この機能は強力な反面、ダウンロードに時間がかかります。 地図データをタイル単位でダウンロードすると、膨大な数のリクエストが発生し、付加的な処理やネットワークエラーの原因になります。
v10では、ベクタータイルのセットをより効率的な形式に統合したタイルパックを使用することで、オフラインで利用する地図データ取得におけるリクエスト数を減らすことができました。これにより、ネットワークの付加的な処理が減り、ダウンロード時間が大幅に短縮されました。
回線の速度が速いほど、またダウンロードするマップ上の領域が広いほど、ダウンロード時間の短縮は大きくなります。以下の画像では、ヒューストン周辺でダウンロードするエリアのサイズを変え、ズームレベル0〜16をWi-Fiでダウンロードした場合のダウンロード時間を比較した結果を表示しています。
iOSおよびAndroidにおける新しいオフラインシステムの使用方法については、ドキュメント( iOS / Android )をご覧ください。なお、従来型のタイルソースでは、古いバージョンのオフラインシステムが利用できます。
早速使ってみましょう!
Mobile Maps SDK v10は、ユーザーに対してはさらに美しくパフォーマンスの高いマップを、開発者に対しては素晴らしい開発体験を提供します。 さらに詳しい情報は、v10のプロダクトページにアクセスし、スタートガイド、移行ガイド、APIドキュメントをご覧ください!