Thank you for contributing to Little Light! All suggestions and feature requests are welcome, and a lot better if they come with the workforce needed to make it happen.
Here are some tips to make sure your pull request can be merged smoothly:
1. If you want to add a feature or make some change to Little Light, consider [filing an issue](https://github.com/DestinyItemManager/DIM/issues/new) describing your idea first. This will give the Little Light community a chance to discuss the idea, offer suggestions and pointers, and make sure what you're thinking of fits with the style and direction of Little Light. If you want a more free-form chat, [join our Discord](https://discord.gg/dTKhBD).
2. Resist the temptation to change more than one thing in your PR. Keeping PRs focused on a single change makes them much easier to review and accept. If you want to change multiple things, or clean up/refactor the code, make a new branch and submit those changes as a separate PR.
3. Little Light is written in [Dart](https://www.dartlang.org/) and built in [Flutter](https://www.flutter.io)
## Developer Quick start
1. [Install Pre-requisites](#pre-requisites)
2. [Clone](#clone-the-repo)
3. [Get your own API key](#get-your-own-api-key)
4. [Add API credentials](#add-api-credentials)
5. [Download third party libs](#download-third-party-libs)
6. [Run Little Light](#run-little-light-on-a-device-or-simulator)
### Pre-requisites
* Install [Flutter SDK](https://flutter.dev/docs/get-started/install).
* Make sure you're on Flutter's stable channel. To know what channel you're on, run ```flutter channel``` on Terminal/Bash.
* Setup your [favorite code editor](https://flutter.dev/docs/get-started/editor) (I recommend using [VS Code](https://code.visualstudio.com/))
### Clone the repo
```bash
git clone https://github.com/LittleLightForDestiny/LittleLight
```
### Get your own API key:
#### Bungie API
1. Goto [Bungie](https://www.bungie.net/en/Application)
2. Click `Create New App`
3. Enter any application name, and `https://github.com/YourGithubUsername/LittleLight`
4. For `Oauth Client type` select `Confidential`
5. Set your redirect url to `luzinha://littelight/login` (or whatever the IP or hostname is of your dev server)
6. Select all scopes _except_ the Administrate Groups/Clans
7. Leave `Origin Header` empty
8. Copy `assets/_env.example` to `assets/_env` and edit it to match your credentials
#### Google API
1. Goto [Firebase](https://console.firebase.google.com/u/0/) and sign in with a Google account
2. Click `Add Project`
3. Enter any application name, and click continue
1. Optional: Disable Google Analytics
4. Add an app for Android and/or iOS and/or Web - this depends on what platforms you'll be testing for
5. Enter the details:
1. Reverse domain name for your package (it doesn't need to be real!)
2. Any app nickname
6. Download the config file and place it in the following location(s):
1. Android: `google-services.json` → `./android/app/`
2. iOS: `GoogleService-Info.plist` → `./ios/Runner/`
3. Web: copy the JS `firebaseConfig` object into `./web/google-services.js`
7. Android:
1. Add the following line to `./android/local.properties`
- `applicationid=reverse.domain.name.from.step.6.1`
2. Repeat stps 4-6, adding `.debug` to the end of the reverse domain name, and replacing the old `google-services.json` with the new one
### Download Third Party Libs
1. Run `flutter packages get` to download all the libraries used in the project
### Run Little Light on a device or simulator
* Run `flutter run` with a device attached to your computer or an open simulator
or
* Use your editor command to run the app (F5 in Visual Studio Code)
* You can specify a target device by opening the Command Palette (Ctrl+Shift+P) and type `device`