Before you start building any features, you first must get acquainted with the domain of the app, devise a plan of attack and start building a strong foundation to support the app's features. You’ll learn about feature grouping, the many layers of the app and the domain of PetSave.
After getting to know the basic setup and structure of the app, the readers will learn about the other part of the Data layer, Networking. Here, readers will learn how the sample app connects to an external API and fetches data.
In this chapter, you'll learn about how you can persist data to a local database, and why this is vital for many modern mobile apps.
Section II: Building App Features
Using layers to logically organize your code is only part of the answer when it comes to structuring your app’s features. The user interface is the main connection between your user and your lower level layers, so it’s important to pick a proper architecture that you can easily keep up to date when you build your features.
In this section, you’ll go over the upper-level architecture for the app, while building out two new features. For this, you’ll use capabilities such as SwiftUI, Combine and async/await.
You'll start to build PetSave's first feature, Animals Near You. You'll learn about view models and how to organize your code and how to update the UI data changes. You'll also polish the UI so that users have a more pleasant list.
You'll build a search feature for PetSave app. You'll also learn how to reuse code between Animals Near You and the Search view.
Section III: Modularizing Your App
Don’t reinvent the wheel. Modules that others have built and provided to the community can save you time. You can also make your own modules to use later in your development or make them available to the community.
Modules (and the features they come from) have some costs though, one of which is navigating between features. In this section, you’ll explore how Xcode can help in not only the creation of, but the use of, modules in your app, and understand how features can be tied together with navigation.
This chapter will walk down the lane of TabView, NavigationView and Navigation in general. How to perform navigation with it in detail.
Section IV: Enhancing the User Interface & Experience
A successful user experience can be the difference between a 1-star and 5-star app on the App Store. Lively and responsive user interfaces, interactive controls, customization, localization, and accessibility all contribute to whether a user will re-engage with your app after their first use.
In this section, you’ll enhance the user interface with animations and custom controls. Also, you’ll start to get your app ready for the broad set of users in the world by applying human interface guidelines and accessibility features.
In this chapter, you'll look at the various ways you can customize your app's look and feel to give it a unique appearance in the App Store.
Section V: App Privacy, Maintenance & Deployment
As you approach deployment more and more things come to mind: am I protecting that user’s data and privacy? Do I have any edge cases in my code that I haven’t seen? How do I get beta testers, and why won’t my Code Signing work? All these questions can be summarized into three topics: Privacy, Debugging and App Distribution.
In this section you’ll dive deeper into these topics, getting you ready to send your app to the App Store.
In this chapter, you'll learn about user privacy by requesting access to the user's location data. You'll also learn how Apple makes apps be more transparent about what kind of data they are collecting.
Emily is an avid scavenger of typos and grammatical errors. She has worked extensively in the tech industry and was managing...
Who is this book for
This book is for iOS developers with a basic understanding of Swift, SwiftUI and Core Data, that want to understand the end-to-end process of creating an app. From having an idea to publishing it into the App Store.