
Learn to build watchOS apps through constrained programming, balancing limited resources, screen space, and user attention, with projects teaching watchOS coding using Swift and Xcode, including iPhone pairing data sync.
Swift 4 introduces Codable encoding and decoding for JSON and property lists, adds multiline string literals, improved key paths, and safer dictionary and string enhancements like map values and grouping.
Master variables and constants in Swift by using let and var, explore type annotation and type inference, and learn camel casing and emoji-based variable names.
Learn to declare variables in Swift using type annotation and type inference, work with integers, floats, doubles, booleans, print results, and embed values in strings with interpolation and casts.
Master unary, binary, ternary, and assignment operators in Swift, explore string concatenation, boolean logic, and the remainder operation to manipulate values in watchOS apps.
Explore unary minus, compound assignment, and comparison operators in Swift, and learn how if statements and nil coalescing handle optional values.
Explore Swift range operators, including the closed range (three dots) and half-open range, then apply not, and, or logical operators to loop through ranges and build conditional logic.
master swift optionals by understanding nil, optional types, and wrappers; learn forced unwrapping, optional binding, and implicitly unwrapped optionals to prevent runtime errors.
Explore Swift structs and classes as value and reference types, with properties, methods, subscripts, and initializers. Practice defining custom initializers, mutating methods, and type naming conventions to model data clearly.
Discover how computed properties in Swift, declared in a class, struct, or enum, do not store values but provide a getter and optional setter to derive width, height, and area.
Explore property observers in Swift, using willSet and didSet to respond before and after a property changes, track oldValue and newValue, and observe updates in a bank balance example.
Learn how Swift extensions add new functionality to existing types—computed properties, methods, initializers, subscripts, nested types, and protocol conformance—without modifying original source code.
Discover how Swift protocols define a set of rules that classes, structs, or enums conform to, with required and optional methods and the syntax to declare and adopt them.
Explore how protocols can require instance and type properties, explain the difference between instance and type properties using static, and implement delegation with a text field delegate.
Explore Swift enums by defining a single type for related values, using cases and raw or associated values, and mastering dot syntax and exhaustive switches.
Explores using Swift enums for error handling with implicit raw values and associated values, demonstrates a bank balance check, fund addition, and accessing raw values via the raw value property.
Learn how to initialize enums from raw values, handle optional results with optional binding, and model nested arithmetic expressions using a recursive enum with the indirect keyword in Swift.
Learn how generics in swift let you write one function or type that swaps values and handles any data type, from integers to strings to arrays and dictionaries.
Discover how to define generic types in Swift by building a stack that accepts any data type, supports push and pop, and extends with a top property.
Explore typecasting in Swift using the as and is operators to check and downcast between book, fiction, and non-fiction classes, with optional binding for safe casts.
Explore AnyObject and Any to store values and perform downcasts with as and as!; learn switch value binding and where to handle integers, doubles, strings, tuples, fiction objects, and closures.
Discover how Swift supports nested types by embedding classes, enums, and structs inside another type, using an email example with nested types, dot syntax, and raw values.
Explore tuples by declaring multi-typed groups, access elements by index or name, decompose into constants, ignore values with an underscore, and iterate dictionaries with for-in using tuple syntax.
Explore returning multiple values from a function using tuples, label and decompose them as small and large, and safely handle optional results to avoid nil errors.
Explore Swift closures, including closure expressions and inline syntax, with capture and optimizations. Learn sorting with the sorted by method using type inference, implicit returns, shorthand arguments, and trailing closures.
Discover how trailing closures optimize long closures by moving them after function calls, and apply this syntax with map to convert numbers to strings using a digit names dictionary.
Learn how closures capture values from the enclosing context, using a nested function in make incremented to access running total and amount, returning a closure that preserves state by reference.
Master control flow by using if statements, else if, and nested ifs to conditionally execute code, with clear examples of true and false branches.
Learn how Swift switch statements compare a value against cases, use multiple values, the default case, and ranges, including characters and scores, with no implicit fall-through.
Master the for-in loop in Swift by iterating over ranges, arrays, and dictionaries, printing results, using underscores to skip a variable, and decomposing key-value pairs from dictionaries.
Explore while and repeat-while loops in Swift, compare evaluating the condition at the start versus the end, and learn why incrementing inside the body prevents endless loops.
Declare and manipulate arrays in Swift using var for mutable arrays and let for immutable ones. Initialize arrays, append items, print counts, and combine arrays with the plus operator.
Explore how to access and modify an array using the count property, isEmpty, and append, then retrieve, update, insert, and remove elements with subscript syntax and index bounds.
Master array manipulation with removing the last item, finding and removing elements by index, sorting, and iterating with enumerate and nested loops for multi-dimensional arrays.
Explore dictionaries in Swift, with key-value pairs and unordered storage; declare, initialize, access, and update values using subscripts and updateValue(forKey:), and check count and isEmpty.
Explore using dictionary subscripts and optionals, removing keys with nil or removeValue(forKey:), iterating with for-in, accessing key and value properties, and sorting dictionaries that have no defined order.
Explore Swift sets, their distinction from arrays, and how they store distinct, unordered items. Learn to declare and initialize sets using type annotation or inference, with hashing requirements.
Explore accessing and modifying sets in Swift, including count, isEmpty, contains, insert, remove, removeAll, iteration, and sorting, plus union, intersect, subtract, symmetric difference, isSubset, isSuperset, and isDisjointWith.
Write and call functions in Swift by naming a descriptive function, defining input parameter names and a return type, and returning the result from the function body.
Explore variadic function parameters and compute averages, then use default values, tuples for multiple return values (min and max), and optional handling to prevent crashes with empty inputs.
Learn how inout parameters let a function modify outside variables by swapping values with a temporary variable and ampersand notation. Note that constants cannot be passed as inout arguments.
Discover how to implement and call nested functions inside an enclosing function, return a nested function, and use a ternary-operator to select step forward or backward in Swift.
Learn how strings work in Swift, including string literals and mutability with var and let, string interpolation, counting characters, and concatenating or appending text.
Explore accessing and modifying strings in Swift using indices and subscripts. Use start index, end index, index before and after, index offset by, and insert, remove, and remove subrange.
Compare strings and characters with == and !=, then use the hasPrefix and hasSuffix methods to filter a titles array by prefix movies and by genre, counting and printing results.
Master string manipulation in Swift: uppercase and lowercase, capitalize first letter with replace range, trim whitespace, split with components, and convert to data while handling optionals.
Note: All finished projects and source code have been update to swift 5.0. So even though some lectures are shown using Swift 4.2, just reference the source code for any update you might need.
This course is produced from the "Hacking with watchOS" 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 in the Hacking with Swift tutorials. Here you learn smart, powerful, and expressive Swift 5, and watchOS 5, the way it was meant to be written. You learn while you make real-world Apple watch apps, 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.
Want to learn how to build amazing watch apps?
This course has all the step by step instruction you need to create awesome apps to submit to the App Store.
Building a watch app uses the same Swift language as iOS apps.
If you're completely new to coding, don’t worry, we have you covered, as there is also a language section in the course that starts at the very beginning, and covers the Swift 5 language.
The term "Hacking with watchOS" means we are "playing" with the Swift language, and using it in unique and interesting ways.
Watch apps are fun to build, simply add your own unique creativity, and follow along in the lectures, and before you know it, you've created a masterpiece.....how cool is it to have your very own creation in the App Store, and on the wrists of thousands of people?
This course makes 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, or use all of the downloadable code and create your own ready made set of docs. There's tons of information here, and no wasted chatter, it's strictly on point with Swift 5 and watchOS 5.
Some of the topics that will be covered:
Featuring apps built by the award winning Swift programmer - Paul Hudson - HackingWithSwift
Build 12 projects - each one teaching a new aspect of watchOS
We use Swift 5 in all the finished source code, watchOS 5 and Xcode 10
The Swift 5 language - we go from variables to creating our own functions and more
Learn by use of annotations - diagrams - highlighting - callouts
How to use controls - outlets and actions
Using delegates and protocols
The ins and outs of GCD
Dictate notes into your watch and convert voice to text
Work with paged based interfaces - sliders - pickers
Create SpriteKit games for the watch
UserDefaults to persist data
Parse JSON from a website and load its data into your watch
Add alerts - menus - notifications to your watch apps
Animations
Learn the various ways to receive user input on a watch
Record audio
Learn how to work with Time Travel and Complications
Create a cool "Safe Crack" app where you use the digital crown to simulate the lock on a safe
Create a workout app with a twist, using HealthKit
Use the WatchConnectivuty class to pass data between the iPhone and watch and vise versa
And a ton more!
All videos are recorded in HD for maximum resolution and clarity
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 to create beautiful watch apps.
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 well because the projects get more detailed as we proceed further.
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 watch apps that you can submit to the App Store, and place on the wrists of thousands of people. See you inside the course.
Happy Coding :-)