Slippi Launcher
The Slippi Launcher acts as a one stop shop for everything Slippi related. It handles updating Slippi Dolphin, playing Slippi Online, launching and analyzing replays, and more.
This repository is part of the Project Slippi ecosystem. For more information about all of the Project Slippi projects, visit https://github.com/project-slippi/project-slippi.
Build Instructions
Prerequisites
These are the applications you will need to install in order to build this project:
Build Steps
- Clone the repo via:
git clone https://github.com/project-slippi/slippi-launcher.git
- Navigate into the directory and run:
yarn install
to install all dependencies - Use
yarn run start
to run the app in develop mode - Use
yarn run package
to build a release
Recommended IDE
For development, we recommend using VSCode with the following plugins:
These extensions will provide automatic formatting and warnings about code quality issues before you commit/push.
Project Structure
src
folder is split into the following:
The common
- Code shared between both
main
andrenderer
processes. Thus the code written should be agnostic to which thread its being imported from.
- Code shared between both
main
- Code for the main process. e.g. electron config, menubars etc.
renderer
- Code for the all the visual components
<module>
- Modules for the main process that handles specfic tasks should be kept in their own folder with a clear name.
renderer
folder is organised as follows:
The components
- "Dumb" components reusable throughout the app. These should not directly access or modify state but should accept handlers and state info via props.
containers
- Components that piece multiple dumb components together into a single "container". These can modify state and bind logic to the components but make sure most complex logic is in
lib
.
- Components that piece multiple dumb components together into a single "container". These can modify state and bind logic to the components but make sure most complex logic is in
lib
- Reusable logic goes here to keep the components mainly representative and visual.
styles
- Code for app styles and theming.
views
- The root pages of the app. Give a starting point for finding components.
Contributing
Contributions are welcome! The issues section contains some good first ideas. When making a PR, ensure you are not PRing your main
branch and always describe the feature and what testing you've done so far.
Acknowledgements
This application uses Electron React Boilerplate as a base and includes most changes up to commit 10c22e5.
License
Slippi Launcher is released as open source software under the GPL v3 license. See the LICENSE file in the project root for the full license text.