Open jimjeffers opened 8 years ago
@jimjeffers Follow-up from our discussion:
@jimjeffers I've updated the notes from discussion and the Next Design Elements.
@PropGit Thanks!
Interacting with the debug console while on a mobile device can be done in several ways:
To hide the console:
http://share.framerjs.com/gjlygdab2r7o/
https://drive.google.com/file/d/0B53rXRf-3dMiRlVhN0NKUW1kblU/view?usp=sharing
( This post is documented in a centralized doc where further screencasts/interactive contnet will be documented: https://docs.google.com/document/d/1AZIVgcckDK1XsJvnb4-j_FkSNyKqPzBif2twwZN0ccg/edit?usp=sharing )
@PropGit I've posted a quick screencast showing how XCode provides a very thorough amount of find and replace capabilities in a small UI. This is just for reference purposes:
https://drive.google.com/file/d/0B53rXRf-3dMid3BqbUVZdnNjWXc/view?usp=sharing
Syntax errors change the IDE in a number of ways:
http://share.framerjs.com/gn99syob7hps/
https://drive.google.com/file/d/0B53rXRf-3dMiaWJ3Y0JCbFN6eUk/view?usp=sharing
( This post is documented in a centralized doc where further screencasts/interactive content will be documented: https://docs.google.com/document/d/1AZIVgcckDK1XsJvnb4-j_FkSNyKqPzBif2twwZN0ccg/edit?usp=sharing )
@PropGit Please check out the latest update for demo on errors in the IDE. I'll be in touch soon. Hopefully one more major demo before the end of this week!
@jimjeffers
Debug Console (Mobile)
Interacting with the debug console while on a mobile device can be done in several ways:
Excellent work, Jim! That exactly meets my vision of how the Debug Terminal arrives and departs from the UI. Fantastic!
@jimjeffers
...quick screencast showing how XCode provides a very thorough amount of find and replace capabilities in a small UI.
Thanks Jim. They packed a lot of functionality into that small space. I like it as inspiration. We'll have a simpler and smaller interface, as you know, but I'll consider how they solved certain problems to explore how we can achieve what we need. This was very beneficial.
@jimjeffers
Error Highlighting (Mobile)
Syntax errors change the IDE in a number of ways:
Wow, that looks fantastic! Even better than I envisioned; I love it! Thanks Jim! I'm excited to see the next demo too.
Also, I really appreciate how you're presenting these and the feature list and formatting in your posts regarding it. This combined with the centralized doc is perfect for us and Iced Dev in the future.
I've created landscape alternates of the following mockups:
The on screen keyboard creates some important changes:
https://drive.google.com/file/d/0B53rXRf-3dMiOWxoTWdEM016eU0/view?usp=sharing
( This post is documented in a centralized doc where further screencasts/interactive content will be documented: https://docs.google.com/document/d/1AZIVgcckDK1XsJvnb4-j_FkSNyKqPzBif2twwZN0ccg/edit?usp=sharing )
@jimjeffers - perfect decisions. Also, the static PDF-only renditions of landscape are great for getting the idea across without spending extra time for an interactive; exactly as we discussed. Thank you.
@jimjeffers [Edited as per our discussion on 2/16/16]
Our Education department suggested that the Run / Error button (icon) have a third, intermediate state the represents when the app is waiting for editing to finish. So the idea is:
The Processing button icon may be something like a keyboard, or a pencil, or something representing work being done, but still subtle enough to not be distracting upon transition from Run to Processing, or Error to Processing.
The Processing state would be indicated by the current button (Run or Error) being shaded, or otherwise altered slightly to indicate that something is happening. It's probably wise not to make it look disabled, because it is really still an active feature that can accept a mouse click of touch gesture to force the tokenization, and possibly download, the moment the user accesses it.
The Processing state button would appear the moment an actual edit occurs, and would stay until the moment tokenization is completely (failed or success). In the background, of course, there'd be a delay imposed to allow a certain amount of idle time (after edit) before it actually tries to tokenize again.
Can you ponder this and come up with some possible icons to use for this intermediate state?
@PropGit I've created an updated interactive with a debounce timeout of 1 second. We can tweak this as needed but you can see the processing state in action:
http://share.framerjs.com/69o16i7r9c79/
I have also updated the design document but have not created an updated screencast for this update. If you think it's necessary I will happily do so but wasn't sure if we needed it in this minor change. Instead I added a 4th list item on the design doc page explaining the debounced processing state.
@jimjeffers That's great. No need for a screencast. Please bump the timeout up to 1.5 seconds. Done.
@PropGit Take a look at this updated version of the debug console. I have updated the google doc with this new link and have updated the description accordingly to provide some direction as to how we want the resizing to behave:
@PropGit The timing on the compilation and snackbar have been bumped up slightly. They are explicitly defined in the google doc along with this updated link:
@jimjeffers Updated Debug Console - Resizing works great. Is it ready to accept text into the Transmit Pane? I wasn't able to type anything there.
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 screen space to allows virtual keyboard input (or hardware keyboard) even when the Debug Terminal is not full screen.
@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.
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.
https://drive.google.com/file/d/0B53rXRf-3dMiemE4cjUtTjlSTE0/view?usp=sharing
https://drive.google.com/file/d/0B53rXRf-3dMiUkFNQXFvYlU4S1k/view?usp=sharing
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
@PropGit
I'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.
https://drive.google.com/file/d/0B53rXRf-3dMiLUlGNnNNaXQ4c3c/view?usp=sharing
https://drive.google.com/file/d/0B53rXRf-3dMiV3l6bGJnTFBBbVU/view?usp=sharing
@jimjeffers
Find and Replace (Mobile)
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.
@jimjeffers
The original file navigation demo will now actually adjust the code contents when you switch between projects.
Fantastic! Thanks, it works!
@jimjeffers
Import / Export Buttons
I've added the import and export buttons...
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:
https://drive.google.com/file/d/0B53rXRf-3dMiTzVXZHBDZnhVMGs/view?usp=sharing
https://drive.google.com/file/d/0B53rXRf-3dMiTm9qSTRVNkhsMEU/view?usp=sharing
@PropGit
This 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
@jimjeffers
Perhaps... I will hide the navigation bar until the find and replace is dismissed.
Excellent idea.
I'm hesitant to perform a gesture based find and replace...
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.
- Simplified the more menu to opt with the toggle solution.
Thanks.
- Added an option to toggle the replace field on and off via the more menu.
Oh that works great! I like it!
- The navigation bar is hidden when find/replace is active.
Fantastic!
- The navigation bar reappears if the keyboard is dismissed but find and replace is still active.
Ideal!
Directives - lightbulb idea
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.
New File - 'X' to close
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.
Here is a list of dialogs and screenshots from our current dialog designs where they already exist.
Save
Our goal is to make the existing dialog (below) use a different title, "Enter a name for this new file." and also change the "Save As" button to a "Save" button.
Goal: to make the existing dialog (below) use a button called "Save" instead of "Save As"
Delete
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'.
https://drive.google.com/a/sumocreations.com/file/d/0B53rXRf-3dMia0d1U0ZiQm13QXc/view
https://drive.google.com/open?id=0B53rXRf-3dMiN2RGdU5OV1BPQ1U
@jimjeffers - I've reviewed the screencasts.
- Missing directives
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.
- Suggestion menu (lightbulb menu)
The lightbulb is perfect. To verify, I do like having the menu drop below the line that it applies to; that works great.
- Find / Replace without the keyboard
That looks great without the keyboard. Thanks for showing that.
- Import/Export icons.
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.
- Dialogs
I think you're hitting the target well.
Excellent!
Fantastic simplification.
As 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: https://drive.google.com/open?id=0B53rXRf-3dMiN2RGdU5OV1BPQ1U
@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:
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.