mgolokhov / dodroid

May the knowledge be with you!
MIT License
20 stars 12 forks source link

Decision on app navigation #16

Open JayBrizle opened 8 years ago

JayBrizle commented 8 years ago

I think the design for the app navigation should get settled on before we get too deep in features added. The 3 main patterns currently are Dashboard, Slide panels, and Tabs it seems. Any thoughts or visuals(Maxim is a great drawing artist lol) on this?

JaeW commented 8 years ago

Agreed. I was heading down a rabbit hole.

mgolokhov commented 8 years ago

))))) I like gmail app, google play app style (classic android user experience). Seems like slide+tabs.

JayBrizle commented 8 years ago

Sounds good. I did part of an app project tutorial that used that style before. Was a long time ago now though. I think that was using a ViewPager with tabs in the layout. I am currently at a part in a good Android book that is dealing with those things so maybe I can add in some of that stuff to get a rough prototype for that sort of navigation going here soon.

mgolokhov commented 8 years ago

Looking forward to your push request. Meanwhile i'll also study ViewPager.

JaeW commented 8 years ago

Guys, the Android Gmail app uses a RecyclerView. More on that here, here, and here.

Mentioned I've been working through Big Nerd Book. Exercise/Project which implements both RecyclerView and ViewPager can be found here.

In this case the RecyclerView is placed into a fragment. When you tap on one of the list items in the RecyclerView it takes you to that list item's data displayed in a ViewPager which can be swiped.

I'd be interested in giving the code a go, but there are two things beyond my current skill level.

1) In this case the data which populates the RecyclerView is contained in a <a href=http://www.tutorialspoint.com/java/java_using_singleton.htm">singleton, and I don't really understand the data structure being used in dodroid app.

2) The RecyclerView uses ViewHolders which have their own XML layout file. This layout file assumes that the data inserted into the inflated views is consistent. The questions for dodroid have a varying number of answers. I have no idea whether the layout file can be adjusted at runtime to account for this difference.

mgolokhov commented 8 years ago

I will check. One more link Providing Descendant and Lateral Navigation.

JayBrizle commented 8 years ago

I've paged through the nerd ranch book. Recycle view is a newer thing that came along with Material design, cards, etc. We can go that route then if you guys want. Just have to do a bit of reading on it. Shouldn't be too hard to implement since we aren't far into the project

mgolokhov commented 8 years ago

I think we should draw some sketches and graphs for navigation first.

mgolokhov commented 8 years ago

I don't really understand the data structure being used in dodroid app

Janice, you can ask questions in commits, check https://github.com/mgolokhov/dodroid/commit/a05efebcff6ffdc2507c9ffb800477c8a86b070f We'll add more comments.

JaeW commented 8 years ago

The Nerd Ranch chapter on RecyclerView is not great. Best explanation/walkthrough I've found is on the You Tube channel slidenerd. He has a 4-part RecyclerView tutorial - part 1 here.

I haven't worked with ListView, but it seems Google/Android is pushing the ReyclerView to replace ListView, GridView, etc. What's nice about it is the fact that the layout is determined by the RecyclerView's LayoutManager. You can switch the layout appearance easily simply by changing the LayoutManager instead of, say, having to change a ListView to a GridView in code. It's also very elegant in terms of memory management.

JaeW commented 8 years ago

Agreed - sketches of its layout would be nice. I know a graphic designer who might be interested in contributing, but if you guys want to design the UI yourselves that's cool, too. Just let me know if you're interested.

JaeW commented 8 years ago

Maxim - I did a learning bliz on git and finally got dodroid into Android Studio last night and played with it. Will go back and study the data structure tonight. Really interesting the way you used the ScrollView to contain question answers. Will look at that more, too, as it addresses one of the questions I had. AND will ask those questions in commits from now on.

mgolokhov commented 8 years ago

Would be nice to have a graphic designer in our team.

mgolokhov commented 8 years ago

Desperately need custom tags or "Other".

JaeW commented 8 years ago

Will contact graphic designer tomorrow.

