https://github.com/hendrixstring/sfly-quest
sfly-quest
https://github.com/hendrixstring/sfly-quest
Last synced: about 1 month ago
JSON representation
sfly-quest
- Host: GitHub
- URL: https://github.com/hendrixstring/sfly-quest
- Owner: HendrixString
- Created: 2017-03-01T08:56:16.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2017-03-01T16:53:09.000Z (about 9 years ago)
- Last Synced: 2025-09-05T21:03:44.048Z (6 months ago)
- Size: 5.86 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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: