Space-X

Space-X is an android application that displays the list of launches from the Space-X API using ApolloGraphql inclusive of their launch site and mission name respectively.Built entirely using kotlin among other Android Architecture Compoonents

queries used.

The app queries(in this case queries are used to read or fetch values while a mutation is used to write or post values returning a response in json format.The sampledata directory too indicates the sample response.

  • An example of the single launch query that showcases more information on the launch,this query has a passed argument:

{
 "data": {
   "launch": {
     "id": "9",
     "details": "CRS-1 successful, but the secondary payload was inserted into abnormally low orbit and lost due to Falcon 9 boost stage engine failure, ISS visiting vehicle safety rules, and the primary payload owner's contractual right to decline a second ignition of the second stage under some conditions.",
     "launch_site": {
       "site_name": "CCAFS SLC 40"
     },
     "launch_success": true,
     "launch_year": "2012",
     "links": {
       "mission_patch": "https://images2.imgbox.com/52/09/eNvilptL_o.png"
     }
   }
 }
}

Enjoy writing your queries here. 👇

plaground for writing Apollo queries

Technologies used

  • Hilt – Dependency Injection library

  • Apollo client – Apollo Client

  • Graphql – Apollo Client

  • ViewBinding a feature that allows you to more easily write code that interacts with views. Once view binding is enabled in a module, it generates a binding class for each XML layout file present in that module.

  • Coil An image loading library for Android backed by Kotlin Coroutines.

  • Data Binding – Data Binding library

  • Lottie *ViewModel – Designed to store and manage UI-related data in a lifecycle conscious way. The ViewModel class allows data to survive configuration changes such as screen rotations.

  • Coroutines – Library Support for coroutines.

  • Navigation Component-Component that allows easier implementation of navigation from simple button clicks to more complex patterns.

  • Android KTX – Provide concise, idiomatic Kotlin to Jetpack and Android platform APIs.

  • AndroidX – Major improvement to the original Android Support Library, which is no longer maintained.

  • Lifecycle – Perform actions in response to a change in the lifecycle status of another component, such as activities and fragments.

  • Patterns

    • [MVVM]
  • CI/CD

  • App Views

Launches Launch Launch Info

WIP

  • migrate project to kotlin dsl.already started a branch on that (buildSrc branch)

License

  Copyright (c) 2022 Ezra Kanake

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

GitHub

View Github