What I would like to achieve in this application is a fast, responsive interface, designed to mitigate the delay during data retrieval.
A good organized application can help to reduce this problem and make users happy to use the application.
After this step, I did a mockup, with pencil, of the main screen of my application:
Let me show you how it should work... using the 3 bullet on the mockup
- bullet 1: this is the zone where chart of a selected company is displayed. At the first launch will display the chart of the first present company or, a message if none company is registered. As you can see, there is also on the top right a combo box. This combo box contains some prefixed , period: 1 week, 1 day, 1 month, 1 year ecc. Changing the combobox will update the chart accordingly to the selected period. I don't know if I will use a combo box, but it's just for the idea. I would like also to change the period, simply scrolling in or scrolling out on the chart.
- bullet 2: The list of your selected stock quote companies. At the launch of the application this table should be populated asynchronously .. putting every line , one by one, after every download of the information from a company, and making user informed of the in progress operation. Clicking on one of this row will update the chart.
- bullet 3: a toolbar for handling: add of a new company in the table, remove of an existing company, fullscreenmode. Fullscreen will be a mode to use all the screen for displaying the data of only one selected company with a chart that will take 90% of the screen. It needs a new mockup only for this.
I will try to reduce call to yahoo service whenever is possible with a local caching mechanism like save the data displayed on the table, save the data displayed on a chart for a company... So if I know that the data is locally present, I will not fetch it from Yahoo, otherwise I will fetch, display and save it locally.
Yes, it is not just finished here but, my time is limited so I need to proceed step by step and reach some milestones before proceed with other feature..
I prefer to create a working program with less feature but robust than an application with many feature and bugs.