Skip to content

Commit

Permalink
chore: reorganize readme
Browse files Browse the repository at this point in the history
  • Loading branch information
bdlukaa committed Dec 13, 2023
1 parent dea8606 commit d51e734
Showing 1 changed file with 39 additions and 36 deletions.
75 changes: 39 additions & 36 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,29 @@
</div>


## License

[![](https://camo.githubusercontent.com/317e8956b95d7cd7ebdc2a75b836f19dee3c1ae5fa0fce5b277338e648880d4f/68747470733a2f2f7777772e676e752e6f72672f67726170686963732f67706c76332d3132377835312e706e67)](https://www.gnu.org/licenses/gpl-3.0.en.html)

Copyright © 2022, [Bluecherry DVR](https://www.bluecherrydvr.com/).
## Features

This project & work under this repository is licensed under [GNU General Public License v3.0](https://www.gnu.org/licenses/gpl-3.0.en.html).
* 🖲️ Ability to add multiple [Bluecherry DVR servers](https://www.bluecherrydvr.com/downloads/).
* 📺 Play any stream or recording from the web.
* 🎛️ Interactive camera grid viewer, with support for multiple layouts:
<br /> $~~~~$
💻 For larger screens, compact and multiple layout views are available.
<br /> $~~~~~$📱 For smaller screens, see multiple cameras in 2x3, 2x2, 2x1 or 1x1 view
<br /> $~~~~~$👆 Re-orgderable drag-and-drop camera viewer
<br /> $~~~~~$🛞 Cycle through different layout views automatically
* 🔎 Pinch-to-zoom fullscreen camera viewer.
* 📹 Multicast streams support
* 🏃 Events List Viewer
* 🚡 Events Timeline Viewer
* 📸 Direct camera viewer.
* 🎮 **P**an-**T**ilt-**Z**oom controls for supported cameras.
* 🌓 Light & dark app theme.
* 📰 System camera event notifications.
* 📺 Adaptive and responsive design for larger screens
* 📱 Cross-platform
<br /> $~~~~$📱 Mobile: Android & iOS
<br /> $~~~~$🖥️ Desktop: Windows, Linux & MacOS
* 📦 Automatic updates


## Download
Expand All @@ -33,6 +49,8 @@ This project & work under this repository is licensed under [GNU General Public
| [x86_64 `.apk`](https://github.com/bluecherrydvr/unity/releases/download/bleeding_edge/bluecherry-android-x86_64-release.apk) | | 🚧 **SOON** ~~Microsoft Store~~ | [Raw Executable `.tar.gz`](https://github.com/bluecherrydvr/unity/releases/download/bleeding_edge/bluecherry-linux-x86_64.tar.gz) | |
| 🚧 **SOON** ~~Play Store~~ | | | [Fedora/Red Hat Linux `.rpm`](https://github.com/bluecherrydvr/unity/releases/download/bleeding_edge/bluecherry-linux-x86_64.rpm) | |

Or download the latest release [here](https://github.com/bluecherrydvr/unity/releases).

### Installation

Most platforms will not require any extra steps to install the app.
Expand All @@ -50,31 +68,21 @@ sudo dpkg -i bluecherry-linux-x86_64.deb
```


## Features
## License

* 🖲️ Ability to add multiple [Bluecherry DVR servers](https://www.bluecherrydvr.com/downloads/).
* 📺 Play any stream or recording from the web.
* 🎛️ Interactive camera grid viewer, with support for multiple layouts:
<br /> $~~~~$
💻 For larger screens, compact and multiple layout views are available.
<br /> $~~~~~$📱 For smaller screens, see multiple cameras in 2x3, 2x2, 2x1 or 1x1 view
<br /> $~~~~~$👆 Re-orgderable drag-and-drop camera viewer
<br /> $~~~~~$🛞 Cycle through different layout views automatically
* 🔎 Pinch-to-zoom fullscreen camera viewer.
* 📹 Multicast streams support
* 🏃 Events List Viewer
* 🚡 Events Timeline Viewer
* 📸 Direct camera viewer.
* 🎮 **P**an-**T**ilt-**Z**oom controls for supported cameras.
* 🌓 Light & dark app theme.
* 📰 System camera event notifications.
* 📺 Adaptive and responsive design for larger screens
* 📱 Cross-platform
<br /> $~~~~$📱 Mobile: Android & iOS
<br /> $~~~~$🖥️ Desktop: Windows, Linux & MacOS
* 📦 Automatic updates
[![](https://camo.githubusercontent.com/317e8956b95d7cd7ebdc2a75b836f19dee3c1ae5fa0fce5b277338e648880d4f/68747470733a2f2f7777772e676e752e6f72672f67726170686963732f67706c76332d3132377835312e706e67)](https://www.gnu.org/licenses/gpl-3.0.en.html)

Copyright © 2022, [Bluecherry DVR](https://www.bluecherrydvr.com/).

This project & work under this repository is licensed under [GNU General Public License v3.0](https://www.gnu.org/licenses/gpl-3.0.en.html).

## Bug-Reports

Send us details about any issues you discover [in the issues](https://github.com/bluecherrydvr/unity/issues) or [in the forums](https://forums.bluecherrydvr.com/).

## Contribute

## Translate
### Translate

You may provide translations for the application to see it running in your own language. Please follow these steps:

Expand All @@ -87,18 +95,14 @@ Let's say, we're adding French (`fr`) translation.

When adding new strings, run `bin/l10n_organizer.dart`. This script will ensure that the new strings are added to all l10n files and that they are in the same location. It will also remove any unused strings. The base file is `app_en.arb`, so all strings must be added there first.

## Bug-Reports

Send us details about any issues you discover [in the issues](https://github.com/bluecherrydvr/unity/issues) or [in the forums](https://forums.bluecherrydvr.com/).
Note that the app is constantly changing and new strings are added all the time. The translations need to be updated constantly.

## Contribute & Technical Review
### Technical Details

The code uses [Provider](https://github.com/rrousselGit/provider) for state-management because it is widely known by Flutter community, doesn't bring any unnecessary complexity to the codebase & is scalable/stable enough.

Most `ChangeNotifier`s are available as singletons, though de-coupled from each other. This is important to handle things like loading app configuration before `runApp`, handling background notification button actions & few other asynchronous operations performed outside the widget tree. By having singletons, we are able to avoid a strict dependency on the `BuildContext` & do certain things in a more performant way.

Everything is well-documented (e.g. [this](https://github.com/bluecherrydvr/unity/blob/fce2aad3213298f70e91eb549a71699826e5c6e4/lib/providers/mobile_view_provider.dart#L28-L35)). Other important comments & work-arounds may be found throughout the code.

Current source tree has following files:

```
Expand Down Expand Up @@ -153,7 +157,6 @@ The build process is pretty straight-forward. You need to have [Flutter](https:/
git clone https://github.com/bluecherrydvr/unity
cd unity
flutter pub get
flutter gen-l10n
flutter build [linux|windows|macos|android|ios]
```

Expand Down

0 comments on commit d51e734

Please sign in to comment.