Skip to main content

📗 Hacking with iOS: SwiftUI Edition

A hands-on guide to learning Swift and iOS development using SwiftUI. This book covers a series of real-world projects that teach Swift programming and iOS development through practical, step-by-step tutorials.

Details

URL: 🔗 https://www.hackingwithswift.com/store/hacking-with-ios

Published: March 2, 2022

Authors: Paul Hudson

Tags:
SwiftUI, Swift, iOS Development, Tutorials, Programming

Key Points

  • Hands-on tutorial series for learning Swift and iOS development with SwiftUI
  • Focus on practical projects and real-world applications
  • Milestones and exercises to reinforce learning
  • Suitable for developers of all levels

Summary of Contents

  • Project 1: WeSplit

    • Introduction to SwiftUI app structure
    • Creating a form and adding navigation
    • Modifying program state and binding it to UI controls
    • Creating views in a loop, reading text from the user, and creating pickers
    • Calculating totals and hiding the keyboard
  • Project 2: Guess the Flag

    • Using stacks to arrange views
    • Colors, frames, gradients, buttons, and images
    • Showing alert messages and stacking buttons
    • Styling views and upgrading design
  • Project 3: Views and Modifiers

    • Understanding why SwiftUI uses structs for views
    • Conditional and environment modifiers
    • Custom modifiers and containers
  • Project 4: BetterRest

    • Using Stepper and DatePicker for user input
    • Training a model with Create ML and connecting to Core ML
    • Cleaning up the UI and building a layout
  • Project 5: Word Scramble

    • Introducing List and loading resources from the app bundle
    • Working with strings and validating words
  • Project 6: Animation

    • Creating implicit and explicit animations
    • Animating gestures and transitions
    • Building custom transitions using ViewModifier
  • Project 7: iExpense

    • Using @StateObject to share SwiftUI state
    • Deleting items, storing user settings, and archiving Swift objects
    • Working with Identifiable items and UserDefaults
  • Project 8: Moonshot

    • Using GeometryReader for layout
    • Working with Codable data and generics
    • Formatting views and merging Codable structs
  • Project 9: Drawing

    • Creating custom paths and shapes
    • Using Metal for high-performance rendering
    • Adding special effects and animating complex shapes
  • Project 10: Cupcake Corner

    • Adding Codable conformance for @Published properties
    • Sending and receiving data with URLSession and SwiftUI
    • Loading images and validating forms
  • Project 11: Bookworm

    • Creating a custom component with @Binding
    • Combining Core Data and SwiftUI
    • Sorting fetch requests and showing book details
  • Project 12: Core Data

    • Creating NSManagedObject subclasses and saving data conditionally
    • Ensuring unique Core Data objects using constraints
    • Filtering and dynamically filtering fetch requests
  • Project 13: Instafilter

    • Integrating Core Image with SwiftUI
    • Wrapping UIViewController in a SwiftUI view
    • Filtering images and saving to the photo library
  • Project 14: Bucket List

    • Adding conformance to Comparable for custom types
    • Integrating MapKit and using Face ID
    • Downloading data and introducing MVVM
  • Project 15: Accessibility

    • Identifying views with useful labels and grouping accessibility data
    • Fixing accessibility issues in previous projects
  • Project 16: Hot Prospects

    • Using @EnvironmentObject to read custom values
    • Creating tabs and adding context menus
    • Scheduling local notifications and generating QR codes
  • Project 17: Flashzilla

    • Using gestures and haptics
    • Designing a card view and moving views with gestures
    • Counting down with a Timer and making iPhones vibrate
  • Project 18: Layout and Geometry

    • Understanding frames and coordinates inside GeometryReader
    • Creating ScrollView effects and custom alignment guides
  • Project 19: SnowSeeker

    • Working with side-by-side views
    • Making NavigationView work in landscape mode
    • Binding alerts to optionals and making views searchable

Conclusion

  • Recap of key concepts and encouragement to practice and explore further
  • Emphasis on hands-on learning and building real-world projects
Link to Book