Initial commit of base project.
Step 0 - The basic list with an XML model. …
Start with empty list
add ListView
Add xml model
Add ListItemComponent for item
(Add ListItemComponent for todaytem)
Step 1 - SimpleQueryDataModel and SqlDataQuery
The simplest way to populate a list is using the SimpleQueryDataModel, but it has drawbacks for large data sets and a very basic refresh functionality.
Step 2 - AsyncDataModel and SqlDataQuery
Replacing the SimpleQueryDataModel with an AsyncDataModel give us a model which is more flexible. It utilizes a cache which makes it capable of handling large data sets. It also has a more advanced mechanism for updating the data (more on that later).
Step 3 - AsyncHierarchicalDataModel and SqlHeaderDataQuery
To present data that is not organized in a flat structure but in sections with a heading the AsyncHierarchicalDataModel can be used.
Step 4 - Setting up the query for different cities and continents.
Step 5 - The WeatherDataSource is added will be used to request more data and notfiy the query->model->list when new data is available.
Step 6 - Adding loaded data to the database and updating the list.
Step 7 - Loading data at the end of the list
ListScrollStateHandler - onAtEndChanged
Model decoration at the end of the list
Step 8 - Updating a Hierarchical Model
No emitDataChanged() in SqlHeaderDataQuery we have to introduce our own class SqlHeaderDataQueryEx that has this functionality
Step 9 - Pull to refresh Updating at the top.
We add a leadingVisual CustomControl that can trigger loading newer items (if any).
Step 10 (final) - Error handling and edge cases + home city.