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

Final Assignment: Coroutines & Flow #7

Open
safaorhan opened this issue May 31, 2021 · 1 comment
Open

Final Assignment: Coroutines & Flow #7

safaorhan opened this issue May 31, 2021 · 1 comment

Comments

@safaorhan
Copy link
Owner

Background

In the last lectures we've seen how to use coroutines & flow and moved existing repositories to use that.

Now in this final assignment you need to move the rest of the code into coroutines and flow.

Also since this is the final assignment, you are expected to revisit all of the code you've written before and improve the whole codebase according to the principles we've seen in the lectures.

Todo

  • Move signup and related product features to coroutines (and flow if relevant).
  • In the screens you show a progress indicator use flow to emit loading, success and error states.
  • Revisit all of the code you've written so far, apply best practices we've learned if applicable.

What is accepted as bonus so far:

  • Showing / hiding keyboard meaningfully, resizing screen when keyboard is shown, etc.
  • Adding splash screens, launcher icons, etc.
  • Working on readme and other documentation.
  • Creating meaningful and SOLID-friendly abstractions.
  • Creating a minimal fragment that allows users to see product image in full screen (zoomable / pannable)
  • Writing unit tests.
  • and others...

What is not accepted as bonus so far:

  • Adding a whole feature. (e.g. shopping cart, favorites screen, ...)
  • Bad abstractions, over-engineered solutions for simple problems.
  • Things added to the design / functionality without confirmation
  • Working with dependency injection libraries
  • and others...

Notes

  • Maximum bonus points you can get:
    • 5 for improving design, fixing design problems, needs prior confirmation
    • 10 for improving functionality, fixing functionality related problems, needs prior confirmation
    • 15 for improving code-quality / architecture, doesn't need confirmation
  • Be careful with the code format and avoid over-engineering / over-abstracting stuff.
  • Don't forget to use the app yourself before submitting and try to catch bugs and find opportunities for improvement.
@safaorhan
Copy link
Owner Author

Github classroom link: https://classroom.github.com/a/VF1rB8aq

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant