DeepSpace. Your way to space world Russia

Содержание

Слайд 2

AN APPLICATION FOR THE ONES WHO WANT TO BE CLOSER TO UNKNOWN

DeepSpace

AN APPLICATION FOR THE ONES WHO WANT TO BE CLOSER TO UNKNOWN
is a mobile app that will allow people to communicate in their very own space community, follow blogs and topics, leave likes and comments on them or create their own articles.
Application provides user features such as the asteroid radar wich allows to track potentially dangerous asteroids, watch photos from Mars, find out the location of planets in real time using the Space Navigator, setup notifications for upcoming SpaceX launches so as not to miss broadcasts and discussions of these events
For what purpose?
Popularization of space and science
An opportunity to discuss the latest events and communicate with like-minded people
A handy tool for setting reminders about upcoming SpaceX launches
The space navigator allows to point the phone in the right direction in order to find out which planets are located there right now
Asteroid radar dispels all fake news about the treat approaching Earth
Quick access to technical specifications of SpaceX ships and lots of interesting information and facts to read

Team SpaceBerserkers

Слайд 3

OUR TEAM

Yana Gladkikh

The idea, plan, client-server part, space navigator

Vladimir Abubakirov

FireBase support,

OUR TEAM Yana Gladkikh The idea, plan, client-server part, space navigator Vladimir
backend, notifications

Denis Shaikhlbarin

Unified UI/UX, asteroid radar, mars photos

Danil Khairulin

Room caching, dependency injection, design

Samuil Nalisin

Architecture, UI for social part, home tab, blogs

Team SpaceBerserkers

We are the team of developers from all over the Russia. We are living in different cities across our country, but it doesn’t prevent us from being friends and creating team projects. Yana Gladkikh - Voronezh, Vladimir Abubakirov - Moscow, Samuil Nalisin - St. Petersburg, Denis Shaikhlbarin - Ufa, Danil Khairulin - Kazan

Слайд 4

MAIN TOOLS

KOTLIN

Modern language that makes programmers happier

MVVM

Architecture pattern recommended by google

FireBase

Easy

MAIN TOOLS KOTLIN Modern language that makes programmers happier MVVM Architecture pattern
data storing

Hilt

DI framework specially for android

Team SpaceBerserkers

Слайд 5

OUR TEAM

Yana Gladkikh

Samuil Nalisin

Vladimir Abubakirov

Denis Shaikhlbarin

Retrofit
Maps Sdk
OpenGL
Sensors
Android Navigation

FireBase
SharedPreferences
FireBase storage
FireBase auth
Sentry

Room db
Hilt
Android navigation
Coroutines

Compose
Hilt
RecyclerView
Android

OUR TEAM Yana Gladkikh Samuil Nalisin Vladimir Abubakirov Denis Shaikhlbarin Retrofit Maps
lifecycle
Retrofit

Danil Khairulin

Material design
Material motion
Animations
Epoxy
Wallpapers
CustomViews
Glide

Team SpaceBerserkers

Слайд 6

THE FEATURES

COMMUNITY

Discuss, share and find new friends

ASTEROIDS

Can you see some star

THE FEATURES COMMUNITY Discuss, share and find new friends ASTEROIDS Can you
shower today?

MARS

Take a look at photos taken by Mars Rovers

UPCOMING EVENTS

Don’t miss SpaceX launch live!

SPACEX

Learn about the most known private space company

SPACE NAVIGATOR

Where are the planets now?

Team SpaceBerserkers

Слайд 7

HOME PAGE

IMAGE OF THE DAY FROM NASA

Learn something new everyday

QUICK NAVIGATION AND

HOME PAGE IMAGE OF THE DAY FROM NASA Learn something new everyday
LATEST NEWS

You can use homepage to switch on the other category or have a brief look on latest space news

Samuil Nalisin & Vladimir Abubakirov

Слайд 8

BLOGS & NEWS

NEWS

Read and leave comments on the latest news

BLOGS

Share your own

BLOGS & NEWS NEWS Read and leave comments on the latest news
posts

Samuil Nalisin & Vladimir Abubakirov

Слайд 9

HOMEPAGE, BLOGS & NEWS TECHNICAL SIDE

Samuil Nalisin & Vladimir Abubakirov

HOMEPAGE, BLOGS & NEWS TECHNICAL SIDE Samuil Nalisin & Vladimir Abubakirov

Слайд 10

SPACE NAVIGATOR


Point your phone into the right direction


Allow to recognize

SPACE NAVIGATOR Point your phone into the right direction Allow to recognize
your location



Learn what are those small stars you see in the sky!

Yana Gladkikh

Слайд 11

CALCULATING LOCATION OF PLANETS





In order to determine the

CALCULATING LOCATION OF PLANETS In order to determine the location of the
location of the planets we’ve used Orbital Elements (Keplerian Elements)
a(AU) - axis
e – eccentricity
i – inclination
w – argument of periapsis (perihelion)
l – longitude of the ascending node
m – mean anomaly
v – true anomaly
E – eccentric anomaly

Data provided by NASA official site

Yana Gladkikh

Слайд 12

CALCULATING LOCATION OF PLANETS





With the help of orbital

CALCULATING LOCATION OF PLANETS With the help of orbital elements, it is
elements, it is possible to calculate the heliocentric coordinates of the planets. Knowing these coordinates, you can find Ra and Dec (Right ascension and declination), and knowing them, you can finally calculate the geocentric coordinates and place the planets on the grid
First of all we need to calculate the true anomaly. According to NASA materials, it can be done by solving the Kepler equation

So, by solving the equation, we will find an eccentric anomaly. To do this we need to decompose the series :

The true anomaly is expressed from the eccentric according to the formula:

Yana Gladkikh

Слайд 13

CALCULATING LOCATION OF PLANETS





To calculate the heliocentric coordinates,

CALCULATING LOCATION OF PLANETS To calculate the heliocentric coordinates, it is still
it is still necessary to find the radius vector

Great, now when all values have been found, we will calculate the coordinates according to the formula:

Next let’s find Ra and Dec

Ra:

Dec:

Finally, calculate the geocentric coordinates

Yana Gladkikh

Слайд 14

CALCULATING LOCATION OF PLANETS





Now we know the location

CALCULATING LOCATION OF PLANETS Now we know the location of the planets
of the planets and it remains only to place them on the grid.
The grid is created with 3D graphics using OpenGL. Two layers are used: lines and planets.
But it is not enough just to create a grid, it also must respond to the movement of the phone, move in accordance with where the user decided to direct it. We used phone sensors to make this into life

It's possible to talk about how all this works for a long time, so I'll try to tell you in general terms.
In three-dimensional space, the device has 3 axes. In the code, these axes are represented as vectors. With the help of sensors, you can get a value such as the ROTATION VECTOR, which returns the position of the device in space as an angle relative to the axis. Using this vector we can get the rotation matrix using the getRotationMatrixFromVector function of the SensorManager library class
To determine where the phone is directed, it is necessary to calculate the transformation matrix. We have a matrix of phone coordinates and a "magnetic" matrix with magnetic coordinates. Multiplying them, we get the desired matrix. Finally we need to calculate the direction vectors of the phone and in the activity we will transfer them to the thread responsible for rendering the map

Yana Gladkikh

Слайд 15

CACHING





Most modern applications use a local database to

CACHING Most modern applications use a local database to store or cache
store or cache data received from a remote source. That’s why our project uses the Room library to work with sql queries
The advantages of caching are the increasing speed of data loading and the ability to load previously viewed content without a network connection

How caching works?
When the screen is shown to user, the first step is to download data from the local database
A request is sent to the server
After the server's response, the data on the screen and the local database are being updated

Danil Khairulin

Слайд 16

DEPENDENCY INJECTION


Dependency injection (DI) is a method widely used in programming

DEPENDENCY INJECTION Dependency injection (DI) is a method widely used in programming
and recommended by Google for creating android applications. By following the principles of DI, we make the application architecture cleaner and more readable for those who ever will join us or review our code.
Implementing dependency injection provides the following pros:
The ability to reuse the code
Easy to refactor
Flexible for testing

Danil Khairulin

Слайд 17

APPLICATION UI


In order to improve the user experience while using the

APPLICATION UI In order to improve the user experience while using the
application, it was necessary to create a uniform appearance. As a result, we've developed a semi-transparent interface design with the addition of colored shadows from objects on a dark background, as a result of which associations with interstellar clouds may appear. It allows you to immerse yourself into the application with greater interest. Particularly there is a single design for the process of "loading" pages.

Denis Shaikhlbarin

Слайд 18

ASTEROID RADAR & MARS ROVERS

ASTEROID RADAR

Are there any asteroids near to Earth

ASTEROID RADAR & MARS ROVERS ASTEROID RADAR Are there any asteroids near
?

MARS ROVERS

What would you see if you stood on a Mars?

Denis Shaikhlbarin

Слайд 19

UI TOOLS STACK

AirBnB Epoxy

Optimize display and loading
Sticky headers

Custom Views

Custom Views for creating

UI TOOLS STACK AirBnB Epoxy Optimize display and loading Sticky headers Custom
a unique interface

Motion Layout

Beautiful smooth animations

Coordinator layout, material components

User-attracting modern design elements

Слайд 20

In conclusion, we would like to say that Deep Space is one

In conclusion, we would like to say that Deep Space is one
of the best applications for people who are interested in space subject matter or for those who are just about to start diving into this huge community.
Its main purpose is to increase people’s interest in space, give some basic knowledge about this sphere so that they may become the ones who create future of the humanity
Our team managed to create a stable working application. We’ve gone through thousands of bugs, solved plenty of merge conflicts. Also, we were able to discover something new by working in a team.
Development prospects:
Adaptation to different languages
More space objects on the grid such as stars
Our own server and site (already in process)
More technical information
Information about NASA missions
Notifications for other space events, not only SpaceX

Conclusion

You can check our open source code via the links:
https://github.com/BrightOS/DeepSpace and https://github.com/DeepSpaceTeam