Maxim, I gave you edit rights on both the Google sheet and the Google Form. My time this week, I think, is going to be super limited in terms of contribution, but please feel free to make any and all changes that would make form or data collection better.

JaeW commented 8 years ago

Hey Maxim - Found the "Add "other" option and added it on the form. How many "other" boxes should we provide? It would be nice to have a way to collect those "other" categories, validate them and then add the to a checkbox. I'm leery of spending so much time scripting/customizing this form that it takes away from learning to program Android.

Also agree that it would be nice to have an algorithm which flags potential duplicates. I have no clue as to how to do this, though.

mgolokhov commented 8 years ago

Thanks =)

My ideal use case: The user type a question, script searches (by nouns) possible matches and show them to the user.

To add checker is low priority. There are some add-ons, but I'm not sure that the Form can be changed at runtime. We can add javascript to validate table post factum.

mgolokhov commented 8 years ago

Anyway we have to re-read, modify and filter all questions manually.

JaeW commented 8 years ago

If the user checked the 'other' category box and then filled in a new category it would be easy for us to overlook it when checking these things manually. We already have 18 categories. Do you think it would be possible to add a script which, if it sensed the other category was chosen, it could copy the contents of the other text box to a separate sheet or column? I know there's a way to pull the checkbox list from another sheet. Not important too fix now -- just wanted to get the thought documented.

mgolokhov commented 8 years ago

It's possible with "Data validation...". and with script you can do anything you can imagine =)

JaeW commented 8 years ago

Cool. Thanks.

Hey Maxim, do you think we should set up a list of tasks in priority order? It may not be helpful to you two, but I have a tendency to go in too many directions and end up getting nothing done because I spin my wheels. If you don't want to do that, would you mind letting me know where I might be able to be most helpful so I can concentrate on those things (or that one thing - either way)?

mgolokhov commented 8 years ago

Let's check other apps with quiz and questions. Maybe can find good ideas there. https://play.google.com/store/apps/details?id=de.habanero.quizoid https://play.google.com/store/apps/details?id=english.grammar.test.app

JaeW commented 8 years ago

I'm on it. :-D

JaeW commented 8 years ago

The English Grammar app:

Don't like:
1) I'm a native English speaker (although the British might not agree) and i didn't get 100%. :-{ I'm going to be completely paranoid about my grammar now. 2) They wait until the end to give you feedback. If you get answer right that understanding is neurochemically reinforced if you get immediate feedback.
3) For dodroid, assuming user gets immediate feedback on an incorrect answer, it would be nice to have another chance to: 1) try again to answer correctly, or 2) come back to it later. I think users should have a limited number of times to get answer right before they are automatically moved along to the next question.
5) The extra movement when you swipe from page to page - where the questions fall into place at different rates - is really distracting. It doesn't add anything. 6) It allows you to choose tests by subject, but only one subject at a time. It would be nice if you could pick several subjects which are 'shuffled' or randomized

What I liked: 1) The splash screen explaining how it worked in a very simple way (your very fun Android image) would be perfect for that. 2) All of the answers are on the screen - no need to scroll up/down 3) The colors, white space and layout are easy to read even when the font is small - even thought it's on a small screen it feels like there's a lot of space 4) The Progress report. Would be cool if they had a bar chart or line chart which shows progress over time 5) Love the different visual cues in the Mixed Tests screen versus the By Topic screen (Mixed Tests has circular numbered buttons, By Topic is a list). Visually you know where you are in the app without having to read anything. 5) It's easy to get started with the app - It helps user make choices. For instance, the first choice is Intermediate/Advanced Intermediate. After choosing you are at a new screen with a new decision to make (Mixed Tests/By Topic). If you choose By Topic it waits for you to choose a topic before you see the Test1, Test2 or Test3 options. This is good - prevents user fatigue from having too many choices to make all at once (see The Paradox of Choice. 6) 7) After you finish a test you have the option to View Mistakes. It shows you a results screen with list of right/wrong answers. When you click on an item it takes you to that question. That list of right/wrong answers is still available on the left-hand side as a pull-out (which is very, very cool), but it's hard to find/know what it is. Should be more arrow looking so you know it's there and what to do with it.

