Mastering Swift 2 Programming

Опубликовано: 29 Ноябрь 2024
на канале: Tea Time
4
0

Explore Swift's revolutionary leap from Objective-C, and leverage its higher-level features to get the most out of the Cocoa framework
Learn how to exploit compiler optimizations to attain blazing code performance
Gain a deeper understanding of your Swift code through dynamic and easy-to-follow demonstrations

Learning
Gain useful insight into your code’s memory performance by analyzing your application with powerful Xcode tools
Utilize the CocoaPods package manager to import third-party Swift libraries into your project
Employ bridging headers to interoperate with other languages such as Objective-C, C, and C++ code
Write concurrent applications by utilizing asynchronous functions and powerful multi-threading features such as Grand Central Dispatch
Improve your development speed by gaining advanced debugging skills
Write safer code by seeing how to throw, catch, and handle exceptions
Choose the best algorithm for your application by comparing performance metrics in XCTest
Take a look at several design patterns that address common problems programmers face in Swift

About
Swift 2 is a multi-paradigm programming language that has expressive features familiar to modern functional languages, and does not forget the object-oriented features of Objective-C. Things that took a block of code in Objective-C are reduced to one or two lines in Swift. Swift is said to be safer, faster, and easier to understand, and has the energy of Apple and the open source community behind it.

This course takes you on a journey through a wide array of topics that are crucial to writing top-level Swift code. You will get an in-depth view of various core topics such as advanced language features, memory management, interoperability, concurrency, advanced debugging, algorithms, and performance optimizations. Last but not least, we’ll also explore Swift design patterns.

We’ll start by discussing the uniqueness of Swift, what’s new, and what’s to come. Then we take a look at fast-paced deconstructions of advanced language features such as extensions, generics, protocols, and more. Next we’ll focus on memory management as you learn how to measure and address our applications’ memory usage.

Soon we’ll dive into opening Swift up to Objective-C, C, and even C++ code and speeding up development by leveraging third-party frameworks. We will then move on to asynchronous programming and concurrency and you’ll see how to process multiple tasks simultaneously.

You’ll discover how to debug your applications more effectively, which is one of the key components to becoming a faster developer. As the journey comes to an end, we will take a look at compiler optimizations, performance measurements, and algorithms and complexity. Finally, you’ll explore specific design patterns can address common programming problems.


Swift Primer and Introduction to Functional Programming
The Course Overview
Swift Review – Operators, Types, and Strings
Swift Review – Collection Types
Swift Review – Classes, Structs, and Enums
Swift Review – Flow of Control and Optionals
What’s New in Swift 2?
Functional Programming
Protocol Oriented Programming
Advanced Language Features and Functional Concepts
Introducing Game of Life
Function Value Types and Closure Syntax
Extensions
Generics
Higher-order Functions – Filter
Higher-order Functions – Map
Higher-order Functions – FlatMap
Higher-order Functions – Reduce
Sequences and Generators
Exploring Swift’s Memory Management
What Is ARC?
Introduction to Instruments
Strong Reference Cycles
Fixing our Leak – Weak and Unowned References
Creating a Zombie
8 Tips to Improve Memory Performance
Interoperability and Working with 3rd Party Libraries
Implicit Bridging and Cocoa
Exposing Swift to Objective-C
Using Objective-C in Swift
Interacting with C
Wrapping C++ for Using in Swift
Working with CocoaPods
Incorporating an Objective-C Library
Concurrency and Grand Central Dispatch
Understanding Concurrency
Threading with NSThread
Locking Threads
Asynchronous Methods
Concurrency with NSOperationQueue
Grand Central Dispatch
Working with Dispatch Queues
Asynchronous Programming with Dispatch Groups
Troubleshooting, Advanced Debugging, and Error Handling
The LLDB Debugger
Advanced Breakpoints
The LLDB Command Language
Address Sanitization
Assertions
Error Handling
Performance Optimization and Introduction to Algorithms
Identifying Performance Bottlenecks with XCTest and Time Profiler
Whole Module Optimization
Reducing Dynamic Dispatch
Reference Types and Performance
Generic Specialization
Choosing the Right Algorithm
Memoization
Design Patterns
Design Patterns Overview
Singleton Pattern
Factory Pattern
Adapter Pattern
Façade Pattern
Chain of Responsibility Pattern
Observer Pattern