An open API service indexing awesome lists of open source software.

https://github.com/hendrixstring/sfly-quest

sfly-quest
https://github.com/hendrixstring/sfly-quest

Last synced: about 1 month ago
JSON representation

sfly-quest

Awesome Lists containing this project

README

          

## Canvas control Points in Android

hi there, in this assignment, you will design a custom layout component for
**Android** which we will call **Pit** from now on.

### general description of `Pit`:
* `Pit` is a ViewGroup that renders an interactive horizontal 2D graph of points, between every point there is
a connected edge (linear edge).
* every point of Pit is draggable.
* `Pit` also draws the Origin axis lines
* when a point is dragged, the view is rendered again in order to show the edges,
that means Pit is responsive :)
* `Pit` also has a very unique feature, the reordering feature which goes like this:
if a user drags a point before or after another point, then Pit will change that point
order and therefore the edges will still render beautifully.
* `Pit` should have an interface to add point/s. every point is added at the origin axis (0, 0)

### restrictions of `Pit`:
* :warning: you **cannot use the built in Android drag functionality (i.e View.startDrag() etc..)**, you will have to write your own
drag logic with the help of your own custom `OnTouchListener`.
* :warning: each point should be extended from a `View` class itself, but you can also implement it otherwise (which will be
harder, but might be more efficient). your call.

### Pit should be inside a very humble activity
* the activity should have a pit layout inside and a button to add a point into pit. every new point that is added by this
button should be added at the origin axis (0, 0) coordinate.
* `Pit` should start with 5 different initial points.

### illustration of Pit

### Things we love to see
:heart: docs and comments for each new method.
:heart: we love optimal code and memory optimizations.
:heart: we love to see a programmer gainining deep insights about what he is programming.
:heart: that means we love great practices
:heart: but also feel free to be creative when you feel the time is right.
:heart: we love communication. don't hesitate to ask questions and boldly asking questions
about your assignment.
:heart: coolness and attitude, don't feel bad if you don't hit your goals, we will still consider
your efforts :2nd_place_medal:

### How to submit Pit?
confidently open a github account if you don't have one, create a repository, push all of your code into the repository
and notify us when you are done. :octocat:

### Who wrote this thing ?
me, Tomer Shalev, feel free to open issues or to bash me if you don't like this assignment :writing_hand: