Implementing the example project for the iOS Lead Essentials course
Give some assistive rules on how to write good stories and narratives.
As an online customer
I want the app to load the feed
So I can see the feed
Given the customer has connectivity
When the customer requests to see the feed
Then the app should display the latest feed from remote
And replace the cache with the new feed
As an offline customer
I want the app to show the latest saved version of my image feed
So I can always enjoy images of my friends
Given the customer has no connectivity
When the customer requests to see the feed
Then the app should display the latest saved feed
Given the customer has no connectivity
And the cache is empty
When the customer requests to see the feed
Then the app should display an error message
- URL
- Execute "Load Feed Items" command with above data
- System downloads data from the URL.
- System validates downloaded data.
- System creates feed items from valid data.
- System delivers feed items.
- System delivers error.
- System delivers error.
- Max age
- Execute "Retrieve Feed Items" command with above data
- System fetches feed data from cache.
- System creates feed items from cached data.
- System delivers feed items.
- System delivers error.
- Feed items
- Execute "Save Feed Items" command with above data
- System encodes feed items.
- System timestamps the new cache.
- System replaces the cache with new data.
- System delivers success message.
- System delivers error.
Property | Type |
---|---|
id | UUID |
description | String (optional) |
location | String (optional) |
imageURL | URL |
{
"items": [
{
"id": "a UUID",
"description": "a description",
"location": "a location",
"image": "https://a-image.url"
},
{
"id": "a UUID",
"description": "a description",
"image": "https://a-image.url"
},
{
"id": "a UUID",
"location": "a location",
"image": "https://a-image.url"
},
{
"id": "a UUID",
"image": "https://a-image.url"
}
]
}