
Learn Swift 3 fundamentals from setup to real apps with Paul Hudson's course, navigate Xcode, master Swift 3 syntax, and apply Cocoa Touch concepts through guided projects.
Learn to install Xcode, create and configure Swift projects and playgrounds, choose templates, set up signing and capabilities, and navigate build settings and libraries to start building iOS apps.
Explore the project navigator and learn how to add files to your iOS app, copy items, organize assets into folders, and link them to app delegate, view controller, and storyboard.
Discover how to navigate and debug iOS apps using symbol, find, issue, test, debug, breakpoint, and report navigators, search by symbols or files, and manage breakpoints and builds.
Learn to use the storyboard with the iPhone simulator, tapping the object, template, code snippet, and media libraries to add interface elements and reusable code to your view controller.
Explore the object library and utilities pane to inspect file data, read quick help, view identity and attributes, adjust size, manage connections, and navigate the document outline of storyboard objects.
Learn to build iOS interfaces in Xcode by wiring storyboards, setting an initial view controller, and using segues to navigate between controllers, with outlets, actions, and playgrounds for feedback.
Explore variables and constants in Swift, declare with var and let, apply type annotation and type inference, and print values while observing assignment rules and camel casing.
Explore Swift variables, including type annotation and type inference, and print statements with string interpolation. Learn about integers, floats, doubles, booleans, explicit conversions, comments, and basic casts.
Discover how Swift uses operators to modify and combine values, including unary prefix negation, binary and ternary conditional operators, assignment, arithmetic, string concatenation, and the remainder operator.
Explore Swift operators: increment and decrement, the minus unary operator, and compound assignment. Practice with comparison and nil-coalescing operators, optionals, and simple if statements.
Explore swift range operators, including the closed range from 0 to 4 and the half-open range excluding 4, and apply not, and, or in conditional logic.
Explore optionals in Swift: how nil values are represented, why optional types protect against runtime errors, and how to unwrap using optional binding and implicitly unwrapped optionals.
This lecture contrasts structs and classes in Swift, noting structs are value types with memberwise initializers, mutating methods, and access via properties, while classes support inheritance and typecasting.
Learn how Swift computed properties in classes, structs, or enums do not store values but provide a getter and an optional setter to compute area from width and height.
Explore Swift property observers that monitor changes to a property's value using willSet and didSet, called before and after updates, with oldValue and newValue available.
Extend existing types with Swift extensions to add computed properties, methods, initializers, subscripts, and protocol conformance without accessing original source code; note they do not override existing functionality.
Swift protocols define a set of rules that types must conform to by implementing required properties and functions, with optional methods marked using the optional keyword, serving as interfaces.
Explore how protocols declare instance and type properties, use the static keyword, and implement delegation with the UI textfield delegate, including optional protocol methods and conforming patterns.
Explains Swift enums as a defined type with cases, raw values and associated values; demonstrates using dot syntax, switch statements, and exhaustive matching to handle dog breed examples.
Explore enums in Swift, focusing on error handling with associated and raw values, and learn about implicitly assigned raw values and accessing raw values in a bank balance example.
Explore initializing from raw values and optional binding for missing cases. Model recursive enums for arithmetic expressions with indirect, and evaluate nested expressions to compute five plus four times two.
Learn how generics in Swift enable reusable, type-agnostic code by swapping values across ints, strings, arrays, and dictionaries, using a generic placeholder type T and inout parameters.
Define a non-generic and a generic stack in Swift, implementing push and pop operations, and extend the generic type with a top of stack property to reveal the last element.
Master typecasting with the as and is operators within a book hierarchy, including downcasting to fiction and nonfiction and using optional binding with if let.
Learn to use any and any object to store values in an array and perform type casting down to concrete types. Explore switch value binding and pattern matching for extraction.
Explore nested types in Swift by placing classes, enums, and structs inside other types and accessing them via dot syntax, illustrated with an email example.
Master Swift tuples by grouping mixed types, accessing values by index or name, and decomposing them into constants, while using underscores and for-in loops to iterate dictionaries.
Explore how to return multiple values with tuples in functions, including labeled components. Learn to handle optional tuples and nil with optional binding for empty arrays to prevent crashes.
Explore closures as self-contained blocks passed around, capturing context, and supporting inline expressions with type inference, shorthand arguments, trailing closures syntax, and sorting with sorted(by:).
Master trailing closures by moving the closure outside the function call when it’s the final argument, and see map and dictionary examples convert numbers to strings.
Understand how closures capture values from surrounding context to maintain state. Learn how a nested function returns a closure that increments a running total by a captured amount.
Explore how if statements control code flow by executing blocks only when conditions are true. Use else, else if, and nested ifs to handle alternative paths and combine conditions.
Explore Swift's switch statement with examples for strings, ranges, and characters. Learn how switch compares values, uses cases and default, and why Swift prevents implicit fall-through.
Learn how to use Swift's for-in loop to iterate over ranges, arrays, dictionaries, and strings, including decomposing the key-value tuple into named constants and printing results.
Master while and repeat while loops in Swift, comparing condition checks at the start versus the end, and learn to increment counters to prevent endless loops.
Explore declaring and initializing arrays in Swift, including mutable vs immutable arrays, array literals, type notation and inference, and common operations like append, count, and concatenation.
Learn how to access and modify arrays using methods, properties, and subscript syntax. Explore count and isEmpty checks, append and addition assignment, zero-based indexing, inserting, removing, and handling out-of-bounds errors.
Learn to remove the last item with removeLast and iterate with for loops in Swift. Explore enumerate for index and value, index(of:), and nested loops for multi-dimensional arrays.
Explore dictionaries in Swift, including key-value storage, type constraints, and mutability, and learn to declare, access, update, and check counts using subscripts and updateValue(forKey:).
Retrieve dictionary values with subscripts and optionals, remove values by nil or remove value for key, iterate over keys and values, and sort them for ordered results.
Master Swift sets as unordered, distinct, hashable collections. Declare and initialize them with type annotation or inference, compare to arrays, and learn when to use sets.
Master accessing and modifying sets in Swift using count, isEmpty, contains, insert, remove, and removeAll. Explore union, intersect, subtract, symmetric difference, and subset, superset, disjoint relations, plus iteration.
Learn how to declare and call functions in Swift 3, including parameters, return types, and void functions, with examples like a greeting function, division, and multiplication.
Learn how variadic parameters work in Swift, compute averages from passed numbers, and return multiple values with labeled tuples. Handle empty inputs safely using optional returns and optional binding.
Learn how inout parameters in Swift allow a function to modify external variables by passing with an ampersand, enabling a swap of two values, and why constants cannot be used.
Explore how nested functions operate inside an enclosing (global) function in Swift, returning one of two inner functions (step forward or step backward) based on a boolean condition.
Explore strings and characters, including literals, mutability with var and let, and string interpolation. Learn counting characters, type casting to NSString, and concatenating and appending strings.
Explore how to access and modify strings in Swift using start and end indices, index before/after, offset by, and subscript, then insert, remove, and remove subranges while handling out-of-range errors.
Explore string comparisons in Swift by using equality operators and prefix and suffix checks. Learn to categorize titles by hasPrefix and hasSuffix, counting movies and genres from an entertainment array.
Learn string manipulation in swift: uppercased, lowercased, capitalize first letter via replace range and capitalized property; trim whitespaces, split with components(separatedBy: ","), convert to data, and unwrap optionals for int.
Explore how a class acts as a blueprint to instantiate objects with an initializer, and how objects own their properties and methods accessed via dot syntax.
Create a car class with an initializer and drive function, then subclass it as a bus, inherit its properties and methods, and add a race function and a bus-specific name.
Explore how a subclass overrides a parent method to customize behavior, call the super implementation, and even combine parent and overridden functionality in a single method.
Discover how Swift 3 introduces wide-ranging deprecations and new naming conventions, including required parameter labels, and the guideline to omit needless words for clearer code.
Master Swift 3 naming by shifting from upper camel to lower camel case for types and properties. Explore foundation changes, dropping NS prefixes and adopting value types.
Explore Swift 3 imports of C functions, mapping them to methods on a C.G. context object, and show dispatch and key path for KVO evolve under verb-noun naming.
Set up a single view iOS app and build a UI with labels and four sliders to control grayscale and RGB values, changing the background color.
Connect outlets and actions in Interface Builder to update the view background in real time using grayscale and RGB sliders, with a reset option.
Update slider-driven UI by formatting and displaying each value in labels, adjusting text color for readability, enabling continuous updates, and adding a reset animation.
Reset all sliders to the midpoint 0.5 and update the labels, then apply a two-second CATransition fade animation with easy-out timing for a polished reset.
This course is produced from the "Hacking with Swift" series of tutorials, which are written and authored by the award winning Swift programmer, Paul Hudson, and these videos were made with his permission and support. You can always be guaranteed you're learning the latest and greatest Apple technologies because all of Paul's tutorials are written for iOS 10. Here you learn smart, powerful, and expressive Swift 3, the way it was meant to be written. You learn while you make real-world iOS projects, which means you get to apply your new skills immediately and see them work in context. Hacking with Swift is one of the most popular Swift tutorial series online, which uses an approach that teaches you Swift programming incredibly quickly, and you end up with a huge library of finished projects that are yours to develop further, or ship to the App Store. Paul has received high praise from the creator of the Swift language himself, 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.
This course incorporates the use of annotations, callouts, diagrams, highlighting, and deep explanations that help make complex subject matter, much easier to grasp, and guides 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 10.
Some of what will be covered:
Swift is the new language of the future, and with this course you will get plenty of instruction on how to implement it in unique ways.
This course assumes you have no programming experience, so its perfect for the beginner. Its also a nice fit for the intermediate and experienced coder as it covers many advanced topics and techniques as well.
If you think this might be too difficult for you, think again, and come code along with me in a step by step format....just add a big portion of your own unique creativity, and before you know it, you will have built many amazing apps that you can submit to the App Store, and place in the hands of thousands of people.
Happy Coding :-)