>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
Kotlin

伝説のGoogle Sky Mapが純粋な熱意だけで生き延びた理由

2008〜2009年頃の最初のAndroidスマートフォンのプレゼンテーションを覚えていますか? 当時、Googleは搭載されたモーションセンサーや電子コンパスを誇らしげにデモしていました。 Searchology 2009のメインサプライズはGoogle Sky Mapアプリでした。 重いHTC Dreamを夜空に向けて傾けると、星座や惑星が小さな画面にリアルタイムで現れました。未来はもう来ていたような気がしました。

しかし、企業の優先順位は変わりました。 2011年、Googleはアクティブなサポートを打ち切りましたが、開発者たちはプロジェクトを死なせたがりませんでした。 彼らはコードのオープンソース化を許可してくれと懇願し、Googleブランドから離れ、自分の肩にプロジェクトを背負いました。 GitHubのstardroidリポジトリは今もSky Mapという名前で存続しており、その裏には素晴らしいエンジニアリングの忍耐の物語があります。

リポジトリ名がstardroidである理由

Google社内では、このプロジェクトはコードネーム「Stardroid」でした。 会社の法務部はスター・ウォーズからの著作権侵害を恐れ、リリースにあたっては面倒で直接的な「Sky Map」という名前を選びました。 コードベース内では、名前stardroidがメインパッケージ識別子のまま残っています。

フォーク後、プロジェクトはGPLv3ライセンスを採用しました(ただし、レガシーコードの一部はApache 2.0のままです)。 開発者たちはアプリを完全に無料に保つことを意図的に選択しました—トラッカーなし、アプリ内課金なし、广告なし。 これはモバイルプラットフォーム向けの真に誠実なオープンソース天文学ツールとして際立っています。

これが初期のアプリプロトタイプの 모습です:

Sky Map Prototype (2009)

今日におけるアプリできること

Sky Mapはあなたのスマートフォンを宇宙観測のためのインタラクティブなビューファインダーに変えます。 コアコンセプトは変わりませんが、作者たちは長年にわたり数学とアルゴリズムを磨いてきました。

  • センサー 기반 위치 결정。 アプリは加速度計、ジャイロスコープ、磁気コンパスから生データを収集し、ユーザーの天球上の視線ベクトルを計算します。
  • 天体カタログ。 データベースには明るい恒星、太陽系惑星、星座、メシエ天体の座標が含まれています。
  • ポインター付き検索。 火星やアンドロメダ銀河を見つけたい場合、検索に名前を入力すると、画面に手を向けるべき正確な方向を示す矢印が表示されます。
  • タイムトラベルモード。 誕生日当時の空がどう見えたか、または6ヶ月後に木星がどこにあるかを確認できます。

開発者にとっての裏側の興味深い点

今すぐプロジェクトを開くと、KotlinとレガシーJavaコードの混合物が見られます。 このリポジトリは、モバイル開発や応用数学に興味がある人にとって興味深いものがたくさんあります。

飾り気のないセンサー処理

スマートフォンの天文学アプリで最大の頭痛の種は、コンパス較正とノイズのあるセンサーです。 地球の磁場は、ケース、ケーブル、ポケット内の金属製オブジェクトによって歪められます。 Sky Mapのコードベースは、少しの手振れで画像がぶれないでありながら、デバイスの回転に即座に応答するセンサー読み取りフィルタリングを実装しています。

リポジトリには、開発者たちがAndroidの組み込みコンパス較正がなぜプログラムマーが期待するような動作を全くしないかを詳細に説明している別々のドキュメントstardroidstardroidさえ存在します。

レンダリングと三角法

すべての描画は球面座標、赤経、赤緯に関連付けられています。 アプリは現在の緯度、経度、GPS時刻を考慮して、3D天球を平坦なスマートフォンの画面に投影します。 これは、Unityのようなヘビーなゲームエンジンを使わずにカスタムレンダリングを書く方法を理解したい人にとって素晴らしい参考資料です。

バージョン2の瀬戸際

現在、作者たちはメインブランチへのプルリクエストをクローズしています。 Android 1.6 Donut時代に書かれたバージョン1のアーキテクチャがついに時代遅れになりました。 ピッツバーグの元Google社員たちが今、V2の一環としてアプリを完全にゼロから書き直し、最新のスタックに移行しています。

同時に、開発者たちはプロジェクトを無責任なクローンから激烈に守っています。 グラフィック、ロゴ、ビジュアルアセットはPenterakt LLCの著作権で保護されています。 これは、機会主義的なディーラーが単にプロジェクトを再ビルドし、バナーを詰め込み、別の名前でGoogle Playにアップロードすることができないようにするために特意的に行われました。

誰がこのプロジェクトを学ぶべきか

Sky Mapのコードを掘り下げる価値があるケースは2つあります。

まず、拡張現実、コンパス、ジャイロスコープを使ったモバイルアプリを構築しており、リアルな実戦条件でプロフェッショナルがセンサー読み取りをどのように平滑化しているを見たい場合。

次に телефонで軽量な天文学アトラスが单纯に必要なだけで、注册を求めず、广告を表示せず、数メガバイトしか重量しない場合。 앱はGoogle PlayでもF-Droidリポジトリでも見つかります。

関連プロジェクト