Merge pull request #247 from lbryio/build

First pass at 'how to build' for desktop
This commit is contained in:
Sean Yesmunt 2019-02-03 21:37:37 -05:00 committed by GitHub
commit 6752d51c1b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -31,7 +31,7 @@ You can build many types of apps. Fat apps, short apps, tall apps, skinny apps!
Most end-user applications will use the [lbry-sdk](https://github.com/lbryio/lbry) as a way of accessing and communicating with the LBRY network. A look at the [APIs](/api/sdk) provided by the SDK will help you understand what facilities the SDK provides.
Some applications do not need to access content available on the network (e.g. a wallet-only app, or a blockchain visualizer). These applications might use [lbrycrd](//github.com/lbryio/lbrycrd), the blockchain daemon, or [chainquery](//github.com/lbryio/lbrycrd), which parses blockchain data into SQL.
Some applications do not need to access content available on the network (e.g. a wallet-only app, or a blockchain visualizer). These applications might use [lbrycrd](https://github.com/lbryio/lbrycrd), the blockchain daemon, or [chainquery](https://github.com/lbryio/chainquery), which parses blockchain data into SQL.
Let's look at some specific types of applications and the basic design for each.
@ -48,24 +48,28 @@ By full web application, we mean a centrally-hosted web application that uses mo
#### Blockchain Applications
1. Might not need SDK
1. Just use chainquery/lbrycrd
Sometimes you don't need the [SDK](https://github.com/lbryio/lbry). If you wanted to build a block explorer, you would only need to include [lbrycrd](https://github.com/lbryio/lbrycrd). Or if you only want to search through blockchain, [chainquery](https://github.com/lbryio/chainquery) is perfect for that. You can pair these with any language or tooling you want.
#### Other Web Applications
1. Do these exist?
It is also possible to create a browser extension similar to Joule and Metamask. The browser could interact with the [SDK](https://github.com/lbryio/lbry) running locally on a users computer, or through a centrally hosted server.
### Desktop Applications
If you are looking for more decentralization, a full desktop app can achieve that. If that is not something you care about, there are still a number of features that are desirable over a traditional web application, with full access to the file system being one of those. This allows users to be in control of how they view their files, and if they want to help strengthen LBRY network through seeding.
If you would like to create a desktop application, there are a few ways to do so.
#### Electron Apps
1. Use electron-starter kit
1. (Explain basic development)
The [official LBRY desktop app](https://github.com/lbryio/lbry-desktop) is built with electron. It is very easy to develop with, and allows web developers to easily start creating "native" desktop applications. You can use a plain html page with a `<script>` tag, or build out a large web app. The official desktop app uses React.
If you do want to write an electron app, check out the [Electron Starter Project](https://github.com/lbryio/electron-starter) for a bare bones setup that is very similar to how [lbry-desktop](https://github.com/lbryio/lbry-desktop) is structured. It's also a simple way to explore the [SDK api]((https://https://lbry.tech/api/sdk)). We are actively trying to make it better. If you see something wrong, feel free to submit an issue or PR! :)
#### Other Applications
1. You can use whatever tooling you want
1. Use the SDK (see [SDK Basics](#SDK-basics))
Who needs javascript? You can use any language to develop your own LBRY desktop application. Just use the SDK (see [SDK Basics](#SDK-basics)).
### Mobile Applications