Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mobile Android/ iOS Support #33

Open
Kop3sh opened this issue May 21, 2023 · 48 comments · May be fixed by #227
Open

Mobile Android/ iOS Support #33

Kop3sh opened this issue May 21, 2023 · 48 comments · May be fixed by #227
Labels
enhancement New feature or request good first issue Good for newcomers

Comments

@Kop3sh
Copy link
Contributor

Kop3sh commented May 21, 2023

Tell us about the task you want to perform and are unable to do so because the feature is not available
I would like to add support for Mobile Platforms i.e. Android, iOS this would allow to test APIs on-the-go. It might seem excessive and unnecessary but this kind of agility that enables everyone to test stuff on-the-go, having the same familiar UX and set of features providing continuity, with the added benefit of having a shared open-source codebase powered by flutter is what could potentially set this app apart from other competition.

Describe the solution/feature you'd like us to add
My proposal is building a preliminary mobile version of the app with a simplified UI/UX that can empower users to test APIs and endpoints in the simplest way possible on-the-go. This could potentially be utilized in adding future features like integrating a cross-platform sync; providing continuity for signed-up users.

Approach
This is obviously a fairly big feature to be added, for that my approach would be to start

  1. Designing an interface with the bare minimum of functional features coupled with the same beautiful design, (no changes, just adapting for smaller screens)
  2. Iteratively develop/ adapt code for the new platforms (starting with Android because it's usually more accessible)
  3. Test and add more features while maintaining this simple design language.
@Kop3sh Kop3sh added the enhancement New feature or request label May 21, 2023
@animator
Copy link
Member

Hi @Kop3sh,

Thanks for opening this issue and taking a lead on adding Mobile Android/ iOS Support.
One of the reasons we chose Flutter was to ship API Dash across all platforms one day. Adding Android/ iOS support will definitely be an ambitious project and will require a lot of work, but your step-by-step approach is definitely the way to go about it. Before you start coding Step 1, do share the UI mockups for smaller screens in this issue thread, so that we can discuss what would be the best way to adapt the UI for mobile. Also, do join our Discord server and ping #foss channel in case you need any help.

@Kop3sh
Copy link
Contributor Author

Kop3sh commented May 22, 2023

Hi @animator

Thank you...

I'll get to it then.
It would be great if you could share with me existing UI mockups/ components/ themes... so that I repurpose them and follow the same design rules without reinventing the wheel and wasting precious time ?

@animator
Copy link
Member

We do not have separate mockups currently as we are using Material 3 as the base. And any tweaks made and all reusable components of API Dash are present in lib/consts.dart & lib/widgets/.

@animator
Copy link
Member

Also @Kop3sh, by mockups, I just meant simple rough drawings to show what elements (button, tabs, fields, etc.) will go where for smaller screens. There is no need of very elaborate mockups with full themes. Just simple drawings to discuss on the layout.

@Kop3sh
Copy link
Contributor Author

Kop3sh commented May 24, 2023

https://drive.google.com/file/d/1guo6oZV66xbIOzYTyuVBF7VdBEcJ7od1/view?usp=sharing

This Google Drive link contains a rough sketch of the mobile layout.
looking forward for your input/ suggestions...

NB.
Please let me know if there's a solution for saving a cloud centralized excalidraw sketch for easier collaboration.
I tried the 3rd party extension for google drive but it returns this error "Request had insufficient authentication scopes."

@animator
Copy link
Member

Hi @Kop3sh, I think you can continue using excalidraw if you are comfortable with it. There is a Google Jamboard where people can collaborate. But, I am not sure if it has advanced features like excalidraw. Anyways real-time collaboration is difficult due to timings, so having iterations in the form of comments in this issue thread may actually be better as we can go back and refer to any iteration anytime.
Also, instead of uploading on google drive, it would be great if you can just drag and drop the file in the issue comment as an attachment as it will remove any external dependency (google drive).

I did take a look at the schematics and it has a lot of ideas and I am going through them one by one. Please give me a couple of days to work on it so that I can review all the aspects and add my inputs.

Thanks! 🙂

@Kop3sh
Copy link
Contributor Author

Kop3sh commented May 25, 2023

I've already tried the darg-and-drop thing, but apparently github "doesn't support this file type"...

@animator
Copy link
Member

Hi @Kop3sh, It does support compressed file upload .. all you need to do is compress (.zip) the file and drag & drop.

@Manas-33
Copy link

Manas-33 commented Jun 1, 2023

Hey! Is this issue underway? If so would love to work on it

@animator
Copy link
Member

animator commented Jun 1, 2023

Hi @Manas-33,

Right now we are in the design stage.
@Kop3sh is currently working on the issue and has attached initial mockups which I am currently reviewing.
You can also take a look at them at your end and also include your feedback in this thread.
It will definitely add another perspective and help this issue.

@Manas-33
Copy link

Manas-33 commented Jun 1, 2023

Yup, would love to contribute 👍

@Kop3sh
Copy link
Contributor Author

Kop3sh commented Jun 5, 2023

@animator any updates/ comments on the mockups

@animator
Copy link
Member

animator commented Jun 5, 2023

Hi @Kop3sh ... got swarmed with some new feature reviews.
I have made some notes and mockups.
Please give me 2-3 days to get everything sorted.
Apologies 🙏 for the delay 😞

@Kop3sh
Copy link
Contributor Author

Kop3sh commented Jun 5, 2023

sure, take your time
and good luck with your reviews

@Kop3sh
Copy link
Contributor Author

Kop3sh commented Jun 23, 2023

@animator
I hope you're doing well...
Any news about the mockups stage, so that I can move forward with the next steps

@animator
Copy link
Member

animator commented Jun 25, 2023

Hi @Kop3sh, Extremely sorry for the delay. It won't happen again.

Option A
Screenshot 2023-06-24 at 8 06 47 PM
Screenshot 2023-06-24 at 8 07 10 PM

Option A Feedback:
It looks like a more natural extension of our existing app. Just a few pointers:

  • Missing Send Request Button
  • As the size of screen is small we should optimize on space, like a dedicated row for HTTP Verbs is not required as we can directly add a dropdown for verbs at the top. But, I also like this method of selecting method via chips too, so maybe we can create both versions and see which variant has a better UX when actually used in a real device.
  • The section to show code is missing.

Option B
Screenshot 2023-06-24 at 8 07 39 PM

Option B Feedback:

This is a new design where we are hiding details in the sliverappbar. It may confuse some users as this kind of interface is not that common in mobile apps.

Both versions have elements that we can definitely use in the mobile version.

Also, few other points for the mobile version:

  • It should have all functionalities of the existing desktop app.
  • It should not be drastically different but a mobile friendly version of the existing app.
  • We should be able to reuse as much existing code as possible to make it more maintainable.

I have taken some elements from option A & B and also added some elements from my side to create the below iteration.

1 2 3 4 .

.

.

Do let me know your thoughts on this iteration and please feel free to share any modifications below.
Thanks @Kop3sh !

@Kop3sh
Copy link
Contributor Author

Kop3sh commented Jun 25, 2023

No problems...

I totally agree with what you're saying, I'll get started with coding, if it is okay with you...

@animator
Copy link
Member

Sure @Kop3sh you can definitely get started. 👍

@AbhinavISM
Copy link

Hi @Kop3sh @animator can i be of any help?

@Kop3sh
Copy link
Contributor Author

Kop3sh commented Jul 1, 2023

This pull request serves as a starting point, I plan on following more of an iterative approach, -if it is okay with you- just to make sure that I am going with the right path...

waiting for your review and guidance

@Kop3sh
Copy link
Contributor Author

Kop3sh commented Jul 1, 2023

@AbhinavISM sure,

I am not proficient in writing flutter tests, maybe we can collab on that, if it's okay with both of you @animator

N.B. it's just a suggestion, feel free to help out with whatever you see fit...

@AbhinavISM
Copy link

i have started writing tests only recently too, we can do that together.
is there a way i can help with mobile ui too? since you have made changes and made a PR, i see you have enabled ios only till now, is there a way i can help with andorid parralely? maybe just tell me to do something, eager to help

@animator
Copy link
Member

animator commented Jul 1, 2023

Hi @Kop3sh Thanks for sending the PR .. I will definitely review it.
@AbhinavISM, @Kop3sh is currently taking a lead on this issue .. so some of the ways in which you can contribute are:

  • Testing PR Initial Mobile Support #70 on iOS & Android and providing your feedback and how it can be improved.
  • We have shared design schematics above. You can also take a look at them and provide your feedback.
  • Writing Flutter tests for mobile version (which will come at a later stage as we are currently in the early stages of the feature dev).

@animator animator added good first issue Good for newcomers and removed good first issue Good for newcomers labels Nov 29, 2023
@ashitaprasad ashitaprasad added the good first issue Good for newcomers label Feb 22, 2024
@ashitaprasad
Copy link
Member

@opxdelwin , as per the rules of GSoC you can discuss ideas on this thread but you cannot work as a team. Please feel free to share your views on this thread and send across a PR implementing your vision for API Dash mobile app.

@Yousef-Rabia
Copy link
Contributor

Hi @ashitaprasad,

I've generated Android and iOS files for the project and addressed some issues to ensure the app runs smoothly on Android. Could I go ahead and create a pull request with these changes?

@ashitaprasad
Copy link
Member

Sure @Yousef-Rabia, please go ahead and raise a PR.

@DenserMeerkat
Copy link
Contributor

DenserMeerkat commented Feb 25, 2024

Hey @animator @ashitaprasad
My design proposal for the mobile layout with maximum reuse of existing components.
Figma Link
What are your thoughts?

@animator
Copy link
Member

@DenserMeerkat looks fantastic 👍

@ZapeeoSheikh
Copy link

@animator These are amazing designs that you have created but there are few things that I would suggest you to must add in the design for better user experience.

  • Collection creation, I would suggest you to show collections within the collection there will be multiple requests.
  • More Options within each request there must be an options like edit, duplicate, delete etc
  • Save button on homepage, to save the request in the local storage using Hive

When a user click on the requests from the drawer, API request should have to execute it on the home_page screen.

@DILPREET1910
Copy link

Hi @animator @ashitaprasad

Having reviewed @animator's mock-ups, I find them closely resembling the desktop client, promising a positive user experience within limited screen space. I propose initiating mobile client coding based on these mock-ups, with the flexibility to incorporate UI/UX enhancements during the development and testing phases.

If you agree on this I have some quires after going through the current desktop client codebase. I believe we want to develop a mobile client in a way that ensures modification to functionalities in future won't require change in both desktop and mobile client specific files.

So we can:
a. Maintain one layout file for desktop and mobile client by maximising the use of ternary operators.
b. Having a different mobile layout file, but using the same reusable components as desktop client.
c. Prioritising a but using b if ternary(if-else) nesting increases.

I have gone through the code base so if you want you can answer section specifically as well. It would be difficult for me to give an example on text. If you did not understand and if you want we can hop on a call and discuss it.

@animator
Copy link
Member

@DILPREET1910 point b with as much reuse of desktop components as possible.

@DILPREET1910
Copy link

@DILPREET1910 point b with as much reuse of desktop components as possible.

ok thanks got it!

@MohammedAshraf19
Copy link

Hi @animator @ashitaprasad
I read issue, saw mock-ups that you created and fork repo.
I think it is interesting issue, I have some Feature idea we can add and design with as much reuse of desktop components, so can I make design for app and show you or I should put my design and features in my proposal?
also I saw bug in mobile app, It is normal because it not ready yet or I can fix it and PR?

@DenserMeerkat DenserMeerkat linked a pull request Feb 28, 2024 that will close this issue
5 tasks
@animator
Copy link
Member

@MohammedAshraf19 send across a PR to discuss further on your implementation.

@GeekyMonk07
Copy link

@animator @ashitaprasad @Kop3sh Hey everyone! I would like to start working on this project for GSoC'24. Can I start building the ui/ux or mockups for the screens? I really have a keen interest in this project, and I would like to contribute.
Also, do let me know what is the current status of the project, what is built and what is still left?

@ashitaprasad ashitaprasad linked a pull request Mar 1, 2024 that will close this issue
5 tasks
@Detective-Khalifah
Copy link

@animator @ashitaprasad @Kop3sh Hey everyone! I would like to start working on this project for GSoC'24. Can I start building the ui/ux or mockups for the screens? I really have a keen interest in this project, and I would like to contribute. Also, do let me know what is the current status of the project, what is built and what is still left?

Hi! Have you cloned/forked the repository and run it on your system? Some work seems to have been done on the issue in the past weeks (and months), as I can see Pull Requests made -- 1 merged, 3 open.

@animator
Copy link
Member

@GeekyMonk07 @Detective-Khalifah You can build mockups of the design and submit your implementations via PR. We are reviewing all the open PRs and will provide feedback for the same.

@chiragtyagi2003
Copy link

Hi People. I am intrigued with the idea of the app client, I would be grateful if someone could update what they are expecting now as some work has already been done in the past.

@animator
Copy link
Member

@chiragtyagi2003 see this comment

@chiragtyagi2003
Copy link

Hi @animator as you mentioned we don't have the app yet, if the project is still open I would like to shift my focus to this.

@chiragtyagi2003
Copy link

Hi @animator @ashitaprasad, I build some initial mockup for the drag and drop functionality and I wanted to pick your brain on it to make sure I am heading into the right direction or not.

WhatsApp Image 2024-03-22 at 16 05 14 (1)
WhatsApp Image 2024-03-22 at 16 05 14

Now I am working on making UI more feasible and user friendly, but if you could guide me if I am heading in the right direction, and also what else to add.

@ashitaprasad
Copy link
Member

@chiragtyagi2003 This UI does not align with the theme of API Dash. Would recommend you to go through the above thread in detail and understand what options have been suggested and why.

@chiragtyagi2003
Copy link

@ashitaprasad I am changing the UI to align with the app's theme, just wanted to make sure about the drag and drop function, in case I am heading in the wrong way.

@sudhar08
Copy link
Contributor

Hey @animator @ashitaprasad
My design proposal for the mobile layout with maximum reuse of existing components.
Figma Link
What are your thoughts?

Hey man it's looks great man 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment