プロダクト

【新バージョンリリース】パフォーマンスの向上とSwiftとKotlinによる開発の高速化|Mapbox Mobile Maps SDK v10 正式版

2021
11
22

この度、Mapbox Mobile Maps SDK v10の正式版リリースを開始し、すべてのMapboxユーザーにご利用いただけるようになりました。

このリリースは、将来のモバイルSDKの基盤となります。以下のような、主要なアーキテクチャの変更が導入されています。

  • レンダリングパイプライン最適化によるパフォーマンス向上
  • 2Dから3Dマップへの完全移行
  • 新しいオフライン機能でダウンロード時間を大幅に短縮
  • 帯域使用量を最大18%削減
  • KotlinとSwiftに対応、開発をより速く、直感的に

レンダリングパイプライン最適化によるパフォーマンス向上

読み込み時間をはじめ、マップ体験全体を通して、業界をリードする高パフォーマンスを実現させます。Mapboxのマップは、Androidでは0.5秒、iOSでは1秒で読み込まれ、どちらのプラットフォームでも他社製品を圧倒しています。

v10の最適化により、SQLリードバッチからキャッシュまで、コアレンダリングパフォーマンスが25~35%向上しています。iOSの低レベル3DグラフィックおよびシェーダAPIであるMetalを完全にサポートしたことにより、最新かつ効率的なグラフィックスパイプラインを実現しています。Androidでは、新しいレンダリングキャッシュシステムにより、フレームレートがさらに向上します。

こうしたパフォーマンスの向上は、単にマップの動きが滑らかになるということだけではありません。アプリが動作するためのサイクル数が増え、バッテリーへの影響が軽減され、ユーザーのページ離脱率を低くする効果も期待できます。

2Dから3Dマップへの完全移行

v10では、まったく新しいマップ体験を提供します。新しい3D地形と地球儀のAPIは、これまでに開発されたすべてのアプリケーション、スタイル、カスタムデザインの地図で動作し、わずか数行のコードで有効にできます。

3D機能は、よりパワフルな新しいカメラシステムと組み合わされています。開発者は、SDKが提供する親しみやすく直感的なデフォルトのアニメーションか、空間内のカメラ位置を完全に制御するモードのいずれかを自由に選択できます。

SUUNTO様「当社のお客様は、モバイルアプリと同様に、腕時計でも効果的な地図体験を期待しています。Mapboxは、すべてのプラットフォームで必要なサービスを提供してくれます。」

Snapshotter APIには新しい機能が追加され、画面上のマップから静止画を作成したり、バックグラウンドでのレンダリングが簡単にできるようになりました。ランタイムスタイリングのサポートが追加されたことで、ユーザーがデバイス上で作成したマップと、SNSで共有したり、セカンダリーディスプレイに送信したりするマップとの間に違いはありません。

新しいオフライン機能でダウンロード時間を大幅に短縮

オフライン環境でも以前よりパワフルな動きを実現します。ベクタータイルのセットをより効率的な形式に統合した、全く新しいタイルパックアーキテクチャにより、ダウンロード時間が大幅に短縮されました。独自のカスタムタイルセットや従来のオフラインフォーマットを使用するアプリケーションは、従来のオフライン統合のための後方互換性を維持したままサポートされます。

帯域使用量を最大18%削減

また、v10では、特に日本語、韓国語、中国語のフォントを使用したスタイルを使用する際に、ネットワーク帯域の節約ができます。ローカルでのグリフレンダリングのサポートが追加され、開発者はデバイス上ですでに利用可能なデフォルトフォントを使用して、マップのラベル用SDFテクスチャを生成することができるようになりました。この改善により、初回の帯域使用量を最大18%削減可能です。また、日中韓のレンダリングが改良され、より正確な結果が得られるようになりました。

KotlinとSwiftに対応、開発をより速く、直感的に

Maps SDKは、開発者の体験を向上させます。まず、SwiftとKotlin、そしてiOSのSPMとMetalを最高レベルでサポートしています。

iOSとAndroid SDKのAPIは、Mapboxのスタイル仕様を用いて、すべてのプラットフォームで一貫したマップ体験を提供します。

また、オブジェクトのライフサイクル処理が簡素化されたことで、開発者が書くコードの量を減らし、潜在的なバグの原因を排除しています。

そして、新しいドメイン固有言語(DSL)により、実行時のマップスタイルの操作が容易になりました。v10以前のiOS開発者が背景色の遷移をどのように書いていたかを比較しましょう。


let colorStops: [NSNumber: UIColor] = [
    0: .red,
    14: .blue
];

layer.backgroundColor = NSExpression(format:
    "mgl_interpolate:withCurveType:parameters:stops:($zoomLevel, 'linear', nil, %@)",
    colorStops]

v10では、以下のように、読みやすいだけではなく、50%以上もシンプルなコードで同じ結果を得ることができます。


Exp(.interpolate) {
    Exp(.linear)
    Exp(.zoom)
    0
    UIColor.red
    14
    UIColor.blue
}

新たに追加されたobservability API により、個々のタイルの読み込みや解析方法に至るまで、マップの動作を詳細に把握できるようになりました。例外処理機能も含まれているため、クラッシュが少なく、これまで以上にデバッグが容易になりました。

また、SDKはモジュール式に設計されており、デフォルトのジェスチャー操作、位置情報管理、ネットワークなどを開発者独自の実装に置き換えることができます。


早速始めてみましょう

モバイル開発者の皆様、v10への移行を考える時期が来ました。 v10正式版へ移行することで、APIはより安定します。移行を容易にするために、今後数ヶ月間でドキュメントを充実させていく予定です。スタイルとカメラアニメーションに関する新しいガイド(iOSAndroid)はすでにご覧いただけます。


v10では、最新の開発者エクスペリエンスとMapboxプラットフォームのパワーを最大限に活用できる基盤により、これまで以上にパワフルでパフォーマンスの高いマップを提供します。必要なのはMapboxのアカウントだけです!


最後に、v10のパブリックベータ版やリリース候補版をご利用いただいた皆様に感謝を申し上げます。皆様からのフィードバックのおかげで、最高のMaps SDKを完成させることができました。


*本記事は、Mapbox Inc. Blogの翻訳記事です。

No items found.
No items found.

Mapboxのアカウント作成はこちら

Mobile Maps SDK v10は、Mapboxのアカウントを作成後すぐにご利用いただけます。お得な無料枠もご用意しているのでお気軽にお試しください!

今すぐ無料登録

関連記事