bisq-network / proposals

@bisq-network improvement proposals
https://bisq.wiki/Proposals
44 stars 16 forks source link

[WIP] Bisq Mobile MVP #462

Open rodvar opened 1 day ago

rodvar commented 1 day ago

This is a Bisq Network proposal. Please familiarize yourself with the submission and review process.

Screenshot 2024-10-24 at 11 09 17

Background

This proposal is in line with making Bisq Network accessible on Mobile Platforms following the philosophy of Bisq2 - to make it easier for both, experienced and newcomers, to trade Bitcoin in a decentralized way as well as defending Bisq motto: exchange, decentralized, private & secure.

We want to do an MVP (Minimum Viable Product) from 0 to release in the market and hopefully grow from there if we see enough interest.

To achieve this goal, we are building a total of 3 mobile apps that can be divided in 2 categories:

Run a Bisq (Easy) Node in Mobile

An Android app (called androidNode) that runs bisq core in its veins aiming to bring a fully featured trading version of Bisq2 (also referred to as its main protocol - Bisq Easy) to Mobile for full privacy & security.

Share a trusted Bisq Node

A thin Bisq App Client (coming in Android & iOS flavors) able to be configured to connect to a trusted Bisq node (over clearnet) to cater to people willing to try Bisq from somebody they trust (popularly described as "Uncle Jim") who is willing to share his Bisq node with them.

For more information on the challenges that this poses please refer to the:

Proposal Summary & Limitations

We propose a timed-effort of a well defined MVP scope for 3 apps:

Limitations

What makes this mobile proposal attractive?

There have been many intents to bring Bisq to mobile with no real success, some Bisq maintainers called it specifically “big failures”.

We believe this is a winner proposal because:

  1. The node version leverages already curated JVM Bisq 2 code by using a JVM compatible platform (KMP), the way it works is by locally publishing through maven a java 17 compatible Jar of the needed bisq 2 modules (with some adaptations Henrik is working on). This remove huge risk away from the project.
  2. The proposed solution also caters for including iOS in some form which is still very desirable to have specially in the so called “developed countries”. This is a very challenging platform for specific software focused on privacy and security like Bisq. Since 90%+ of the UI will be shared across the apps, the solution allows to cater for this without increasing the costs significantly.
  3. The proposal of “1 codebase, 3 apps” allow us, by sharing modules in the form of kmp-libs, to gain progress in all fronts regardless of limitations of not having externalities ready. This is a huge advantage for xClients since Bisq API is not developed yet.

What has been already done prior to this proposal?

Estimations and Timeline

Assumptions:

Available Resources per Cycle:

The following describes the “Initial Team”. We hope being this is an open-source project some people will join in along the way, but we consider this the team to be responsible for “crossing the river”:

Being an open-sourced project, there could be (and looks like there will be) more people joining in to help along the way but the proposal is done with the initial time that is ready to get the goal to the other side of the river altogether from the get-go.

Total Cost and Timeline

Shared

Feature Time Estimate (Cycles) Cost ($)
App Skeleton & Navigation Tabs 0.75 $12000
Profile Setup & Onboarding 1 $7500
Trading Workflow 2 $30,000
My Trades 0.5 $7500
Non-functional Requirements (UX, testing) 0.5 $7.500

Clients-Only Features

Feature Time Estimate (Cycles) Cost ($)
Settings for Trusted Node 0.25 $3,250
Client Onboarding for Trusted Node 0.25 $3,250
Mocked implementations 0.25 $3,250

Node-Only Features

Feature Time Estimate (Cycles) Cost ($)
Networking Integration (Secure Jars) 1 cycle $15,000

note: for the xClients connectivity related stuff will be mocked until we have APIs in place.

Summary of Total Estimates:

Based on initial team availability, between 4 and 5 months of work is anticipated, details below:

Timeline

Cycle 1:

Cycle 2:

Cycle 3:

Cycle 4-5:

cbeams commented 1 day ago

Thanks so much, @rodvar, for putting this together. I've have read though it, but will wait to comment more fully until I've shared the materials I'm currently working on later today. I'll get back here in any case by noon tomorrow (Wed).

cbeams commented 5 hours ago

I'll get back here in any case by noon tomorrow (Wed).

hi @rodvar, all, as mentioned in the "async debate" video I published today, I'd like to give folks a chance to watch that video and consider my arguments as to why we should not implement the full node option on Android. If there's a consensus that we shouldn't, then we could update this proposal accordingly and I would give it a thumbs up after possibly some more minor discussions. As it stands right now, I wouldn't give it a thumbs up because of the full node aspect, but I'm really glad to see the rest of the proposal and wouldn't want to prematurely downvote it. So if you don't mind, I would wait until, say, Monday or Tuesday to weigh in here. Thank you again, in any case, for putting it together.