Avocados is the most feature-rich and complex project built as a part of this series. The app is a food avocado lovers' dream, bringing together facts, recipes, a ripeness chart, and nutritional information in an elegant and engaging UI. Additionally, the project introduces the Form
container, allowing for easily structured content to be displayed or collected by the app.
This app is comprised of four main views, each delivering specialized content. The primary navigation is managed through a standard TabView
container which displays each view upon user selection. These views are comprised of dynamic components which parse their content and display it in each respective view based on structured loops.
Similar to previous app builds with static content, the data utilized by the application is stored as a struct
in the on-device app storage itself, allowing for fast retrieval and permanent storage of all data. Components such as the recipe views which consume this data, parse each element -including the step-by-step instructions- and display the data in responsive ScrollView
containers which adapt to the length of the content displayed within them.
Form
container. This container type is utilized to provide a structured interface for the app settings, and automatically adapt the design to respond to user input.
This app brings together several of the previously developed concepts to create a gorgeous food app, with a variety of content. However, the limitations inherent in the persistent app storage, mean that user interactions such as bookmarks and ratings are not easily implemented. This could be rectified by replacing the static data with a Core Data structure, and would allow for increased flexibility and customization of the app and underlying information (e.g., the storing of private notes or comments within recipes). Furthermore, utilizing the CloudKit framework alongside Core Data would allow for future app iterations to introduce new recipes on-the-fly, or even sync settings across installs.
Form
containers allow for further simplification of structured builds, and respond to their enclosed content without the need for manually specifying dimensions or restrictions for displaying the content. This functionality, paired with a CloudKit Core Data implementation, could allow for features such as a user profile, as well as user-generated recipes or other social-content such as public comments on recipes.