(Last updated the 11th Aug 2016 at 9:40, added notice about allowed use of available libraries and allowed separate code for iOS and Android)
This job description is quite long, but I will wait for proposals at least 3 days before selecting them, so please take your time to read it thoroughly. It's important we understand each other well from the beginning. Please try to refer to the job's goals and challenges in your proposal. Finally, please also don't hesitate to ask any questions you might have about the job or send me any comments. I will be glad to answer. We are a team of crazy enthusiasts, often trying to make things nobody has made before, but we are crazy about quality and perfection, too. If is sounds like what you want to do, you are welcome to join us :)
The job is to develop line chart drawing tools (libraries) for Android and iOS.
IMPORTANT: the charts have to look similar on both OSes, but the code behind them can be different, OS-specific. You can use any free chart libraries available. I don't expect you to develop everything from scratch.
Actually, it could be just an application and I will select the necessary code to embed it into my apps, but keeping your code and mine separate would be more convenient for future maintenance. It's up to you if these will be completely separate for Android and iOS or some code will be shared, but it would be convenient for me if the final tools could be used in a similar way and display similar results for the same data and the same parameters on both OSes. The tool should read data from a datasource or API (TBD with you what datasource or API would be convenient both for you and me), read line chart parameters and draw a screen with the chart and axes.
- data range (x axis range)
- line width,
- line color,
- data point symbol shape, size and color,
- interpolated or not (connect the data dots with a line or not),
- background color,
- color or gradient below the chart line (yes/no),
- color of the gradient below the chart line,
- axis names position and font,
- axis values density, position and font,
- scale a chart automatically to fit a screen and allow for manual scaling.
It should allow to manipulate a chart using gestures:
- narrow and extend the range of data displayed using, horizontally and vertically,
- move a chart up and down to allow for displaying parts of the chart beyond a screen (if the chart is not scaled to fit the screen),
- move a chart left and right to change the range of x axis data.
You can use any third party libraries as long as their license allows for it and as long as they meet the quality requirements of this job.
I have sketches of example screens explaining required design. I will send you the files on demand in private. Please just ask.
The first milestone would be a well defined specification. We would work on it together until no "TBDs" are left. We can agree together about more milestones as well.
Deliverables, what I would like to get at the end of the job:
- the tools (library),
- demo apps allowing to test all the features,
- API documentation - how to use the tool within other apps,
- clear, well structured, well commented source code,
- any other docs necessary to understand and use the source code and the tools.
- copyrights to all the used and resulting Intellectual Property. If are going to use any third party libraries or tools, please point me to their license before using it.
If possible, I would like this job to be finished by the middle of September. The earlier, the better, we could begin next jobs then. There are many in the pipeline, but I'm not able to handle too many at the same time.
Please don't hesitate to ask if you need any other information or have any doubts. I will answer all the questions.