The Sayari mobile app is designed to provide up-to-the-minute news from top space companies, including launch updates and news. Stay informed with the latest developments in spaceflight through this convenient and easy-to-use app.
- The Launch schedule/calendar is provided by The LL2 Library: LL2 Docs
- Spaceflight news is provided by Spaceflight News API: Spaceflight News API docs
- Both APIs have a free plan. The Spaceflight news API is free and calls are unlimited. For the LL2 Apis, the free plan is limited to 15 requests per hour.
- Multiple ways to query and filter Launch and Spaceflight news data
- They have a significantly large user base and can handle millions of requests. If the app were ever to scale, there is confidence in the API to provide high availability
- The APIs come with really high-quality images of spacecraft, in-flight, ISS, and planetary bodies that will highly complement the application.
The app is readily available in Play Store. Click the download here link below to download and use. The app is compatible with devices from min SDK 21 all the way to SDK 33 but currently has no support for foldable, tablets, or TVs. Support for these will be added in the next update patch.
You can find the project Figma design files here
The application uses the MVVM architecture. MVVM basically stands for Model View View Model. It is the recommended design pattern by the Android developers community for building well-structured apps as part of the modern Android development guide.Read more here.
This layer is responsible for the abstraction of the data sources. Model and ViewModel work together to get and save the data.
The purpose of this layer is to inform the ViewModel about the user’s action. This layer observes the ViewModel and does not contain any kind of application logic.
It exposes those data streams which are relevant to the View. Moreover, it serves as a link between the Model and the View. The project uses
- Kotlin coroutines - for concurrency and asynchronous tasks read more here 👉
- Dagger Hilt - for dependency injection read more here 👉
- XML - for building UI components , defining strings ,colors and shapes.
- Retrofit and Okhttp - for making network calls to the backend and also logging of responses. read more here 👉
- Jetpack Room - used for caching complex datasets locally read more here 👉
- Jetpack datastore - a data storage solution that allows you to store key-value pairs or typed objects with protocol buffers. read more here 👉
- Jetpack Navigation Component - for traversing between different fragment screens. read more here 👉
- Lottie animations - for cool looking animations. read more here 👉
- Timber - for log statements.
- Firebase Cloud Messaging Services - for sending push notifications to devices. read more here 👉
- Firebase Crashlytics - for detailed in app crash reporting. read more here 👉
- Mockito - for implementing mocks during testing.read more here 👉
- Mock Web Server - for simulating network calls and responses during unit tests.read more here 👉
- Google truth library - for making assertions during unit and instrumented tests.read more here 👉