DimensionDev / Maskbook-Talks

Where talks of Maskbook happen.
7 stars 1 forks source link

[Feature] Applets for Maskbook #10

Open neruthes opened 4 years ago

neruthes commented 4 years ago

Abstract

It has been clear that we have some advanced optional features to introduce; examples include Ethereum wallet, AdClick, and Smart Text Interpreter.

Through months of contemplation, I am convinced that applets may be the best way to do so as a good combination of technical extensibility and right of choice for users. With an Applet Manager, a user may enable and disable such optional features, like how optional features in the "Discover" tab may be hidden in WeChat.

Applet Capabilities

Summary

An applet may be able to:

With these capabilities, applets may be able to perform necessary operations while conforming to the expectations for optional features in Maskbook.

To be continued...

Jack-Works commented 4 years ago

this will bring unnecessary complexity to our product I think

neruthes commented 4 years ago

this will bring unnecessary complexity to our product I think

Jack-Works commented 4 years ago

this applets and holoflows don't share the same plug-in model.

if maskbook is going to have a plugin system, it shall using the hook model (beforeSomeEvent, afterSomeEvent). Holoflows is using the composing function model (data |> f1 |> f2 |> f3).

neruthes commented 4 years ago

this applets and holoflows don't share the same plug-in model.

if maskbook is going to have a plugin system, it shall using the hook model (beforeSomeEvent, afterSomeEvent). Holoflows is using the composing function model (data |> f1 |> f2 |> f3).

Could you elaborate how hook model may support the capabilities aforementioned? Especially...

Jack-Works commented 4 years ago

this applets and holoflows don't share the same plug-in model. if maskbook is going to have a plugin system, it shall using the hook model (beforeSomeEvent, afterSomeEvent). Holoflows is using the composing function model (data |> f1 |> f2 |> f3).

Could you elaborate how hook model may support the capabilities aforementioned? Especially...

  • Present a button in the composing modal which opens another modal; and
  • Write a custom data field in Maskbook post payload.

hook model can not add a button. there should be another command style API like addAction or replacePostBox. beforeDeconstructPayload can do the job.

and again, this will bring unnecessary complexity

neruthes commented 4 years ago

this applets and holoflows don't share the same plug-in model. if maskbook is going to have a plugin system, it shall using the hook model (beforeSomeEvent, afterSomeEvent). Holoflows is using the composing function model (data |> f1 |> f2 |> f3).

Could you elaborate how hook model may support the capabilities aforementioned? Especially...

  • Present a button in the composing modal which opens another modal; and
  • Write a custom data field in Maskbook post payload.

hook model can not add a button. there should be another command style API like addAction or replacePostBox. beforeDeconstructPayload can do the job.

and again, this will bring unnecessary complexity

Reasonable.

We may need didShowComposePostView event and several methods:

With these APIs, publishing polls and images in posts will be possible. Typed posts may be implemented as posts with attributes.

Jack-Works commented 4 years ago

No I'm not suggest you to develop such a system

neruthes commented 4 years ago

No I'm not suggest you to develop such a system

Ok. In your point of view, what is the most harmless way to include an Ethereum wallet in Maskbook?

Jack-Works commented 4 years ago

No I'm not suggest you to develop such a system

Ok. In your point of view, what is the most harmless way to include an Ethereum wallet in Maskbook?

By not adding it.

neruthes commented 4 years ago

No I'm not suggest you to develop such a system

Ok. In your point of view, what is the most harmless way to include an Ethereum wallet in Maskbook?

By not adding it.

I wish you may understand that we will have to make anything to raise funding, even including Flappy Bird, otherwise we will bankrupt since we do not have a sufficient revenue cashflow. Our priority is to minimize the consequences of these disasters, rather than to stay away from these disasters.

Jack-Works commented 4 years ago

I wish you may understand that we will have to make anything to raise funding, even including Flappy Bird, otherwise we will bankrupt since we do not have a sufficient revenue cashflow. Our priority is to minimize the consequences of these disasters, rather than to stay away from these disasters.

Ok, this kind of plugin system is possible, but it need a lots of work and our code will become spaghetti. If we don't have a ton of features for raise funding, it is easier to add it case-by-case

neruthes commented 4 years ago

I wish you may understand that we will have to make anything to raise funding, even including Flappy Bird, otherwise we will bankrupt since we do not have a sufficient revenue cashflow. Our priority is to minimize the consequences of these disasters, rather than to stay away from these disasters.

Ok, this kind of plugin system is possible, but it need a lots of work and our code will become spaghetti. If we don't have a ton of features for raise funding, it is easier to add it case-by-case

Tons of features, likely. Hope for the best; prepare for the worst. Also, the long-term vision is quite different from what we documented in Mar 2019.