
Meet Paul Hudson, the author of hacking with swift, and explore his tutorials, courses, and resources for beginners to advanced iOS and swift development.
Meet Steve DeStefano and Paul Hudson as they introduce the course, highlighting seven complete projects, technique projects, and a Swift 3 introduction to explain what's changed and why.
Explore how Swift 3 reorganizes method calls by requiring parameter labels, omitting needless words, and shortening names, contrasting with Swift 2.2 and highlighting deprecated constructs and syntax changes.
Explore Swift 3's naming and type system changes, including lower camel case for properties and parameters, dropping NS prefixes, and converting many foundation types to value types.
Create a rich media photo album using iOS 10's voice transcription and search functionality.
Build a photo and voice app called happy days in Swift 5. Implement a collection view with a permissions screen and iOS 10 speech transcription stored as spotlight entries.
Learn to implement a three-permission flow for photos, microphone, and speech recognition in iOS, coordinating asynchronous callbacks on the main thread to chain requests and update the interface.
Load memories from disk, import photos with the image picker, and display thumbnails in a two-section collection view with a top search header for fast scrolling.
Learn to convert voice to text with the S.F. speech recognizer, handling asynchronous transcription via closures, using isFinal, and accessing the transcriptions array for the best transcription.
Index transcribed memories in spotlight by linking audio transcriptions to photos and adding a thumbnail for searchable memory results.
Implement in-app search using cssearchquery to filter memories via a filtered memories array, integrate spotlight results, and update the collection view as the user types and confirms input.
Build a group scheduling app that integrates with Messages.
Explore building an AI time share as an iOS message extension, integrating with store kit and Apple Pay, and crafting a three-controller interface for creating events and voting.
Create a storyboard controller with the create event id, showing a table view, a date picker inside a view, and stack with add date and save to send to friends.
Learn to receive and decode messages by loading dates and votes from encoded payloads, parsing query items, and updating the UI when a message bubble is tapped.
Create a ride-sharing app that integrates with SiriKit for voice activation.
Add Siri support by implementing resolve pickup and drop off locations, handle ride requests, and manage in ride status with vehicle details, enabling Siri to book and track rides.
Build an iOS 10 lock screen widget that helps language learners memorize new vocabulary.
Explore how iOS 10 introduces today extensions on the lock screen and 3D touch quick actions, and set up the Polyglot app with a table view in Swift 5.
Load a vocabulary list from user defaults into a table view, display English words, and reveal French equivalents on tap by splitting entries at a double colon.
Add, delete, and save custom English-French words in a Swift iOS flashcard app by prompting input with a UI alert, updating the words array and table view, and persisting changes.
Build a today extension widget on the lock screen to mirror core language learning features, and set up the widget with a table view and data source and delegate connections.
Demonstrate the Iowas 10 animation framework for interactive reversible animations and add a test mode showing a French word with the English answer in green.
Create a daily alarm planner using the new UserNotifications framework.
Configure a three-section table view with static cells, customize text fields and headers, wrap a date picker for auto layout, and add image attachment via a tappable image view.
Wire three table view controllers in a storyboard—main, group, and alarm—by subclassing UITableViewController and linking outlets, delegates, and actions for text fields, switch, date picker, and image taps.
Create alarm and group model classes with id, name, caption, time, image, and enabled flags, with initializers and ns coding; reflect enabled status via color in the group view.
Configure the cell for row at to load four cell types using a create group cell method, with editable text and switch cells, and manage switches via tags for alarms.
Edit alarms in alarm view controller by updating name, description, and time, attach pictures via the image picker, save images to documents directory, and persist changes with user defaults.
Learners implement robust data persistence by encoding alarm and group objects with NSCoding and NSKeyedArchiver, save changes via Notification Center from multiple UI events.
Implement save and load in the view controller using the documents directory and ASCII archiver; call save on data changes, load in viewWillAppear, and observe save notifications.
Learn to adopt the new notification framework, request permission, and schedule local notifications for alarms with calendar triggers, including attachments and repeating alerts.
Learn to configure rich iOS notifications with custom actions—show group, destroy group, and rename group—using UNNotificationAction and UNTextInputNotificationAction, register the alarm category in didFinishLaunching, and handle responses via a delegate.
Implement the notification center delegate methods to handle will present and did receive, then provide display, destroy, and rename for groups, safely unwrap user info and action identifiers for responses.
Code your own board game using the new GKMonteCarloStrategist from GameplayKit.
Build the flip game, a reversi clone, using sprite kit and the iOS 10 Monte Carlo strategist in gameplay kit for high-performance AI on an 8x8 board.
Set up the 8x8 board with a background, then define a stone color enum and a stone sprite class with black, white, and thinking textures, and place stones diagonally.
Add two model classes, player and move, with color and position; include a players array and opponent property; update the board model to track the current player for legal moves.
Implement and test the board's can_move in swift 5 to enforce two‑player rules by checking bounds, emptiness, and at least one capture in eight directions, with touch handling.
Adapt a Reversi board for game play kit by implementing GK game model support, get scores, legal moves, apply moves, and safely typecast GK players to our player.
Create a top-down war game using SpriteKit's powerful new node tiling system.
Create SpriteKit tile maps by building a tile set and adjacency group for grass and mud. Paint and flood fill with the Xcode map editor, then add a camera node.
Build a two-tier war game by creating a game item base class and unit and base subclasses, assign ownership and z-order, and set up red and blue tanks.
Place game bases on the map in a 3x3 grid, adding a bases property and integrating into the create starting layout, with adjustments to y coordinates and landscape rotation.
Visualize user selection by displaying a rotating selection marker over the chosen item, using a sprite, alpha, and property observers to show or hide selection as you tap and deselect.
Select a unit and reveal possible moves and attacks with a reusable grid of 41 white squares, colored white for moves and red for attacks, via an array extension.
Add a fixed menu bar in the game scene to show the current player and provide capture, build, and turn controls, with show and hide logic tied to item selection.
Capture bases and build units in a turn-based tank game, using a set owner method, end-turn logic, color blending, and base-specific build rules to drive gameplay.
In this project we’re going to play around with the new iOS 10 animation framework, powered by UIViewPropertyAnimator.
Start, pause, stop, and reverse animations with the UI view property animator, including continuing with timing parameters and the model versus presentation layer dynamics.
Explore animation completion in iOS, showing how the stop animation method updates the model layer to match the presentation layer, and how finishing the animation can occur independently of stopping.
Switch to a spring animation with the view property animator to make the box fly and bounce, while adding a gesture recognizer to detect taps during motion.
Note: All finished projects and source code have been update to Swift 5
Build 7 complete real world projects that teach you about speech transcription, SiriKit, and more!
As well as 5 technique projects that reinforce your iOS knowledge for building apps.
This course is written by the award winning Swift programmer, Paul Hudson, it is from his best selling book, "Advanced iOS: Volume 1", made into a lecture style course, and these videos were made with his permission and support. Paul is the author of the Hacking With Swift series of tutorials, which is one of the most popular Swift coding sites online. Paul also has received high praise from the creator of the Swift language, Chris Lattner, for his outstanding method of teaching, and series of Swift tutorials. And working together with iOS developer Steve DeStefano, the Hacking with Swift series of programming training videos are simply the fastest way to learn how to code in the Apple eco-system.
Check out all of Paul Hudson's Swift tutorials and books at HackingWithSwift - from beginner to pro, Paul will teach you to write Swift code in very little time.
The term "Hacking With Swift" means we are "playing" with the Swift language, and using it in unique and interesting ways.
Whether it's iMessage apps, SiriKit integration, rich media user notifications, or speech transcription, this course will teach you how to use these incredible features which can help take your apps to the next level.
This course incorporates the use of annotations, callouts, diagrams, highlighting, and deep explanations that help make complex subject matter, much easier to grasp, and guide you along the path of the code, each step of the way. This course also makes the perfect reference tool kit, to be used in conjunction with the Apple docs, so that you can go back and scrub through any of the lectures very quickly to pull out relevant code or instruction that you need, as there's no wasted chatter here, it's strictly on point with Swift and iOS.
Please note: These are intermediate to advanced projects, and this course will not teach you the Swift language, or how to code, you should already have completed Paul Hudson's Swift tutorials at HackingWithSwift dot com, or gone through the Hacking With Swift beginner to pro course here on Udemy.
Project 1: Create a Rich Media Photo Album using voice transcription and search functionality.
Project 2: Build a Group Scheduling app that integrates with Messages.
Project 3: Create a Ride-Sharing app that integrates with SiriKit for voice activation.
Project 4: Build a Lock Screen Widget that helps language learners memorize new vocabulary.
Project 5: Create a Daily Alarm Planner using the new UserNotifications framework.
Project 6: Code your own Board Game that implements an "AI" opponent, using the new GKMonteCarloStrategist from GameplayKit.
Project 7: Build a Tank War Game using SpriteKit's powerful new Node Tiling system.
Featuring apps built by the award winning Swift programmer Paul Hudson
Learn about the new iOS animations
Work with Swift's measurement classes called Units
Learn about the new and improved Core Data
Work with the new Raw Photography classes
See how to use the new image rendering API
Learn about the new Warp Geometry classes, and build a simple app with them
And More!