This is a file that contains all of my 100 Days Of SwiftUI projects which include all challenges and extras
![Image description](https://private-user-images.githubusercontent.com/68568073/346542083-efe16c23-2be0-45f2-88cb-4b54af93bece.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE4NTA5MjcsIm5iZiI6MTcyMTg1MDYyNywicGF0aCI6Ii82ODU2ODA3My8zNDY1NDIwODMtZWZlMTZjMjMtMmJlMC00NWYyLTg4Y2ItNGI1NGFmOTNiZWNlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI0VDE5NTAyN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWIzZWQ5Mjk1NzM3MjEwYmJkOTVkZmViYjlmZTJlODdmYTJkYzY2NjBlZjE0Mzc1MzAxZTg2NWUzZTM3N2NjMTImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.6x6dLKwKuczNU2SspLqwMlnrLV8sZvCmbWsNcvU51vQ)
An app that lets users learn about the missions and astronauts that formed NASA’s Apollo space program.
- How to use ScrollView to work with scrolling data, enabling the display of content larger than the available screen space.
- How to push new views onto the stack using NavigationLink, allowing for navigation between different parts of the app.
- How to work with hierarchical Codable data, making it easier to manage complex data structures.
- How to lay out views in a scrolling grid, providing a flexible way to present items in a grid format.
- How to load a specific kind of Codable data, ensuring precise data handling.
- How to use generics to load any kind of Codable data, increasing the versatility of data loading functions.
- How to format our mission view, creating a polished and user-friendly interface.
- How to show mission details with ScrollView and containerRelativeFrame(), enhancing the presentation of detailed information.
- How to merge Codable structs, simplifying data management and integration.
Check out the Moonshot Repository here🚀!
![](https://private-user-images.githubusercontent.com/68568073/346559083-6555db33-c6df-4192-92fb-3d44ce77948a.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE4NTA5MjcsIm5iZiI6MTcyMTg1MDYyNywicGF0aCI6Ii82ODU2ODA3My8zNDY1NTkwODMtNjU1NWRiMzMtYzZkZi00MTkyLTkyZmItM2Q0NGNlNzc5NDhhLmdpZj9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI0VDE5NTAyN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNmODMwNDRjMDFlZWZiMTZmYTc0NWZmZjMxMGQ2YmIzMGYwYjFmZTdmZjc5YjhiN2ZlZDE0NjkxYjEwZGVjN2QmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.FU21aT5BD6WtIdtZrBz1gyZGZG2ss9oE57m0ew1MTAI)
![Image description](https://private-user-images.githubusercontent.com/68568073/346535090-cabb5fc2-90e6-48bd-af72-9445cd140aec.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE4NTA5MjcsIm5iZiI6MTcyMTg1MDYyNywicGF0aCI6Ii82ODU2ODA3My8zNDY1MzUwOTAtY2FiYjVmYzItOTBlNi00OGJkLWFmNzItOTQ0NWNkMTQwYWVjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI0VDE5NTAyN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWE3Mzg0YjU0ZjFkNmUwYjdhZjFjNTA0YzhhMzI1NzM5ZDU2ZTMwZDkzMjU1NjFkZmYzYmM5Nzg3YTUwZmI1NzcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.pMJvLmYOUusS2l505I-CQJAdbS8vj3rtwKj5x8WeZQ4)
iExpense is an expense tracker that separates personal costs from business costs.
###Learn
- How to use UserDefaults to store and retrieve user preferences and app settings.
- How to conform to the Codable protocol for encoding and decoding data, making it easier to save complex objects.
- How to present modals and sheets using sheet(), providing a way to display temporary content over the current view.
- How to delete items from a list using the onDelete() modifier, enhancing the app’s interactivity.
- How to use the @Observable attribute to create observable objects that SwiftUI views can subscribe to, enabling reactive programming.
- How to create forms with text fields and pickers in SwiftUI, streamlining the process of user input.
Check out the iExpense Repository here🚀!
![](https://private-user-images.githubusercontent.com/68568073/346537683-c4fe2737-0a27-4b1a-9912-000c6a316f87.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE4NTA5MjcsIm5iZiI6MTcyMTg1MDYyNywicGF0aCI6Ii82ODU2ODA3My8zNDY1Mzc2ODMtYzRmZTI3MzctMGEyNy00YjFhLTk5MTItMDAwYzZhMzE2Zjg3LmdpZj9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI0VDE5NTAyN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ0OGZlYTk0MzdhZGU5ZTY0NTkzMzMwY2RiNDA3MjdmMDYwZWNjYzg1MTIzZDFlNDVmNjNmZTQ0ZmJlYmNhYTUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.iGigtU6If5jrtv_Y4thY55tjYNvT2NDagLI-Mm6PQTE)
![Image description](https://private-user-images.githubusercontent.com/68568073/344667809-ef79c445-81b8-4253-bcb5-a2021430a760.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE4NTA5MjcsIm5iZiI6MTcyMTg1MDYyNywicGF0aCI6Ii82ODU2ODA3My8zNDQ2Njc4MDktZWY3OWM0NDUtODFiOC00MjUzLWJjYjUtYTIwMjE0MzBhNzYwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI0VDE5NTAyN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTZlYzU4YTk0YzIwY2QzNmY4YjAxMGI1ODU0ZDVmOWZhYzlkNDBkZDFlMWQ5ZmJkNTM0Y2MyZjg3ODQ0ZWQ0YTUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.jAMmdeeu3iWY9hfoiFNsQTQ_TeFdRP-etxIPMRPIAh0)
Welcome to Multiply Mastery, the ultimate edutainment app designed to make learning multiplication tables fun and engaging for kids! With vibrant graphics and playful animations, children can practice their multiplication skills while having a blast.
- How to pass data between views in SwiftUI to maintain state and share information across different parts of the app.
- How to use Emitter Cells to create dynamic confetti animations, enhancing the app’s visual appeal and making learning celebrations more exciting.
- How to utilize SwiftUI’s declarative syntax to build user interfaces that are both interactive and easy to understand.
- How to implement customizable quizzes, allowing users to select ranges and question quantities for tailored practice sessions.
- How to incorporate third-party assets, such as Kenney’s Animal Pack, to add fun themes and characters, making the app more attractive to children.
- How to use SwiftUI modifiers, such as onAppear and onDisappear, to trigger actions when views enter or leave the screen.
Check out the Multiply Mastery Repository here🚀!
![](https://private-user-images.githubusercontent.com/68568073/344720133-4c722123-7a6c-4d2d-bb6c-f27d36f59383.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE4NTA5MjcsIm5iZiI6MTcyMTg1MDYyNywicGF0aCI6Ii82ODU2ODA3My8zNDQ3MjAxMzMtNGM3MjIxMjMtN2E2Yy00ZDJkLWJiNmMtZjI3ZDM2ZjU5MzgzLmdpZj9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI0VDE5NTAyN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQzY2RjN2JhMzc2Njk1ZmVmOWE4YTc4MWMzNzgzZDlhMzgwYmQ5NTIwM2QwYTA5OWM0ZGQxNWEyYWRjMjhkMmMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.NwOWdQvL4IbbLuhB-TUEiwE3HimjDqVM_jMuH0UzcK4)
![Image description](https://private-user-images.githubusercontent.com/68568073/303761899-7e92ee01-1ea4-4584-bbd3-c48fde6e510c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE4NTA5MjcsIm5iZiI6MTcyMTg1MDYyNywicGF0aCI6Ii82ODU2ODA3My8zMDM3NjE4OTktN2U5MmVlMDEtMWVhNC00NTg0LWJiZDMtYzQ4ZmRlNmU1MTBjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI0VDE5NTAyN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNmMzQ5NjU2NzAxN2UxMmMwZGRjMjA3MmY0MGUyMGRlMzAxMWRmOTg1MzQwZTg2Yjg4NzMxNmE1OTI2NDVjZWImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.qbxrw6zDvXc8C-8FbrW-KHTp7HQI1rTAF1_cqCPBfgQ)
The game show players a random eight-letter word, and ask them to make words out of it. For example, if the starter word is “alarming” they might spell “alarm”, “ring”, “main”, and so on.
Check out the Word Scramble Repository here🚀!
- How to use List to display rows of data in a scrollable view.
- How to use onAppear modifier to perform actions when a view appears on screen.
- How to use Bundle to access the app’s resources such as images, sounds, or data files.
- How to use fatalError() to terminate the app when an impossible condition occurs, and how to identify such conditions with experience.
- How to use UITextChecker to check the spelling and grammar of a string, and how to suggest corrections.
![Image description](https://private-user-images.githubusercontent.com/68568073/302059507-5fb7b36f-b100-48e3-956f-d83c29e6b361.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE4NTA5MjcsIm5iZiI6MTcyMTg1MDYyNywicGF0aCI6Ii82ODU2ODA3My8zMDIwNTk1MDctNWZiN2IzNmYtYjEwMC00OGUzLTk1NmYtZDgzYzI5ZTZiMzYxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI0VDE5NTAyN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI4NDI5Zjc0NWEyYzRlOWIxOWJjZjY0MDZhNGNhNjg4OWM1ZWU1MjVlNjZlYjYzOWU0NWEzOWVlNDEwODU0ODkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Y7Itwr8jgB60auJ0_1uqzXl0S0kvU1JPIQPMNvd2xeQ)
BetterRest is an app that uses machine learning to help you optimize your sleep quality based on your wake-up time, desired sleep duration, and coffee consumption. By using regression analysis, it can predict the best time for you to go to bed and adjust to your personal preferences. BetterRest is a smart and simple way to improve your health and well-being. 😴
Check out the Better Rest Repository here🚀!
- How to create and use forms and bindings in SwiftUI to collect user input and update the UI accordingly.
- How to use various components such as DatePicker, Stepper, and Text to display and manipulate data in different formats.
- How to add buttons to the navigation bar and use navigation links to navigate between views.
- How to use Create ML and Core ML to train and use a machine learning model that can perform regression analysis on your data and make predictions.
- How to use machine learning for various purposes and scenarios, while respecting the user’s privacy and security.
![Image description](https://private-user-images.githubusercontent.com/68568073/296508557-9a7541b0-4559-4409-8e3d-c735d31d1f3d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE4NTA5MjcsIm5iZiI6MTcyMTg1MDYyNywicGF0aCI6Ii82ODU2ODA3My8yOTY1MDg1NTctOWE3NTQxYjAtNDU1OS00NDA5LThlM2QtYzczNWQzMWQxZjNkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI0VDE5NTAyN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJlZTFkYjA1ZDRkZGY2ZjRmMzBhODcyYWY2N2IzZjYwMjNjZjA3N2YwOTcxZWIwZjc2YjA5YjE3NDYxOWY1MTkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.nf54Cjy1G90eO4zz2qMsCQoBR6iaBAxIhVIYudPwIpM)
A brain training game that challenges players to win or lose at rock, paper, scissors.
Check out Rock, Paper, Scissors Game Repository here🚀!
![Image description](https://private-user-images.githubusercontent.com/68568073/266797338-f675e746-8013-4396-a301-ee4b1d4c6d3c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE4NTA5MjcsIm5iZiI6MTcyMTg1MDYyNywicGF0aCI6Ii82ODU2ODA3My8yNjY3OTczMzgtZjY3NWU3NDYtODAxMy00Mzk2LWEzMDEtZWU0YjFkNGM2ZDNjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI0VDE5NTAyN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRjMTczZjg4MTBkNWMxYmUyMzExNWYzMjBkM2E0Y2FlZDA3YmZiODAxODNkZmZjNTUzMGRjMzg1ZmM4NmY5NTQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.87J-lKG8ixzIXzHHnYq6NNsAvPtSJime4Q2TYNpI47E)
A guessing game that helps users learn some of the many flags of the world.
Check out the Guess The Flag Repository here🚀!
- Stacks to arrange views
- Colors and frames
- Gradients in SwiftUI
- Buttons and images
- Showing alert messages
- Stacking up buttons
- Showing the player’s score with an alert
- Add an @State property to store the user’s score, modify it when they get an answer right or wrong, then display it in the alert and in the score label.
- When someone chooses the wrong flag, tell them their mistake in your alert message – something like “Wrong! That’s the flag of France,” for example.
- Make the game show only 8 questions, at which point they see a final alert judging their score and can restart the game.
![Image description](https://private-user-images.githubusercontent.com/68568073/260293766-c09430c5-82ad-4c19-8520-8f57f44a56b1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE4NTA5MjcsIm5iZiI6MTcyMTg1MDYyNywicGF0aCI6Ii82ODU2ODA3My8yNjAyOTM3NjYtYzA5NDMwYzUtODJhZC00YzE5LTg1MjAtOGY1N2Y0NGE1NmIxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI0VDE5NTAyN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNkOTIwNGY4Njg0NDBiNThiNTAzMjczOGVhNGIwNTI4M2QwMzc0OWJiOGUxNjAwODg3NmYzZDg5NjQ0N2VkMGMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.M8aPFSKGTbdLcXG5DFiD_l_06K2aomI1CuKhPzb1HHg)
An app that handles unit conversions.
Check out the SwiftScale Repository here🚀!
- Build forms and sections
- Create navigation views and navigation bar titles
- Create tabbar views with icons.
- Store program state with the @State and @FocusState property wrappers
- Sreate user interface controls like TextField and Picker
- Create views in a loop using ForEach.
- Hiding the keyboard
![Image description](https://private-user-images.githubusercontent.com/68568073/258925239-f20f8cea-b483-42ba-ae9b-e6c515771cdc.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE4NTA5MjcsIm5iZiI6MTcyMTg1MDYyNywicGF0aCI6Ii82ODU2ODA3My8yNTg5MjUyMzktZjIwZjhjZWEtYjQ4My00MmJhLWFlOWItZTZjNTE1NzcxY2RjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzI0VDE5NTAyN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTZjOWFhNTdkZmI1OWMwYTYwMmUxNTgzYWI5ZTc2ZWRlMzJkZmMxNWExMjg4MDI1OTJmOGE0MzhiZDQxZTA5ZmMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.M8aM7-WNQtthwXR-p7F5LpgzGx6yszeOW1oysQwesBY)
This project is a check-sharing app that calculates how to split a check based on the number of people and how much tip you want to leave.
Check out the We Spit Repository here🚀!
- Build forms and sections
- Create navigation views and navigation bar titles
- Store program state with the @State and @FocusState property wrappers
- Sreate user interface controls like TextField and Picker
- Create views in a loop using ForEach.
- Add a header to the third section, saying “Amount per person”
- Add another section showing the total amount for the check – i.e., the original amount plus tip value, without dividing by the number of people.
- Change the tip percentage picker to show a new screen rather than using a segmented control, and give it a wider range of options – everything from 0% to 100%. Tip: use the range 0..<101 for your range rather than a fixed array.