dawn icon indicating copy to clipboard operation
dawn copied to clipboard

Front End Decisions

Open faddat opened this issue 8 years ago • 5 comments

Since we want to ensure that we effectively bridge the bittorrent and webtorrent torrent protocols, we need to distribute a desktop client.

Tuan says that right now we should be looking at:

  • electron

    • webtorrent-desktop is an elecron-based cross-platform desktop application that fits the bill nicely. I'm guessing that it could be made to show a user's content feed.
  • ionic

    • Ionic is typescript so at the least that means we have to do type definitions for webtorrent in order to use it.
  • react-native

    • When @ozzadar used this to make a mobile app it came out so good he called me. I hear it's pretty different, though. @ekitcho used react to make busy.org. I've bandied about in my mind the idea of trying to contract with their team.

Jake wants to add to the "watched" list:

  • flutter
    • Write native mobile apps in dart. Doesn't have a webtorrent library yet, unless dart can import js.

faddat avatar Feb 07 '17 22:02 faddat

Found typescript definitions for webtorrent.

github.com/DefinitelyTyped/webtorrent/tsconfig.json

The definitions should allow us to use flutter.

Looking into react-native+webtorrent next.

faddat avatar Feb 07 '17 23:02 faddat

Today Brenn and I talked about front end architecture. Here's what we came up with -- current look should go away quickly and transition towards something much less cluttered. Therefore, we will do web FE dev in lazy.js for pure speed and roll out lazy.js based mobile and desktop apps as well. From there, we will specialize by device category eg:

1st Gen

  • One lazy.js app for browser, desktop, and mobile. Desktop + mobile apps via electron + lazy.js.

2nd Gen:

Browser

  • My current favorite is dart and now I know how to import both webtorrent and ipfs front end repositories to it. Using dart in the browser opens up using dart on the desktop and mobile.

Desktop

  • My preferred 2nd generation desktop setup includes go and node-js server components packaged as a go executable that uses gtk+ or go-qt for a front end. For prior art, please see "coy.im" so that users can earn by seeding.

Mobile

  • 2nd generation mobile configuration should be dart

3rd Gen

Let's not get carried away, eh?

@baabeetaa - your thoughts? Also, we're looking for FE people. I'll concern myself with the 1st gen FE, though.

faddat avatar Feb 13 '17 13:02 faddat

Notes:

Github Accounts: @feross - creator of webtorrent and "standard" javascript -Simple-get -webtorrent-hybrid -p2p-graph

@mafintosh

-mafintosh/hypervision

@substack https://github.com/substack/spellcast https://github.com/substack/hyperlog-webtorrent-seed https://www.npmjs.com/package/hyperlog-seed

Socket.io-p2p chat example: https://github.com/socketio/socket.io-p2p webtorrent-health: https://github.com/alxhotel/webtorrent-health fast.js: https://github.com/priologic/easyrtc

faddat avatar Feb 17 '17 12:02 faddat

https://github.com/dawn-network/glogchain/commit/7ad3a7265e05d72e4bc9161e693fbebc22436708 re-organize source code into core and web. So that easier to dev and separate them later.

baabeetaa avatar Feb 27 '17 22:02 baabeetaa

created new branch core-rpc ( https://github.com/dawn-network/glogchain/tree/core-rpc )

baabeetaa avatar Mar 01 '17 15:03 baabeetaa