neon icon indicating copy to clipboard operation
neon copied to clipboard

Implement Deck App

Open pabloeisenhut opened this issue 2 years ago • 14 comments

pabloeisenhut avatar Oct 08 '23 08:10 pabloeisenhut

@pabloeisenhut Do you plan on implementing it yourself?

provokateurin avatar Oct 08 '23 08:10 provokateurin

@pabloeisenhut Do you plan on implementing it yourself?

No, I thought I would suggest that. Or is that what the Matrix channel is for?

pabloeisenhut avatar Oct 08 '23 08:10 pabloeisenhut

This is the right place :) If you wanted to implement it yourself I would have assigned you, so that's why I asked

provokateurin avatar Oct 08 '23 08:10 provokateurin

Very nice :). Do you mind if I suggest a few more apps?

pabloeisenhut avatar Oct 08 '23 08:10 pabloeisenhut

Sure, but let's quickly discuss those on Matrix to check if they make sense for us

provokateurin avatar Oct 08 '23 08:10 provokateurin

We can only realistically implement the Deck app if we have generated OpenAPI specs for it but luckily the maintainer of the app is interested in adding support for it, so it should be possible eventually.

provokateurin avatar Oct 08 '23 10:10 provokateurin

@paulHempel let's continue the discussion here :)

provokateurin avatar Jun 04 '24 19:06 provokateurin

Some things I already did test in my personal project:

  • drag_and_drop_lists as library for the kanban board
    • works quite well
    • isn't actively maintained: https://github.com/philip-brink/DragAndDropLists/issues/97#issuecomment-2147660600
    • it should be maintainable as a fork
  • I did some brainstorming on how to design the app with some proper UX for both mobile and desktop: https://www.figma.com/design/KHYGXjQhkdNO8dozYeWmQG/Nextcloud-Decks-Native-App?node-id=0-1&t=fnc5sCc5SWCd56O4-1
    • I did some research and testing with Flutter on how to implement this adaptive layout (works quite well)

paulHempel avatar Jun 04 '24 19:06 paulHempel

For general adaptive design we already have https://github.com/nextcloud/neon/issues/307, but there hasn't been any work on it for a long time.

provokateurin avatar Jun 04 '24 19:06 provokateurin

The figma design looks pretty cool and should definitely be doable with flutter! Let me know if you have any questions or need any other help.

provokateurin avatar Jun 04 '24 19:06 provokateurin

For initial testing purposes you could write an OpenAPI specification by hand based on https://github.com/nextcloud/deck/blob/main/docs/API.md, as I already said we can only accept specs generated by https://github.com/nextcloud/openapi-extractor as everything else is simply not maintainable and more error-prone.

provokateurin avatar Jun 04 '24 19:06 provokateurin

@paulHempel would you be comfortable with adapting deck to support the generated OpenAPI specs? It's basically following https://docs.nextcloud.com/server/latest/developer_manual/client_apis/OCS/ocs-openapi.html and whatever the tool tells you to fix. I had a quick look at the code and I have some hope that it should be easy to make the necessary changes (but it could also turn out to be very complex). If not I could give it a try as I already have a lot of experience in adapting existing codebases, but it would not be a high priority for me at the moment as I'm focusing on other things at the moment.

provokateurin avatar Jun 05 '24 08:06 provokateurin

I had the same thought, and found the link as well. My PHP skills are basically non-existent, but that shouldn't be to much of a problem for writing some annotations. If you can do some reviewing, I can do the grunt work.

It wouldn't need to be merge-able to begin with, I guess, when we can locally extract the OpenAPI specs and do it properly for a PR when there is time.

I'll take an in-depth look at the documentation the coming days and try to set things up locally.

paulHempel avatar Jun 07 '24 11:06 paulHempel

Sounds good, I can definitely review it! Using in-progress stuff is fine for me, as long as we have it ready before merging it into main.

provokateurin avatar Jun 07 '24 11:06 provokateurin