>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
Kotlin

Jak legendarny Google Sky Map przetrwał dzięki czystemu entuzjazmowi

Pamiętasz prezentacje pierwszych telefonów z Androidem około 2008–2009? Wtedy Google z dumą prezentowało wbudowane czujniki ruchu i kompas. Główną gwiazdą Searchology 2009 była aplikacja Google Sky Map. Podnosisz ciężki HTC Dream do nocnego nieba, obracasz nim, a na małym ekranie w czasie rzeczywistym pojawiają się konstelacje i planety. Wyglądało to tak, jakby przyszłość już nadeszła.

A potem priorytety korporacji się zmieniły. W 2011 roku Google zaprzestało aktywnego wsparcia, ale deweloperzy nie pozwolili, by projekt umarł. Błagali o pozwolenie na udostępnienie kodu jako otwartego źródła, odłączyli się od marki Google i wzięli projekt na własne barki. Repozytorium stardroid na GitHub nadal żyje pod nazwą Sky Map, a za nim stoi niesamowita historia inżynierskiej wytrwałości.

Dlaczego repozytorium nazywa się stardroid

Wewnątrz Google projekt nosił kryptonim Stardroid. Prawnicy firmy obawiali się roszczeń autorskich ze strony Star Wars, więc do wydania wybrali nudną i bezpośrednią nazwę Sky Map. W kodzie źródłowym nazwa stardroid pozostała głównym identyfikatorem pakietu.

Po odłączeniu projekt przyjął licencję GPLv3 (choć niektóry starszy kod zachował Apache 2.0). Deweloperzy świadomie zdecydowali się utrzymać aplikację całkowicie darmową — bez trackera, zakupów w aplikacji czy reklam. To wyróżnia się jako szczerze uczciwe narzędzie astronomiczne typu open-source dla platform mobilnych.

Oto jak wyglądał prototyp aplikacji w jej wczesnych dniach:

Sky Map Prototype (2009)

Co aplikacja potrafi dzisiaj

Sky Map zamienia Twój telefon w interaktywny celownik do obserwacji kosmosu. Główna koncepcja pozostała niezmieniona, ale autorzy przez lata dopracowali matematykę i algorytmy.

  • Pozycjonowanie oparte na czujnikach. Aplikacja zbiera surowe dane z akcelerometru, żyroskopu i kompasu magnetycznego, aby obliczyć wektor spojrzenia użytkownika na sferze niebieskiej.
  • Katalog obiektów niebieskich. Baza danych zawiera współrzędne jasnych gwiazd, planet Układu Słonecznego, konstelacji i obiektów Messiera.
  • Wyszukiwanie ze strzałką. Jeśli chcesz znaleźć Marsa lub galaktykę Andromedy, wpisujesz nazwę w wyszukiwarce, a aplikacja pokazuje strzałki na ekranie wskazujące dokładnie, gdzie skierować ręce.
  • Tryb podróży w czasie. Możesz zobaczyć, jak niebo wyglądało w dniu Twoich urodzin lub gdzie Jowisz będzie za sześć miesięcy.

Co interesującego kryje się pod maską dla programistów

Jeśli otworzysz projekt teraz, zobaczysz mieszankę kodu Kotlin i starszego Javy. Repozytorium ma wiele interesujących rzeczy dla każdego zainteresowanego programowaniem mobilnym i matematyką stosowaną.

Praca z czujnikami bez lukru

Głównym problemem każdej aplikacji astronomicznej na smartfonach jest kalibracja kompasu i hałas czujników. Ziemskie pole magnetyczne jest zniekształcane przez obudowy, kable i metalowe przedmioty w kieszeniach. Kod Sky Map implementuje filtrowanie odczytów czujników, aby obraz nie trząsł się od najmniejszego drżenia ręki, a jednocześnie natychmiast reagował na obroty urządzenia.

W repozytorium są nawet osobne dokumenty help.md i troubleshooting.md, gdzie autorzy szczegółowo wyjaśniają, dlaczego wbudowana kalibracja kompasu w Androidzie często w ogóle nie działa tak, jak programiści by oczekiwali.

Renderowanie i trygonometria

Całe rysowanie jest powiązane ze współrzędnymi sferycznymi, rektascensją i deklinacją. Aplikacja rzutuje 3D sferę niebieską na płaski ekran smartfona, uwzględniając aktualną szerokość geograficzną, długość geograficzną i czas GPS. To świetne źródło dla każdego, kto chce zrozumieć, jak pisać własne renderowanie bez ciężkich silników gier jak Unity.

Na progu drugiej wersji

W tej chwili autorzy zamknęli pull requesty do głównej gałęzi. Architektura pierwszej wersji, stworzona jeszcze w erze Androida 1.6 Donut, w końcu stała się przestarzała. Zespół byłych pracowników Google z Pittsburgha właśnie całkowicie przepisuje aplikację od zera w ramach wersji V2, migrując ją na nowoczesny stack.

Jednocześnie deweloperzy zaciekle chronią projekt przed nieuczciwymi klonami. Grafika, loga i zasoby wizualne są chronione prawem autorskim Penterakt LLC. Zrobiono to specjalnie po to, aby pazerni handlarze nie mogli po prostu przebudować projektu, wypełnić go banerami i przesłać do Google Play pod cudzym nazwiskiem.

Kto powinien studiować projekt

Zagłębianie się w kod Sky Map jest warte zachodu w dwóch przypadkach.

Po pierwsze, jeśli budujesz aplikację mobilną z rozszerzoną rzeczywistością, kompasem lub żyroskopem i chcesz zobaczyć, jak profesjonaliści wygładzają odczyty czujników w prawdziwych warunkach bojowych.

Po drugie, jeśli po prostu potrzebujesz czystego, lekkiego atlasu astronomicznego na telefonie, który nie wymaga rejestracji, nie wyświetla reklam i waży zaledwie kilka megabajtów. Aplikację znajdziesz w Google Play oraz w repozytorium F-Droid.

Powiązane projekty