Code Monkey home page Code Monkey logo

spacedash's Introduction

Version CD CI All Contributors

Slack Notion Twitter Testflight App Store

SpaceDash

A Dashboard for Space...๐Ÿš€๐Ÿš€๐Ÿš€

SpaceDash is an open-source app that provides information of SpaceFlights. SpaceDash also includes news and updates regarding all vehicles and missions.

The app is currently in the second stage of development and several new features are being scoped/built. These features include an AR view of various vehicles of SpaceX and event updates from even more Space Agencies!

The project uses test-drive agile development processes, where requirements are turned into test cases, and code is improved upon.

Notice

Currently, new version was not accepted by the App Store review team. Since there was recent update to the r/SpaceX API which caused our app to crash on launch and no way to update our App I removed it from the App Store as of now. The team is working to add functionality to the app which will become Version 2 of the app. Version 2 of the will be available in early to mid January. To still use and test the app, you can use the beta version using Testflight link above.

๐Ÿ“ธ Screenshots

ย  ย 

๐Ÿ‘พ Technologies

To help scale development, this app is built using the MVC design pattern. subsequent changes made by contributors do not affect the central architecture.

  • UIKit
  • XCTests
  • Lottie

โš™๏ธ Getting Started

Resources

Requirements

  • iOS 13.0+
  • Xcode 11.0+
  • macOS Catalina or above

Setup

  1. Fork this project
  2. Clone the forked project to your machine
  3. In your project directory open Terminal and Run $ pod install and $ pod update
  4. Open the .xcworkspace file in Xcode to start menu working on the App

For API Keys, contact me on twitter/slack.

Contribute with us!

Before you start developing please read through Contributing.md

Set up contributing environment

Before you assist with the development, please set up the project on your local machine, run it, and go through the complete application

Click through buttons you can find and see where they take you. Explore the app in detail so that you are aware of core features.

License

This project is licensed under the MIT License - see LICENSE.md for details

Acknowledgement

This project won't be possible without our contributors. You may see Contributors.md for details.

spacedash's People

Contributors

allcontributors[bot] avatar clarkeben avatar devwaseem avatar jamie-brannan avatar m1zz avatar machine-geek avatar rajhraval avatar rarchitgupta avatar sejalllkhanna avatar shubham0812 avatar swiftlysingh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

spacedash's Issues

Create an architecture.md file

Create an architecture.md file to support development.

Acceptance Criteria:

  • Provide information about the current design pattern (MVC)
  • References regarding the model, views and controllers
  • API information
  • JSON parsing

..etc

Create a Webpage for SpaceDash App

What is your idea/feature:
Currently, there is a very simple github.io page for SpaceDash. I want it to have a beautiful and informative Web Page.

Why this is beneficial:
This would expand the presence of SpaceDash and may lead to an increased number of downloads.

Solutions:
Create a Webpage that matches the theme from the iOS App.

Additional context
Before working on the webpage I would love to see some mockups of the webpage you are planning to build. Then only I will be able to Assign this issue to you. I am also planning to get an official domain for the app after this webpage is deployed.

Create a Widget

Create a widget from the following mockup by @simplybenjamin. Widgetkit is iOS 14 framework. But I want our app to support both iOS 14 and 13 so you will also need to work on that.

download

Create a iPad UI from Mockups

The mockups for the UI has been designed by @Shubham0812. It is available at this link. Create the UI in code. You can use a combination of Storyboard and Programmatical UI, Although keep in mind that there are already custom classes for various UI elements prefer to use it over creating your own.

Dark mode

The text colour in dark mode changes to white which is not legible.

Create a Watch now Button for Upcoming Launch

What is your idea/feature:
Add a Watch Now button for Upcoming Launch

Why this is beneficial:
A watch now button will help to direct our users to the live stream of the upcoming launch. This will make our app more intuitive.

Solutions:
The SpaceX API in most cases returns a Youtube link for most of the upcoming launch. When the link is available there should be a green clickable button for watch now else it should be a greyish non-clickable button.

Additional context
Before making the requested changes in code make a mockup and comment it down below. After it is approved by me only then start with code.

Network manager leaking memory

