Categories
Architecture
- Unidirectional flow in Swift
- Functional core Imperative shell in Swift. Unidirectional Flow.
- Functional core Imperative shell in Swift
- Redux-like state container in SwiftUI. Swift concurrency model.
- Microapps architecture in Swift. Dependency Injection.
- Microapps architecture in Swift. Resources and localization.
- Microapps architecture in Swift. Feature modules.
- Microapps architecture in Swift. SPM basics.
- GraphQL in Swift
- Building type-safe networking in Swift
- Redux-like state container in SwiftUI. Connectors.
- Building ViewModels with Combine framework
- Building networking layer using functions
- Redux-like state container in SwiftUI. Container Views.
- Redux-like state container in SwiftUI. Best practices.
- Redux-like state container in SwiftUI. Basics.
- Modeling app state using Store objects in SwiftUI
- Navigation with Flow Controllers
- Maintaining State in Your ViewControllers
- Mastering MVVM on iOS
Accessibility
- The power of accessibilityChildren view modifier in SwiftUI
- Custom accessibility content in SwiftUI
- Audio graphs in SwiftUI
- Accessibility focus in SwiftUI
- Accessibility rotors in SwiftUI
- The power of accessibilityRepresentation view modifier in SwiftUI
- Accessibility actions in SwiftUI
- Localization in SwiftUI
- Dynamic Type in SwiftUI
- Accessibility in SwiftUI
- Make your app accessible for everyone
Protocol-Oriented Programming
- Storing Codable structs on the disk
- Dependency Injection in Swift with Protocols
- Hiding third-party dependencies with protocols and extensions
- Using protocols as composable extensions
Swift Language Features
- Typed throws in Swift
- If and switch expressions in Swift
- Where Swift Concurrency will run your function?
- Global actors in Swift
- Discovering Swift Async Algorithms package
- Discovering Swift Collections package
- Discovering Swift Algorithms package
- Thread safety in Swift with actors
- Thread safety in Swift with locks
- Mastering Swift Foundation Formatter API. Custom Format Styles
- Mastering Swift Foundation Formatter API. Basics
- Dynamic member lookup in Swift
- API availability in Swift
- Modeling errors in Swift
- How to create a property wrapper in Swift
- Writing idiomatic Swift code
- Phantom types in Swift
- The power of Delegate design pattern
- Asynchronous completion handlers with Result type
- Inclusive enums with OptionSet
- Deep dive into Pattern matching with ~= operator
- Pattern Matching with case let
- Creating DSL in Swift
View Composition
- Mastering container views in SwiftUI. Values.
- Mastering container views in SwiftUI. Sections.
- Mastering container views in SwiftUI. Basics.
- Customizing windows in SwiftUI
- Trigger value pattern in SwiftUI
- The power of overlays in SwiftUI
- Window management in SwiftUI
- Structural identity in SwiftUI
- Managing scenes in SwiftUI
- Using UIKit views in SwiftUI
- Optimizing views in SwiftUI using EquatableView
- Must-have SwiftUI extensions
- You have to change mindset to use SwiftUI
- The power of Closures in SwiftUI
- View composition in SwiftUI
- Reusing SwiftUI views across Apple platforms
- Composable styling in SwiftUI
- ViewModifiers in SwiftUI
- Introducing Container views in SwiftUI
- Building complex screens with Child ViewControllers
Interactions
- Discovering app features with TipKit. Groups.
- Custom hover effects in SwiftUI
- Discovering app features with TipKit. Customizations.
- Discovering app features with TipKit. Rules.
- Discovering app features with TipKit. Basics.
- Deep linking for local notifications in SwiftUI
- Scoped animations in SwiftUI
- Visual effects in SwiftUI
- Sensory feedback in SwiftUI
- ImageRenderer in SwiftUI
- Drag and drop transferable data in SwiftUI
- Content transition in SwiftUI
- Customizing view content shape in SwiftUI
- Mastering FocusState property wrapper in SwiftUI
- AnimatableModifier in SwiftUI
- Hero animations in SwiftUI
- Focus management in SwiftUI
- Commands in SwiftUI
- Keyboard shortcuts in SwiftUI
- The magic of redacted modifier in SwiftUI
- Transactions in SwiftUI
- The magic of Animatable values in SwiftUI
- Drag and drop in SwiftUI
- Hover effect in SwiftUI
- Gestures in SwiftUI
- Animations in SwiftUI
- Haptic feedback in iOS apps
- Adapting app for iPad with UISplitViewController
- Animating changes in UITableView and UICollectionView
Testing
- Introducing Swift Testing. Parameterized Tests.
- Introducing Swift Testing. Traits.
- Introducing Swift Testing. Lifecycle.
- Introducing Swift Testing. Basics.
- Activities and attachments in the XCTest framework
- Performance testing in Swift using the XCTest framework
- UI Testing using Page Object pattern in Swift
- UI Testing in Swift with XCTest framework
- Extracting presentation logic to make it testable
- Starting Unit Testing with Model layer
Data Flow
- Introducing Entry macro in SwiftUI
- Mastering Observation framework in Swift
- State restoration in SwiftUI
- Submitting values to SwiftUI view
- FocusedValue and FocusedBinding property wrappers in SwiftUI
- Profiling SwiftUI app using Instruments
- Managing app in SwiftUI
- The difference between @StateObject, @EnvironmentObject, and @ObservedObject in SwiftUI
- New property wrappers in SwiftUI
- Binding in SwiftUI
- The magic of view preferences in SwiftUI
- Combine and SwiftUI views
- The power of Environment in SwiftUI
- Managing Data Flow in SwiftUI
- Understanding Property Wrappers in SwiftUI
- Making real-world app with SwiftUI
Mastering SwiftUI views
- Tracking geometry changes in SwiftUI
- Mastering ScrollView in SwiftUI. Scroll Visibility
- Mastering ScrollView in SwiftUI. Scroll Phases
- Mastering ScrollView in SwiftUI. Scroll Geometry
- Mastering ScrollView in SwiftUI. Scroll Offset
- Inspectors in SwiftUI
- Content margins in SwiftUI
- Mastering MapKit in SwiftUI. Interactions.
- Mastering MapKit in SwiftUI. Camera.
- Mastering MapKit in SwiftUI. Customizations.
- Mastering MapKit in SwiftUI. Basics.
- Mastering ContentUnavailableView in SwiftUI
- Mastering Preview macro in Swift
- Mastering charts in SwiftUI. Pie and Donut charts.
- Mastering charts in SwiftUI. Scrolling.
- Mastering charts in SwiftUI. Selection.
- Mastering ScrollView in SwiftUI. Scroll Position
- Mastering ScrollView in SwiftUI. Target Behavior
- Mastering ScrollView in SwiftUI. Transitions
- File importing and exporting in SwiftUI
- PhotosPicker in SwiftUI
- Mastering Canvas in SwiftUI
- Sharing content in SwiftUI
- Mastering charts in SwiftUI. Accessibility.
- Mastering charts in SwiftUI. Legends.
- Mastering charts in SwiftUI. Customizations.
- Mastering charts in SwiftUI. Interactions.
- Mastering charts in SwiftUI. Custom Marks.
- Mastering charts in SwiftUI. Mark styling.
- Mastering charts in SwiftUI. Basics.
- Mastering NavigationSplitView in SwiftUI
- Mastering NavigationStack in SwiftUI. NavigationPath.
- Mastering Dynamic Island in SwiftUI
- Displaying live activities in iOS 16
- Customizing toolbars in SwiftUI
- Lock screen widgets in SwiftUI
- Mastering grid layout in SwiftUI
- ViewThatFits in SwiftUI
- Bottom sheet API in SwiftUI
- Mastering LabeledContent in SwiftUI
- Background tasks in SwiftUI
- The power of task view modifier in SwiftUI
- Mastering NavigationStack in SwiftUI. Deep Linking.
- Mastering NavigationStack in SwiftUI. Navigator Pattern.
- Mastering TimelineView in SwiftUI
- SF Symbols in SwiftUI
- Mastering ProgressView in SwiftUI
- The many faces of ShapeStyle in SwiftUI
- Displaying badges in SwiftUI
- Managing safe area in SwiftUI
- Blur effect and materials in SwiftUI
- Mastering ControlGroup in SwiftUI
- Confirmation dialogs in SwiftUI
- Pull-to-Refresh in SwiftUI
- Mastering AsyncImage in SwiftUI
- The many faces of button in SwiftUI
- Mastering search in SwiftUI
- Mastering List in SwiftUI
- Mastering SwiftUI previews
- Lazy navigation in SwiftUI
- Labels in SwiftUI
- Mastering GroupBox in SwiftUI
- Mastering ScrollView in SwiftUI
- Tabs and pages in SwiftUI
- Building widgets in SwiftUI
- Displaying recursive data using OutlineGroup in SwiftUI
- Menus in SwiftUI
- Using MapKit with SwiftUI
- Sidebar navigation in SwiftUI
- Mastering toolbars in SwiftUI
- Mastering grids in SwiftUI
- Mastering images in SwiftUI
- Customizing Toggle in SwiftUI
- TextField in SwiftUI
- Mastering buttons in SwiftUI
- Customizing the shape of views in SwiftUI
- Gradient in SwiftUI
- Alerts, Action Sheets, Modals and Popovers in SwiftUI
- Navigation in SwiftUI
- Building forms with SwiftUI
Building custom views
- Building async button in SwiftUI
- Styling custom SwiftUI views using environment
- Building calendar without UICollectionView in SwiftUI
- Building Pager view in SwiftUI
- The power of @ViewBuilder in SwiftUI
- Building Bottom sheet in SwiftUI
- Building BarChart with Shape API in SwiftUI
Meta
- What is new in SwiftUI after WWDC 24
- What is new in SwiftUI after WWDC 23
- iOS development trends in review
- What is new in SwiftUI after WWDC22
- What is new in SwiftUI after WWDC21
- SwiftUI wishlist for WWDC21
- What's new in SwiftUI
- SwiftUI wishlist for WWDC20
- SwiftUI learning curve in 2019
Layout
- Building custom layout in SwiftUI. LayoutValueKey.
- Building custom layout in SwiftUI. Spacing.
- Building custom layout in SwiftUI. Caching.
- Building custom layout in SwiftUI. Basics.
- Conditional layouts in SwiftUI
- Frames in SwiftUI
- How to use GeometryReader without breaking SwiftUI layout
- Fitting and filling views in SwiftUI
- Template-view pattern in SwiftUI
- The magic of fixed size modifier in SwiftUI
- Layout priorities in SwiftUI
- Anchor preferences in SwiftUI
- Alignment guides in SwiftUI
Combine framework
- Combining multiple Combine publishers in Swift
- Chaining publishers with Combine in Swift
- Building custom Combine operators in Swift
- Designing API using Combine framework
- Catching errors in Combine
CloudKit
Logging
- Measuring app performance in Swift
- Exporting data from Unified Logging System in Swift
- Logging in Swift
StoreKit
- StoreKit testing in Swift
- Mastering StoreKit 2. SwiftUI view modifiers.
- Mastering StoreKit 2. SubscriptionStoreView in SwiftUI.
- Mastering StoreKit 2. ProductView and StoreView in SwiftUI.
- Mastering StoreKit 2