All for now.

mgolokhov commented 8 years ago

Nice review =)

JaeW commented 8 years ago

It's going to be a few days or more before I can speak with my graphic design person. BUT, I had an idea which is a little nuts, but also just might work. There are gobs (lots - 161 in progress right now) of design courses offered through Coursera - some specifically relating to technology. What do you think of busting in (joining) one or more of those classes and posting to see if anyone is interested in collaborating on a real-world project? I don't think this is against Coursera's rules/honor code, blah, blah, blah. Thoughts?

JaeW commented 8 years ago

Alternatively, overall I really like the English Grammar app. I think it is a good design and incorporates most of what we have discussed. That could be used as a guide depending on what you guys think.

JayBrizle commented 8 years ago

I like some of the grammar app. We will need to break things up into categories to choose from similar to how they did, along with just having overall mixed test with different difficulty levels to choice from

JaeW commented 8 years ago

Like your suggestion a lot. Have you looked at the question collection form? We have added quite a few categories, but the list will expand. I think all of our current questions are at lowest level right now. The questions are in Google Sheet here.

JaeW commented 8 years ago

Looking like there are a LOT of User Interface questions. We might need to subdivide this category.

mgolokhov commented 8 years ago

Grammar app is nice, but they have only one right answer and a small question text. More apps

JaeW commented 8 years ago

Grammar app also seriously sucked my battery life.

JaeW commented 8 years ago

Talked to the graphic designer . . . . unfortunately this isn't something she has time for at the moment. Sorry about that.

JaeW commented 8 years ago

I'm really digging into Google's Material Design guidelines. I'll try to distill them down to essentials and then post only the most important. In the meantime I was looking for a way for the 3 of us to collaborate on wireframes. I found one called Creately which looks pretty easy to use and has Android controls in its shapes library. Its free plan allows for 3 collaborators and 5 public diagrams. Would that be enough? Check it out when you guys have a chance and let me know what you think.

mgolokhov commented 8 years ago

Never mind, we can do re-design latter. And our app is intended for programmers)))

JaeW commented 8 years ago

Sorry, are you saying ignore the material design? Or no big deal on the graphic designer? Or both?

JaeW commented 8 years ago

Totally agree we can re-design later, but do we have an agreed-upon design yet?

mgolokhov commented 8 years ago

Never mind about designer =)

JaeW commented 8 years ago

Ah . .. . . cool, cool.

JaeW commented 8 years ago

Also wanted to mention another tool which professional Android developers are using called App Inventor. Yes, they are also using it to teach kids to code, but it's a super easy way, once a design is agreed upon, to mock up the look and functionality before committing the hard-core code. Just a thought.

mgolokhov commented 8 years ago

Creately is cool, but let's try to do it the github may. We can play with milestones, assignee and other labels.

mgolokhov commented 8 years ago

We can test design\navigation feel and look here https://www.fluidui.com/

JaeW commented 8 years ago

Okay. There is a very basic wireframe took within GitHub called Mockup Designer. Haven't figured out how to work it yet.

mgolokhov commented 8 years ago

As GTD states sometimes low level tools are better (just notebook and pen).

mgolokhov commented 8 years ago

GTD - Getting Things Done

JaeW commented 8 years ago

Fluidui looks pretty cool. Especially the fact that it's "Delightful to use."

Agree with the low-level tools, but they work best when we're not all thousands of miles apart. Just my opinion, though.

JaeW commented 8 years ago

LOVE GTD. Use <a href=https://www.youtube.com/watch?v=2Y3Ybh60-2Y">GQueues with GTD. It's kinda fabulous.

JaeW commented 8 years ago

Anyway, here's the wireframe tool in GitHub.
http://fatiherikli.github.io/mockup-designer/#document/783e7f84-e690-68bf-9dff-5db10637cdfb

JaeW commented 8 years ago

I think I spoke too soon. Don't think it's for collaborating - think it's a project on which people are collaborating.

mgolokhov commented 8 years ago

new "masterpiece"

image