The network manager holds a strong reference to its delegates. so the class assigned as a delegate to network manager is never released due to strong memory reference. I'm attaching profiler screenshots supporting for my issue.

Screenshot 2020-10-02 at 4 15 16 PM

I opened the DetailsViewController 3 times while profiling, you can see 3 persistent and 0 transient objects. this means the DetailViewController is never released.

Screenshot 2020-10-02 at 4 15 35 PM

This screenshot is from memory Graph debugger indicating the leaked objects

Screenshot 2020-10-02 at 4 28 45 PM

Divide the Main.Storyboard into Multiple Storyboards.

Currently, the app has one massive storyboard namely Main.Storyboard. Divide it into multiple storyboards containing one or two relevant ViewControllers to a topic like Detail Viewcontroller can have their own storyboard. This will help us reduce those pesky Merge Conflicts as the project progresses.

Create a NSCache for data returned from API

Create an NSCache that will store the data sent by API for specific queries which is being used frequently and/or updated rarely. This will decrease the loading times for our app while giving us the ability to easily query the DB for possibly filters and stuff.

Design a iPad Specific UI

What is your idea/feature:
Design a different iPad optimized UI.

Why this is beneficial:
Currently, there is a common UI for all iOS devices which doesn't use all the extra space in any beneficial way. Creating a special iPad UI will mean that there will be more capable in the iPad App.

Solutions:
Design a UI Mockup for iPad.

Acceptance criteria:
-UI Mockups (screenshots)

Additional context
Make sure the proposed UI follows Apple's Human Interface Guideline.

User Customisable App Icon

What is your idea/feature:
Give the user to customize their app icons.

Why this is beneficial:
This will give users to customize how they want to see their Dashboard ๐Ÿ˜‰ I am providing some App Icon that users can choose from. You can drop in your recommendation too. Create an option in the About Section (Which will be changed to preference after this is implemented.) where users have the option to customize their app icon.

2 3 4

These are not full-sized app icons. When you start with this issue, I will provide you with a link with full-sized app icons.

Design a Banner for SpaceDash twitter

I have created a twitter page for SpaceDash. Although currently there are no tweets from SpaceDash, I plan to start tweeting soon. The banner should be something related to the app. You can provide Banner in the comments below and if the community likes it, you can add it into the screenshots folder and create a pr.

Design new mockups for the App

Currently, the app shows only data from SpaceX. We are planning to move to the next phase of development soon, which is integrating more Space Agencies. For that, I believe we need to perform a complete redesign of the app.

A couple of things to consider:

  • The design should be capable of being implemented in both Light and Dark Mode
  • The feel of the app should largely be the same
  • It would be awesome if we could keep the upcoming launch panel, as personally I like it a lot, and is a major feature that differentiates our app.

Acceptance criteria:

  • Design mockups in light and dark mode.
  • Should follow Apple's HIG

Create a Rocket Details Page

I am attaching some UI Mockups, which should be opened when someone taps on the rocket on the home page. There should be a little animation that will extend the white part and everything should dissolve in.

96335627-accaa580-1097-11eb-91be-214dc2c0305e 96335716-21054900-1098-11eb-8127-0877d12a6fca

The second screen should open when someone taps on the read more button.

The first order of business is to create the UI, animation can be configured later. Use dummy data for now, we will integrate it with API afterward.

PS: I am not the best designer, if you have some ideas to better the UI or animation, let us discuss in the comments.

Find and List different API's for different Space Agencies.

As we have plans to integrate more Space Agencies, we would be needing a lot more APIs. Create a new file under the Assets folder (currently named screenshots) if it is not already present there. The file should be using the following format.

API Links Opensource Paid
SpaceX Github, Docs โœ… โœ–๏ธ

Add a pop-up for Tentative sign.

When the launch is tentative, there will be a little green sign next to the launch date. But it doesn't tell much to the user what it is. I was wishing there could be a little pop-up when we either tap on it which could tell the user what the little T sign is.
I am attaching the screenshot with the Tentative sign.

Simulator Screen Shot - iPhone 11 - 2020-09-30 at 11 41 27

You can toggle this sign by enabling it in HomeViewController.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.