Book Image

iOS 14 Programming for Beginners - Fifth Edition

By : Ahmad Sahar
Book Image

iOS 14 Programming for Beginners - Fifth Edition

By: Ahmad Sahar

Overview of this book

If you're looking to work and experiment with powerful iOS 14 features such as widgets and App Clips to create your own apps, this iOS programming guide is for you. The book offers a comprehensive introduction for experienced programmers who are new to iOS, taking you through the entire process of learning the Swift language, writing your own apps, and publishing them on the App Store. Fully updated to cover the new iOS 14 features, along with Xcode 12 and Swift 5.3, this fifth edition of iOS 14 Programming for Beginners starts with an introduction to the Swift programming language and shows you how to accomplish common programming tasks with it. You'll then start building the user interface (UI) of a complete real-world app using the storyboards feature in the latest version of Xcode and implement the code for views, view controllers, data managers, and other aspects of mobile apps. The book will also help you apply iOS 14 features to existing apps and introduce you to SwiftUI, a new way to build apps for all Apple devices. Finally, you’ll set up testers for your app and understand what you need to do to publish your app on the App Store. By the end of this book, you'll not only be well versed in writing and publishing applications, but you’ll also be able to apply your iOS development skills to enhance existing apps.
Table of Contents (31 chapters)
1
Section 1: Swift
10
Section 2:Design
15
Section 3:Code
24
Section 4:Features

Calculating a restaurant's overall rating

The Restaurant Detail screen's overall rating label displays 0.0, and the ratings view displays 3.5 stars, regardless of the actual rating. To add an overall rating, you need to get the ratings from all the reviews and average them. Let's add a new method to CoreDataManager to do this. Follow these steps:

  1. Click CoreDataManager.swift in the Project navigator (inside the Core Data folder in the Misc folder) and add the following method before the addReview(_:) method:
    func fetchRestaurantRating(by identifier:Int) -> Double { 
        let reviews = fetchReviews(by: identifier)
        let sum = reviews.reduce(0, {$0 + ($1.rating ?? 0)}) 
        return sum / Double(reviews.count)
    }

    In this method, all reviews for a particular restaurant are fetched from the persistent store and assigned to reviews. The reduce() method takes a closure, which is used to add all the review ratings...