-
Notifications
You must be signed in to change notification settings - Fork 10
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
Prototyping Parallax IDE (Multiple Elements) #318
Comments
Notes from our continued discussion: [This discussion generated the first File Navigation mock-up screencast and pdf] App Menu
Profile
New Menu
More Button
Fuzzy SearchProject level and global level prioritized results. Xcode / Browser Style
Common ActionsWhat are the primary actions our users need to use most frequently? [Update: See newer post for updates to this subtopic]
Coding PaneWhat are some common items expressed in code that we could automate or simplify for our user?
Questions to ask ourselves (reiterate from file navigation): What’s good and bad about the way we’ve done things in the past? What needs are different from the user’s of the parallax IDE? How might we handle this design challenge on a small screen vs. a large screen? |
@PropGit Notes from our discussion today related to mockup Screencast and PDF: Project Drawer
Fuzzy Search
Editor View Title Bar
FAB and Context Switching
On Screen Keyboard and UI?
More ButtonRevise menu — it should be:
Find Replace..Need a mock up for the find and replace UI. Close button?We may still need it. Explicit or implicit? Tabs or no tabs? That is the question. Tabs?Mockup or show example of tabs. Project SettingsWhat do we put in the project settings? Undo/RedoWe need to add this to the editor UI. Help button
File Cut / Copy / PasteSecondary toolbar on desktop/mobile. Save as / PrintPut these in context menu for specific file. |
Updates from Jeff: Fuzzy Search
Editor View Title Bar
More Button
|
Updated from Jeff: Floating ToolbarThe floating toolbar concept seems very practical for the Project Files View, but unfortunately less practical on the Editor view. I'll explain:
I noticed on my Gmail (see screenshot) that there's four buttons plus text on the toolbar; the left arrow (left side), text of operation, then two function buttons followed by a more button that gives access to extended contextual menu items. I think we'd be well off to design with this in mind, where we have two most commonly used functions just one-click-away, and others in the more menu. I still like the idea of the background compile / warning system. Maybe we can transform the more menu into a bright exclamation point at those moments and hide the functions of the context menu (and toolbar) that are not possible without compilable code at that moment, only to reveal those items again once the code is sound. Another thought is to have the more button expand leftward across the toolbar (covering the source title and left arrow buttons temporarily) with icons for the context menu items. With these changes (or similar ideas I haven't thought of), perhaps the editor view is never obscured by anything other than the possible keyboard overlay in this case. |
Hey Jeff, I did more research and your points are indeed valid on the FAB. I think it works on the project views but is a bad fit for the editor view especially due to the presence of the on screen keyboard. I see two options — we can use a softwindow mode (or since this is a web app some javascript to replicate softwindow mode. This option would allow us to have a toolbar that floats above the keyboard as the user types. OR we just stick to the gmail approach and provide two primary options and a more button. I advise against: Breaking too many design patterns:
I recommend keeping those standard to maintain familiarity and predictability with the OS on android and chrome. I’ll provide mockups of both solutions.
|
Hi @jimjeffers Good points. I'm pondering this more. Maybe changing the more menu icon is not the right perspective; perhaps it's more that we're replacing it in certain contexts, the there can be an animated (circular) animation to call attention to the transition from a more menu to an error notification. When pressed, the error notification displays the error toast and navigates to and highlights the offending source. When the source is repaired, the notification icon transitions (animates) to a more button again. Note:
|
@PropGit given that we won't be able to make much use of suggestions (per the fact that our users will be typing code) I think we may have more usable space by creating a custom accessory view to float above the keyboard or rest at the bottom of the editing view when the keyboard is not visible. We could still definitely do a dual dropdown menu as discussed. I'm open to discussing further. Please checkout the latest round of revisions I mocked up today and let me know when you'd like to get together to discuss! Screencast: PDF: |
@PropGit Sorry correct link to the PDF is: |
@jimjeffers Thanks Jim. Yes, it was good for you to apply the remaining time to the mobile design- I agree. Project's Drawer
Editor View
|
Aha! Ok I was afraid of that :) I'll finesse it in there!
Sure - many IDEs are subtle and just use a shade of grey matching the text etc.. my only caution is that red could confuse people into thinking there is an error but we can test to see if that hypothesis is actually true during user testing :)
Got it. Ok let's do it! I'll use the play button. I think that'll be more straightforward.
Yes I'm thinking those fit well as they aid in editing as you type.
Thinking about it more. I think find and replace should be down there with undo and redo. I'm not sure about save and explicit close. I think those features, along with validation belong elsewhere -- in the more menu or perhaps we have save take the place of find and replace and remove the validation action from the main UI -- primarily becuase we'll validate when they hit run.
It should. Theoretically the JS should be able to detect the viewport or screen size when the keyboard is or is not visible. So regardless of Android or iOS our accessory view should float above any keyboard as we're just placing the view at the bottom of the view minus the size reported back from the keyboard. Does that make sense? It's not actually part of the keyboard at all -- it just looks like it is.
The same thing. BTW if you have a better idea of how you plan on packaging the app on iOS and Android I can advise further on a few details but overall it should work identically.
Let's discuss this more. I'll see if that's common at all. I haven't seen that done on an Android app in the past. I'm still not sure this is a good idea to do tabs. I might actually be opposed to it just because the flow to open files is to essentially close this view to return to the file view. It seems the flow would be a little strange if each time you open a file there are multiple tabs from the last files you opened.
Yes I understand. Especially as it is a long menu. Perhaps we can eliminate a few options which I have made redundant by including them else where in the UI. I will fix language. I must have mixed that up in the notes some how. I read the note and then kept it as Syntax. Will fix. |
Common Actions[Discussion is below, with quick Summary at end (after Analysis)] To help determine the most common actions for prioritizing feature access, our Education Department identified two phases of common use for our consideration. Usage During Educator's Course Presentations
The above steps are repeated several times to familiarize the audience, then they move on to development mode, below. Development Mode
High use of Memory Map when developing space-critical code, or code that accesses EEPROM data directly. AnalysisThe above items are listed below by low, medium, and high access priorities. It's rating doesn't imply that it must be harder (low), not too hard (medium), or easy (high) to access, but gives us a relatively priority of accessibility should display and UI constraints dictate compromises.
SummaryFor accessibility decisions, the recommended priorities are listed here. Items can be moved to higher priority if UI constraints allow. High Priority
Medium Priority
Low Priority
|
Perhaps yellow would be a better caution signal.
I'm pretty sure we'll package using PhoneGap, but there's a chance we'll use another technology if that doesn't meet our needs.
Good points, but the flow you're speaking of is front-and-center only in the mobile platforms, all others leave code in-view during Projects Drawer and File View operations. I think you hit on the very core of why I suggested (before we met) that the filename in the toolbar be a touch target for file/project access, that slides down (animated) into view underneath the titlebar for full project/file access, and current-session open files can be swiped into/off-of view via the same filename touch target. See 17 seconds into this video. |
Some notes from our discussion this evening: Open Indicator
Fuzzy Search
File Navigation
Floating Action Bar / Accessory View
Check Syntax / Displaying Errors
The Floating Toolbar
New Files…
Archive Action
|
@PropGit Here is an update on mobile today: Screencast: PDF: Hope to get you one more on Tablet / Desktop tonight. |
@jimjeffers Thank you. Project Drawer
Search
File View
Editor
|
Sounds good. When there is not a special situation -- do we simply display only the run / validate button?
That could be better - my only concern is that people may get confused about memory map -- i.e. they won't know why it appears when it does or why they can't access it from the side menu when it's disabled. We'll definitely need to so some user testing in the wild to see how the context sensitive button pans out but I like the idea overall as it simplifies the interface by removing irrelevant complexity from the user!
Sure - I've updated mockups accordingly. Not sure whether or not we need to do colors or not but I can set it up so we can see how it looks!
Hmm there goes that idea! :) It's not that simple I suppose. I'll chat with you more on this but it might be best to revert back to providing them as menu options / context sensitive.
I've adjusted this a bit per your feedback. Should be more to your liking. I have a small arrow indicating a dropdown instead of that large clunky arrow. The dropdown is wider but covers the currently selected file. This is just per googles convention: |
Yes... either a blank spot where the Context-Button would have been, or perhaps ideally, a gentle animate-stretch of the filename's width to occupy that blank space.
Right. It's not possible to see the memory map if it can't compile. Not sure how we'd explain that to people with brevity... except through this interaction and their experience. |
Yes, let's chat about that; I thought of a hybrid approach that, while probably not super easy to implement, would be really nice.
I had a feeling the "cover" behavior was unavoidable using Google's convention. :-( |
Updated mobile mockup screencast and also PDF is here. |
Updated desktop mockup screencast and PDF is here. |
@jimjeffers - Here's my desktop mockup feedback: Project Drawer
File View
Editor
|
Touch vs. Keyboard
More Menu on the Editor
Interactive Mockups
Schedule
|
Per our last conversation. Some of the interactive mockups have been completed: Desktop file navigator show / hide:https://drive.google.com/file/d/0B53rXRf-3dMiWE4yN2pnYjktaGM/view?usp=sharing Interactive version: Mobile File Navigator Toolbar Transitionshttps://drive.google.com/file/d/0B53rXRf-3dMiNDVMMmVNUGhnekE/view?usp=sharing Interactive Version: |
@jimjeffers - Thanks.
|
@jimjeffers Updated Compilation Timing - That's much better! Thank you. |
@PropGit Is it not working for you? It should allow text entry via your actual keyboard. Not by clicking on the fake on screen keyboard. I will check in Chrome. It works in Safari. |
@jimjeffers - I see, it does indeed work with hardware keyboard, but only when Debug Terminal is full screen. |
@PropGit Right! There was a bug. Now if you tap on the field it will launch into full screen with the virtual keyboard: http://share.framerjs.com/4lwlryiuyq28/ The idea is you'd need to be in full screen if you actually want to transmit on mobile as you're going to be using the virtual keyboard in most cases and screen real estate is too limited. Thoughts? |
I see. I think that works well for mobile (phone), but may not necessarily apply to tablet and certainly not desktop. When we get back to those interactives, I'd like to explore making it take advantage of the extra |
@PropGit Agreed! I think in the case of mobile - if a hardware keyboard were detected - we could disable the transition to full screen. On tablet/desktop this won't even be a design consideration as the debug console will not usually be fullscreen, if ever. |
Find and Replace (Mobile)On mobile we will have limited screen real estate. The interface for find and replace is built off the accessory view where the find and replace button is displayed.
PDF Documenthttps://drive.google.com/file/d/0B53rXRf-3dMiemE4cjUtTjlSTE0/view?usp=sharing ScreencastUpdated UI:https://drive.google.com/file/d/0B53rXRf-3dMiUkFNQXFvYlU4S1k/view?usp=sharing Deprecated UI:https://drive.google.com/file/d/0B53rXRf-3dMiUy1tbEdXMGlPbkU/view?usp=sharing |
Hey @PropGit I've updated the find and replace screencast and PDF with an updated UI that allows for more advanced functionality such as case sensitivity and partial/whole word toggles. I also replaced the next/previous button with one search button to simplify the UI given how compact the UI is. |
@PropGit The original file navigation demo will now actually adjust the code contents when you switch between projects: http://share.framerjs.com/u87mxiqrfioa/ Also - I've added some documentation for this demo to the master document: https://docs.google.com/document/d/1AZIVgcckDK1XsJvnb4-j_FkSNyKqPzBif2twwZN0ccg/edit?usp=sharing |
Import / Export ButtonsI've added the import and export buttons so that those operations can now be done at a project and file level. I've also added the functionality.
Screencasthttps://drive.google.com/file/d/0B53rXRf-3dMiLUlGNnNNaXQ4c3c/view?usp=sharing PDF Documenthttps://drive.google.com/file/d/0B53rXRf-3dMiV3l6bGJnTFBBbVU/view?usp=sharing |
Great start! I like all the features you display and the behavior described, especially the "x of total" indication. Below is some more feedback and ideas.
|
Fantastic! Thanks, it works! |
Those options and your described operation look good.
|
Thanks @PropGit I'm going to implement some revisions today and also work on the directives. If you're free we could chat tomorrow to cover all of the ground we've covered now. I think the entire list is covered except the dialogs which we'll have to do at the start of next month's iteration as we're going to run out of hours in this month pretty soon! |
@PropGit Perhaps on find and replace I will hide the navigation bar until the find and replace is dismissed. This should open up a noticeable amount of editor space. |
@PropGit I'm hesitant to perform a gesture based find and replace as just from personal experience in IDEs I'm used to scrolling the document and reviewing the highlighted areas as well as using the search button to jump to the next occurrence if I need to. |
@PropGit I'll try out a version where you have to actually toggle replace to see the full interface! I thought about it but was having trouble finding the space for the extra button that could do this. I'll brainstorm a bit more! If anything it could be on the more menu. |
@PropGit I've updated the find and replace demo:
PDF Documenthttps://drive.google.com/file/d/0B53rXRf-3dMiTzVXZHBDZnhVMGs/view?usp=sharing Screencasthttps://drive.google.com/file/d/0B53rXRf-3dMiTm9qSTRVNkhsMEU/view?usp=sharing |
DirectivesThis is more of a brainstorming post than anything. But I'm thinking we can use a little helper icon such as a lightbulb on special lines of code where we can provide a menu of suggestions to the user. This is how intelli-j handles code suggestions and it works quite well in Android Studio. I also discuss some ideas on how we're going to handle new files on mobile. We discussed this before but it will be important to figure out how we will handle this as it will also segue quite well into the dialogs we still have to design. Let me know your thoughts! https://drive.google.com/file/d/0B53rXRf-3dMiX1ZOQ3ZRc1NqQnc/view?usp=sharing |
Excellent idea.
Understood. I have a suspicion a natural feeling interface can be had, but I don't know the solution and can't afford the time to dream it up right now, so we'll leave that idea on the back burner.
Thanks.
Oh that works great! I like it!
Fantastic!
Ideal!
Yes! That feels much better! I prefer the lightbulb appearing only when the cursor is on the related statement line; this, for the reason you noted, that it's hard to tap the correct one if there are two that are close to each other. I think the drop down menu should appear below the line that it relates to. This is partly so the user can still see the line they are affecting, but also because it's confusing when there are two adjacent lines that are special like this.
I'm glad you've brought this back up. Yes, the 'X' is a fantastic idea here. Clicking the 'X' should prompt the user to save or confirm the discard of the new file. There's a feature we are used to having in our legacy editors where no files actually need to be saved before actually using them in a compiled project. This feature covers the case if we don't choose to implement that (which it isn't implemented yet), so it's something we may choose to replace in the future. |
Dialog DesignHere is a list of dialogs and screenshots from our current dialog designs where they already exist.
|
Find / Replace
Lightbulb
Import/Export
|
Thanks for the dialog info @PropGit |
Hey @PropGit! Sorry I have gone missing since we last chatted. I had come down with a pretty bad cough / cold and fell behind schedule this month. I still have a bit of this irking itch in my throat which I hope is not too distracting in the screencasts. I tried to edit out the coughing where I could! First off. I wanted to touch on the general house keeping revisions we discussed per our last call. I'll make sure these updates make it into their associated PDF's that I already have linked to in the documentation. This screencast covers revisions to:
Take a look when you can: https://drive.google.com/a/sumocreations.com/file/d/0B53rXRf-3dMiMzRNQjhaWXhVR3M/view |
@PropGit Get ready for a mobile dialogs marathon: In this screencast I run through pretty much every dialog box that we will likely plan on implementing in the initial version of the editor. The only exclusions and the areas we need to have discussions will center around how we want to approach 'help' and 'settings'. Screencast:https://drive.google.com/a/sumocreations.com/file/d/0B53rXRf-3dMia0d1U0ZiQm13QXc/view PDF:https://drive.google.com/open?id=0B53rXRf-3dMiN2RGdU5OV1BPQ1U |
@jimjeffers - I've reviewed the screencasts.
Excellent! Looks better than I imagined and very clearly defines the problem to the user. I like your idea of adding the message in the code font that looks and acts like a hyperlink.
The lightbulb is perfect. To verify, I do like having the menu drop below the line that it applies to; that works great.
That looks great without the keyboard. Thanks for showing that.
That's a good attempt, but it still doesn't strike me the way I was hoping. The fact that there's two arrows in both cases is the point of confusion. I've got an idea! Take a look at the share icon; it's a dot (representing a project/file/place that connects out to two other dots (places) via lines to represent sharing one thing to possibly multiple others. How about we use that concept and take make two dots and the line going between them (angled from top-left to bottom-right) and make the line an arrow facing the bottom dot. That's "import." Then the export is that same icon rotated counter-clockwise so it goes from lower-left to upper-right. The point is, in each case, the bottom dot is the "place of concern" where the external item is being imported to, or exported from. Let's talk in our meeting about this.
I think you're hitting the target well. Navigating Away from a New Unsaved FileExcellent!
ScanningFantastic simplification.
Move
Import/ExportAs discussed, this it to get projects or files into/out-of the applications storage area |
@PropGit The PDF for the dialogs has been updated with:
The updated link is here: |
@PropGit Also I made some updates to the identify dialogs so that they show longer device names, the current port getting scanned, and longer custom names that are truncated. |
I have a feeling all the dialogs with textboxes in them are going to be a nightmare to develop since web applications don't have access to height of the keyboard, etc. Are they really best as dialogs? |
@phated We can display them as full screen modal views if that is the case. |
[UPDATE: This discussion began as Project/File UI design but various issues pushed us to consider many other factors simultaneously. Once design of certain elements is deemed final, separate issues will be created to house each element individually]
Here are some notes from our initial discussion on file navigation:
File Navigation
Let’s create a list of common scenarios:
Questions to ask ourselves:
What’s good and bad about the way we’ve done things in the past?
People are struggling with how to add updated files for a given library… They include libraries inappropriately.
The names are different on every platform.. C drive on windows.. you don’t see the drive name but you see the user folder on mac/linux (mobile). Some platforms hide the nature of the storage of the medium. You don’t know where it is.. kind of like iCloud / cloud storage.
Simplify the way we manage files (hide the storage medium) but retain the ability to create sub directories within the project.
Most of the time our projects are stored in a given folder. Some files in addition to the executable source code.
Project selection — then project directory specific file system. Have the ability to export/import source for personal backups / sharing with others.
We do have a need to allow you to open up or view files from other projects.
What needs are different from the user’s of the parallax IDE?
How might we handle this design challenge on a small screen vs. a large screen?
In the Future:
8. Dependency Management.
Self managed — including a library. Third party and parallax based. Can we automate this process?
Stay away from dropping zip files onto the file drawer.
Version conflicts — automatic repository system. Has to retain a database of sorts so that this file is referenced (i.e. Gemfile or Podfile)
Send examples on Cocoapods, NPM, RubyGems.
The text was updated successfully, but these errors were encountered: