diff --git a/roadmaps/ios/content/accessibility-inspector@h34LaYQ3JYN2AZPMDqpmO.md b/roadmaps/ios/content/accessibility-inspector@h34LaYQ3JYN2AZPMDqpmO.md index 5e1db7207..dc38fe058 100644 --- a/roadmaps/ios/content/accessibility-inspector@h34LaYQ3JYN2AZPMDqpmO.md +++ b/roadmaps/ios/content/accessibility-inspector@h34LaYQ3JYN2AZPMDqpmO.md @@ -1,5 +1,5 @@ # Accessibility Inspector - + Accessibility Inspector is a tool in Xcode that audits UI elements for accessibility issues. It displays the accessibility properties of each element, runs automated audits to catch missing labels and low-contrast issues, and simulates VoiceOver navigation. It is the primary tool for testing and improving accessibility during development. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/alamofire@nJeBisdKtN43ntkXnPCVF.md b/roadmaps/ios/content/alamofire@nJeBisdKtN43ntkXnPCVF.md index 16deefd27..df574ff97 100644 --- a/roadmaps/ios/content/alamofire@nJeBisdKtN43ntkXnPCVF.md +++ b/roadmaps/ios/content/alamofire@nJeBisdKtN43ntkXnPCVF.md @@ -1,5 +1,5 @@ # Alamofire - + Alamofire is a Swift networking library built on top of URLSession that simplifies common networking tasks. It provides a clean, chainable API for making requests, handling authentication, and serializing responses. Alamofire is widely used in iOS projects that want a higher-level abstraction over raw URLSession without third-party dependencies for individual components. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/app-store-distribution@iZAXQKLe2LaIIifVFtFOL.md b/roadmaps/ios/content/app-store-distribution@iZAXQKLe2LaIIifVFtFOL.md index b7e4c281d..824fa520a 100644 --- a/roadmaps/ios/content/app-store-distribution@iZAXQKLe2LaIIifVFtFOL.md +++ b/roadmaps/ios/content/app-store-distribution@iZAXQKLe2LaIIifVFtFOL.md @@ -1,5 +1,5 @@ # App Store Distribution - + Distributing an iOS app through the App Store requires a paid Apple Developer Program membership, building a release archive signed with a distribution certificate, and submitting it through App Store Connect. The app goes through Apple's review process before becoming available to users. App Store Connect also manages metadata, screenshots, pricing, and release scheduling. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/app-store-optimization-aso@jZpH-T2hW-XBdprVqemGi.md b/roadmaps/ios/content/app-store-optimization-aso@jZpH-T2hW-XBdprVqemGi.md index 5026ac645..d8520d7e2 100644 --- a/roadmaps/ios/content/app-store-optimization-aso@jZpH-T2hW-XBdprVqemGi.md +++ b/roadmaps/ios/content/app-store-optimization-aso@jZpH-T2hW-XBdprVqemGi.md @@ -1,5 +1,5 @@ # App Store Optimization (ASO) - + App Store Optimization (ASO) is the process of improving an iOS app's visibility and conversion rate in the App Store. It involves optimizing the app name, subtitle, keywords, screenshots, and description to rank higher in relevant searches. Effective ASO increases organic downloads without paid advertising spend. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/arkit@k3uHcF0CsyHr6PK95UwR1.md b/roadmaps/ios/content/arkit@k3uHcF0CsyHr6PK95UwR1.md index 0bcee3c44..2e164a4fb 100644 --- a/roadmaps/ios/content/arkit@k3uHcF0CsyHr6PK95UwR1.md +++ b/roadmaps/ios/content/arkit@k3uHcF0CsyHr6PK95UwR1.md @@ -1,5 +1,5 @@ # ARKit - + ARKit is Apple's augmented reality framework for iOS. It uses the device's camera and motion sensors to track the physical world and overlay digital content on top of it. ARKit provides features like horizontal and vertical plane detection, image tracking, face tracking, and LiDAR scene reconstruction on supported devices. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/async--await@ysaBCl_TtWqelirptQp7P.md b/roadmaps/ios/content/async--await@ysaBCl_TtWqelirptQp7P.md index 6b4153d70..715a1011d 100644 --- a/roadmaps/ios/content/async--await@ysaBCl_TtWqelirptQp7P.md +++ b/roadmaps/ios/content/async--await@ysaBCl_TtWqelirptQp7P.md @@ -1,5 +1,5 @@ # Async / Await - + Async/await is Swift's built-in structured concurrency model, introduced in Swift 5.5. Async functions can be suspended at await points without blocking a thread, allowing other work to proceed in the meantime. This makes asynchronous code significantly more readable and composable compared to callback and Combine-based approaches. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/auto-layout@j2BL0sf3WjnJZZWa7cCjy.md b/roadmaps/ios/content/auto-layout@j2BL0sf3WjnJZZWa7cCjy.md index c2a487cbc..9c590e51d 100644 --- a/roadmaps/ios/content/auto-layout@j2BL0sf3WjnJZZWa7cCjy.md +++ b/roadmaps/ios/content/auto-layout@j2BL0sf3WjnJZZWa7cCjy.md @@ -1,3 +1,3 @@ # Auto layout - + Auto Layout is a constraint-based layout system that defines the size and position of views relative to each other and to the container. It automatically adapts layouts for different screen sizes, orientations, and locales. Constraints are created visually in Interface Builder or programmatically using NSLayoutConstraint or anchor APIs. \ No newline at end of file diff --git a/roadmaps/ios/content/azure-devops@r3fNx1Hk_TGlQSDtRnXqF.md b/roadmaps/ios/content/azure-devops@r3fNx1Hk_TGlQSDtRnXqF.md index 7380fefda..bbdfaed32 100644 --- a/roadmaps/ios/content/azure-devops@r3fNx1Hk_TGlQSDtRnXqF.md +++ b/roadmaps/ios/content/azure-devops@r3fNx1Hk_TGlQSDtRnXqF.md @@ -1,5 +1,5 @@ # Azure DevOps - + Azure DevOps is Microsoft's suite of developer tools that includes a CI/CD pipeline service supporting iOS development. It uses macOS-hosted agents to run Xcode builds and Fastlane workflows, and integrates with Azure Repos, GitHub, and other source control systems. Azure DevOps is commonly used in enterprise organizations already invested in Microsoft tooling. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/basic-interfaces@0o3V_zveN1xCIt7rayrCF.md b/roadmaps/ios/content/basic-interfaces@0o3V_zveN1xCIt7rayrCF.md index 6c36d17d8..1c3e2aa24 100644 --- a/roadmaps/ios/content/basic-interfaces@0o3V_zveN1xCIt7rayrCF.md +++ b/roadmaps/ios/content/basic-interfaces@0o3V_zveN1xCIt7rayrCF.md @@ -1,5 +1,5 @@ # Basic Interfaces - + Building a basic interface in UIKit involves adding views to a view controller's root view, setting up Auto Layout constraints, and wiring controls to code through IBOutlets and IBActions. Simple interfaces typically combine labels, buttons, text fields, and image views arranged into a readable, functional layout. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/basics--creating-animations@w0i5Dxp40XS2HnF5nXeZI.md b/roadmaps/ios/content/basics--creating-animations@w0i5Dxp40XS2HnF5nXeZI.md index 394844793..6cdf16fe5 100644 --- a/roadmaps/ios/content/basics--creating-animations@w0i5Dxp40XS2HnF5nXeZI.md +++ b/roadmaps/ios/content/basics--creating-animations@w0i5Dxp40XS2HnF5nXeZI.md @@ -1,5 +1,5 @@ # Basics / Creating Animations - + Creating animations with Core Animation involves working with CALayer and CAAnimation subclasses. CABasicAnimation animates a single property from one value to another, while CAKeyframeAnimation defines multiple values along an animation path. Animations are applied to layer properties like position, opacity, transform, and background color. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/benefits-over-objective-c@ZkNulHQAqhiFTO3CRC_mW.md b/roadmaps/ios/content/benefits-over-objective-c@ZkNulHQAqhiFTO3CRC_mW.md index 095950aa9..dee177715 100644 --- a/roadmaps/ios/content/benefits-over-objective-c@ZkNulHQAqhiFTO3CRC_mW.md +++ b/roadmaps/ios/content/benefits-over-objective-c@ZkNulHQAqhiFTO3CRC_mW.md @@ -1,5 +1,5 @@ # Benefits over Objective-C - + Swift offers several advantages over Objective-C including type safety with optionals, modern syntax that reduces boilerplate, cleaner closure support, and better performance in many scenarios. Swift code is generally easier to read, write, and maintain. The language also benefits from active development through the Swift Evolution open-source process. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/breakpoints@X0QavvwPVJU6sulafPVUK.md b/roadmaps/ios/content/breakpoints@X0QavvwPVJU6sulafPVUK.md index ab681b6a5..8764aa535 100644 --- a/roadmaps/ios/content/breakpoints@X0QavvwPVJU6sulafPVUK.md +++ b/roadmaps/ios/content/breakpoints@X0QavvwPVJU6sulafPVUK.md @@ -1,5 +1,5 @@ # Breakpoints - + Breakpoints pause app execution at a specific line of code so the developer can inspect the current state of variables and the call stack. Xcode supports line breakpoints, symbolic breakpoints that trigger on a function name, and exception breakpoints that catch crashes automatically. Conditional breakpoints pause only when a specified expression evaluates to true. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/building-interfaces@YvuYJceeNNfLBpq2-3iiL.md b/roadmaps/ios/content/building-interfaces@YvuYJceeNNfLBpq2-3iiL.md index 7a2563e79..d158ada3c 100644 --- a/roadmaps/ios/content/building-interfaces@YvuYJceeNNfLBpq2-3iiL.md +++ b/roadmaps/ios/content/building-interfaces@YvuYJceeNNfLBpq2-3iiL.md @@ -1,5 +1,5 @@ # Building Interfaces - + Building interfaces in SwiftUI involves composing views using container types. VStack arranges views vertically, HStack arranges them horizontally, and ZStack layers them. The declarative approach means the layout is described statically and SwiftUI handles rendering and updates as state changes. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/callback-hell@WhOpzFvv21QQV3aS6XbXr.md b/roadmaps/ios/content/callback-hell@WhOpzFvv21QQV3aS6XbXr.md index 3e47d7304..b04e369fa 100644 --- a/roadmaps/ios/content/callback-hell@WhOpzFvv21QQV3aS6XbXr.md +++ b/roadmaps/ios/content/callback-hell@WhOpzFvv21QQV3aS6XbXr.md @@ -1,5 +1,5 @@ # Callback Hell - + Callback hell refers to deeply nested, hard-to-read code that results from chaining multiple asynchronous operations through callbacks. This pattern, sometimes called the pyramid of doom, was common in iOS development when completion handlers were the primary way to handle async work. Swift's async/await syntax resolves this by allowing sequential, readable async code. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/callbacks@qJEd7KU52xL_GRG3IQqhM.md b/roadmaps/ios/content/callbacks@qJEd7KU52xL_GRG3IQqhM.md index a4eb375de..ff406fd03 100644 --- a/roadmaps/ios/content/callbacks@qJEd7KU52xL_GRG3IQqhM.md +++ b/roadmaps/ios/content/callbacks@qJEd7KU52xL_GRG3IQqhM.md @@ -1,5 +1,5 @@ # Callbacks - + Callbacks are functions passed as arguments to be executed when an asynchronous operation completes. In Swift, callbacks are implemented as closures. They are used for network completion handlers, animation callbacks, and event notifications, particularly in code that predates Swift's async/await concurrency model. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/capturing-values--memory-mgmt@S-D-PnHA7COd2Dp6U2XO4.md b/roadmaps/ios/content/capturing-values--memory-mgmt@S-D-PnHA7COd2Dp6U2XO4.md index ebe039627..f5ade85f0 100644 --- a/roadmaps/ios/content/capturing-values--memory-mgmt@S-D-PnHA7COd2Dp6U2XO4.md +++ b/roadmaps/ios/content/capturing-values--memory-mgmt@S-D-PnHA7COd2Dp6U2XO4.md @@ -1,6 +1,6 @@ # Capturing Values & Memory Mgmt. - -Closures capture references to the variables and constants from their surrounding context. When a closure captures a class instance, it holds a strong reference by default, which can create retain cycles if the instance also holds the closure. Capture lists using [weak self] or [unowned self] break these cycles and are a required pattern in iOS Swift development. + +Closures capture references to the variables and constants from their surrounding context. When a closure captures a class instance, it holds a strong reference by default, which can create retain cycles if the instance also holds the closure. Capture lists using \[weak self\] or \[unowned self\] break these cycles and are a required pattern in iOS Swift development. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/carthage@tIHjjNTXJWcNgkO6TB9ea.md b/roadmaps/ios/content/carthage@tIHjjNTXJWcNgkO6TB9ea.md index 92f21bd39..03cddd881 100644 --- a/roadmaps/ios/content/carthage@tIHjjNTXJWcNgkO6TB9ea.md +++ b/roadmaps/ios/content/carthage@tIHjjNTXJWcNgkO6TB9ea.md @@ -1,5 +1,5 @@ # Carthage - + Carthage is a decentralized dependency manager for iOS and macOS that builds frameworks from source and links them manually into the project. Unlike CocoaPods, Carthage does not modify the Xcode project file, giving developers full control over integration. Carthage has become less common as Swift Package Manager has matured. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/ci--cd@U4xE1enkZxUME0j0gutae.md b/roadmaps/ios/content/ci--cd@U4xE1enkZxUME0j0gutae.md index 2586126c8..232c7f048 100644 --- a/roadmaps/ios/content/ci--cd@U4xE1enkZxUME0j0gutae.md +++ b/roadmaps/ios/content/ci--cd@U4xE1enkZxUME0j0gutae.md @@ -1,3 +1,3 @@ # CI / CD - + Continuous Integration and Continuous Delivery (CI/CD) for iOS automates building, testing, and distributing apps on every code change. CI/CD pipelines run on platforms like CircleCI, Jenkins, GitHub Actions, GitLab, and Azure DevOps. Automated pipelines catch regressions early, enforce code quality checks, and speed up the release process. \ No newline at end of file diff --git a/roadmaps/ios/content/circleci@tWxuFh0xDugdplnHt_G0e.md b/roadmaps/ios/content/circleci@tWxuFh0xDugdplnHt_G0e.md index 0730b6f8d..28a5cfd2a 100644 --- a/roadmaps/ios/content/circleci@tWxuFh0xDugdplnHt_G0e.md +++ b/roadmaps/ios/content/circleci@tWxuFh0xDugdplnHt_G0e.md @@ -1,5 +1,5 @@ # CircleCI - + CircleCI is a cloud-based CI/CD platform that supports iOS development through macOS build environments with Xcode installed. It runs builds, executes test suites, and triggers Fastlane lanes for automated distribution. Pipelines are configured with YAML files and integrate with GitHub and Bitbucket repositories. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/closures@M9UlalPL47GoqhcyGsAPV.md b/roadmaps/ios/content/closures@M9UlalPL47GoqhcyGsAPV.md index 6240a2920..734fda3eb 100644 --- a/roadmaps/ios/content/closures@M9UlalPL47GoqhcyGsAPV.md +++ b/roadmaps/ios/content/closures@M9UlalPL47GoqhcyGsAPV.md @@ -1,3 +1,3 @@ # Closures - + Closures are self-contained blocks of code that can capture and store references to values from the surrounding context. In Swift, closures are first-class types that can be passed as arguments, stored in variables, and returned from functions. They are the basis for callbacks, higher-order functions like map and filter, and completion handlers throughout the iOS SDK. \ No newline at end of file diff --git a/roadmaps/ios/content/cocoa-touch@leozxW-5fAOfkKbQM4FD1.md b/roadmaps/ios/content/cocoa-touch@leozxW-5fAOfkKbQM4FD1.md index 73ed101c9..082a7580d 100644 --- a/roadmaps/ios/content/cocoa-touch@leozxW-5fAOfkKbQM4FD1.md +++ b/roadmaps/ios/content/cocoa-touch@leozxW-5fAOfkKbQM4FD1.md @@ -1,3 +1,3 @@ # Cocoa Touch - + Cocoa Touch is the topmost layer of the iOS architecture and provides the frameworks developers interact with most directly, including UIKit, SwiftUI, MapKit, and GameKit. It handles touch input, notifications, multitasking, and high-level app structure. Most iOS app code is written against Cocoa Touch APIs. \ No newline at end of file diff --git a/roadmaps/ios/content/code-quality-tools@DVe8S6TjKcQ8LT5G-aMVa.md b/roadmaps/ios/content/code-quality-tools@DVe8S6TjKcQ8LT5G-aMVa.md index 57dea4042..0553bfac2 100644 --- a/roadmaps/ios/content/code-quality-tools@DVe8S6TjKcQ8LT5G-aMVa.md +++ b/roadmaps/ios/content/code-quality-tools@DVe8S6TjKcQ8LT5G-aMVa.md @@ -1,3 +1,3 @@ # Code Quality Tools - + Code quality tools for iOS enforce consistent style and detect potential issues in Swift code through static analysis. SwiftLint, Tailor, and SwiftFormat are the main tools available. Integrating them into the Xcode build process or CI pipeline ensures consistent code quality across the team. \ No newline at end of file diff --git a/roadmaps/ios/content/combine-and-mvvm@pY_zaMcFpeFDLgVk2W0Vy.md b/roadmaps/ios/content/combine-and-mvvm@pY_zaMcFpeFDLgVk2W0Vy.md index 8b34115f6..155fdb75c 100644 --- a/roadmaps/ios/content/combine-and-mvvm@pY_zaMcFpeFDLgVk2W0Vy.md +++ b/roadmaps/ios/content/combine-and-mvvm@pY_zaMcFpeFDLgVk2W0Vy.md @@ -1,5 +1,5 @@ # Combine and MVVM - + Combine integrates naturally with the MVVM pattern. ViewModels expose @Published properties that emit state changes, and Views subscribe to those values to update the UI automatically. Combine operators handle data transformation, network logic, and combining multiple sources within the ViewModel, keeping the UI layer simple. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/components@A1TFKVjGU5RbeTF_zxJlu.md b/roadmaps/ios/content/components@A1TFKVjGU5RbeTF_zxJlu.md index efadbb09e..c159ac6f8 100644 --- a/roadmaps/ios/content/components@A1TFKVjGU5RbeTF_zxJlu.md +++ b/roadmaps/ios/content/components@A1TFKVjGU5RbeTF_zxJlu.md @@ -1,5 +1,5 @@ # Components - + UIKit components are the built-in UI controls the framework provides, including UIButton, UILabel, UITextField, UISwitch, UISlider, UIImageView, and UITableView. Each component is a UIView subclass and can be customized through properties, subclassing, or delegation. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/concurrency-and-multithreading@fbloF-u4XwdHLmBS9flZm.md b/roadmaps/ios/content/concurrency-and-multithreading@fbloF-u4XwdHLmBS9flZm.md index 59d7e9b9d..4fbb47210 100644 --- a/roadmaps/ios/content/concurrency-and-multithreading@fbloF-u4XwdHLmBS9flZm.md +++ b/roadmaps/ios/content/concurrency-and-multithreading@fbloF-u4XwdHLmBS9flZm.md @@ -1,3 +1,3 @@ # Concurrency and Multithreading - + Concurrency and multithreading allow iOS apps to perform multiple operations simultaneously without blocking the main UI thread. iOS provides Grand Central Dispatch (GCD) and Operation Queues as the two main systems for managing concurrent work. Swift's async/await, introduced in Swift 5.5, is now the preferred approach for writing concurrent code. \ No newline at end of file diff --git a/roadmaps/ios/content/concurrency-gcd-asyncawait@aALIiAxKz4f7B_EYyhBCi.md b/roadmaps/ios/content/concurrency-gcd-asyncawait@aALIiAxKz4f7B_EYyhBCi.md index 332d9ca18..51fe940dc 100644 --- a/roadmaps/ios/content/concurrency-gcd-asyncawait@aALIiAxKz4f7B_EYyhBCi.md +++ b/roadmaps/ios/content/concurrency-gcd-asyncawait@aALIiAxKz4f7B_EYyhBCi.md @@ -1,3 +1,3 @@ # Concurrency (GCD, async/await) - + Concurrency in iOS allows multiple tasks to run in parallel to keep the UI responsive. Grand Central Dispatch (GCD) is the traditional approach, using dispatch queues to schedule work on background threads. Swift's async/await syntax, introduced in Swift 5.5, provides a more readable and structured way to write asynchronous code. \ No newline at end of file diff --git a/roadmaps/ios/content/concurrency@-aLGB3cDXZHIhVU3t-Ve4.md b/roadmaps/ios/content/concurrency@-aLGB3cDXZHIhVU3t-Ve4.md index df0137930..547f499e2 100644 --- a/roadmaps/ios/content/concurrency@-aLGB3cDXZHIhVU3t-Ve4.md +++ b/roadmaps/ios/content/concurrency@-aLGB3cDXZHIhVU3t-Ve4.md @@ -1,5 +1,5 @@ # Concurrency - + Swift's structured concurrency builds on async/await with additional primitives for parallel execution. async let runs multiple async operations concurrently, TaskGroup manages a dynamic set of concurrent child tasks, and actors protect shared mutable state from data races. The Swift concurrency model enforces safety through the Sendable protocol and actor isolation. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/core-data@H4-Dp2WTA6HAZiFRQdLjx.md b/roadmaps/ios/content/core-data@H4-Dp2WTA6HAZiFRQdLjx.md index 726010cd7..318378961 100644 --- a/roadmaps/ios/content/core-data@H4-Dp2WTA6HAZiFRQdLjx.md +++ b/roadmaps/ios/content/core-data@H4-Dp2WTA6HAZiFRQdLjx.md @@ -1,5 +1,5 @@ # Core Data - + Core Data is Apple's framework for persisting complex object graphs and relational data on iOS. It provides an abstraction layer over SQLite with tools for defining data models, fetching, filtering, and observing changes. Core Data supports undo/redo, background data operations, and CloudKit integration for syncing data across a user's devices. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/core-os@IdGdLNgJI3WmONEFsMq-d.md b/roadmaps/ios/content/core-os@IdGdLNgJI3WmONEFsMq-d.md index d77a9b95e..14dc15315 100644 --- a/roadmaps/ios/content/core-os@IdGdLNgJI3WmONEFsMq-d.md +++ b/roadmaps/ios/content/core-os@IdGdLNgJI3WmONEFsMq-d.md @@ -1,5 +1,5 @@ # Core OS - + Core OS is the bottom layer of the iOS architecture, sitting directly above the hardware. It provides the Darwin kernel, security frameworks, and low-level system interfaces. Frameworks at this level include Security, Accelerate for math and signal processing, and ExternalAccessory for communicating with hardware accessories. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/core-services@LHM7gNgTtfn_QDW-oQskD.md b/roadmaps/ios/content/core-services@LHM7gNgTtfn_QDW-oQskD.md index c493dbdf2..c7445f7ef 100644 --- a/roadmaps/ios/content/core-services@LHM7gNgTtfn_QDW-oQskD.md +++ b/roadmaps/ios/content/core-services@LHM7gNgTtfn_QDW-oQskD.md @@ -1,5 +1,5 @@ # Core Services - + Core Services is the second layer of the iOS architecture and provides fundamental system capabilities that apps depend on. It includes frameworks for networking, file access, data management, location, and iCloud. Higher-level frameworks in Cocoa Touch build on Core Services internally. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/data-persistence@6gfqFy3H6SLt06oJ1kt5A.md b/roadmaps/ios/content/data-persistence@6gfqFy3H6SLt06oJ1kt5A.md index 415f52407..8295fc9a8 100644 --- a/roadmaps/ios/content/data-persistence@6gfqFy3H6SLt06oJ1kt5A.md +++ b/roadmaps/ios/content/data-persistence@6gfqFy3H6SLt06oJ1kt5A.md @@ -1,5 +1,5 @@ # Data Persistence - + Data persistence covers the different mechanisms iOS apps use to store data on-device across app sessions. Options include Core Data for complex object graphs, User Defaults for simple preferences, Keychain for sensitive credentials, SQLite for relational data, and the file system for arbitrary files. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/debug-navigator@VuWUsg05WmOoP_RJ5AXJO.md b/roadmaps/ios/content/debug-navigator@VuWUsg05WmOoP_RJ5AXJO.md index f9f112907..e6d395ea8 100644 --- a/roadmaps/ios/content/debug-navigator@VuWUsg05WmOoP_RJ5AXJO.md +++ b/roadmaps/ios/content/debug-navigator@VuWUsg05WmOoP_RJ5AXJO.md @@ -1,5 +1,5 @@ # Debug Navigator - + The Debug Navigator appears during a debugging session and shows real-time data about the running app, including CPU, memory, disk, and network usage, as well as active threads and their states. It helps identify performance issues and excessive resource consumption without switching to a separate profiling tool. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/debugging-techniques@OZZ3UnWN2gFflbM_WaJ8H.md b/roadmaps/ios/content/debugging-techniques@OZZ3UnWN2gFflbM_WaJ8H.md index b7cdc6859..dd48638cb 100644 --- a/roadmaps/ios/content/debugging-techniques@OZZ3UnWN2gFflbM_WaJ8H.md +++ b/roadmaps/ios/content/debugging-techniques@OZZ3UnWN2gFflbM_WaJ8H.md @@ -1,3 +1,3 @@ # Debugging Techniques - + Debugging in iOS involves identifying and resolving issues in app behavior, performance, and memory. Xcode provides a built-in debugger with breakpoints and variable inspection, and Instruments provides deep profiling for CPU, memory, energy, and network usage. \ No newline at end of file diff --git a/roadmaps/ios/content/delegate-pattern@BtPYKd7RedHOLRATDKkpg.md b/roadmaps/ios/content/delegate-pattern@BtPYKd7RedHOLRATDKkpg.md index 9ef759ecc..941e2ae88 100644 --- a/roadmaps/ios/content/delegate-pattern@BtPYKd7RedHOLRATDKkpg.md +++ b/roadmaps/ios/content/delegate-pattern@BtPYKd7RedHOLRATDKkpg.md @@ -1,5 +1,5 @@ # Delegate Pattern - + The delegate pattern is a core design pattern in iOS where one object delegates responsibility for certain behaviors to another through a protocol. UIKit uses delegation extensively, with UITableViewDelegate, UITextFieldDelegate, and URLSessionDelegate being common examples. Delegates allow customization of behavior without requiring subclassing. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/dependency-manager@Tv8-WUcKiZMLHuunQwise.md b/roadmaps/ios/content/dependency-manager@Tv8-WUcKiZMLHuunQwise.md index 64862aeb5..a7d3ce7a3 100644 --- a/roadmaps/ios/content/dependency-manager@Tv8-WUcKiZMLHuunQwise.md +++ b/roadmaps/ios/content/dependency-manager@Tv8-WUcKiZMLHuunQwise.md @@ -1,3 +1,3 @@ # Dependency Manager - + Dependency managers automate adding, updating, and removing third-party libraries in an iOS project. The three main options are Swift Package Manager, CocoaPods, and Carthage. Each has different trade-offs around integration complexity, build speed, and the breadth of available packages. \ No newline at end of file diff --git a/roadmaps/ios/content/dynamic-library@Lrb4HZYrZU7SJlbedZp7U.md b/roadmaps/ios/content/dynamic-library@Lrb4HZYrZU7SJlbedZp7U.md index 52af8cf05..5659ed2e0 100644 --- a/roadmaps/ios/content/dynamic-library@Lrb4HZYrZU7SJlbedZp7U.md +++ b/roadmaps/ios/content/dynamic-library@Lrb4HZYrZU7SJlbedZp7U.md @@ -1,5 +1,5 @@ # Dynamic Library - + A dynamic library is a compiled binary loaded into memory at runtime rather than being embedded in the app binary at link time. On iOS, third-party dynamic libraries must be bundled inside the app's framework folder. Dynamic frameworks allow code and resources to be shared between an app and its extensions. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/editors@-4q7MFXaTmpR_39PTeWD8.md b/roadmaps/ios/content/editors@-4q7MFXaTmpR_39PTeWD8.md index fb4fe2a6f..d61cfab0e 100644 --- a/roadmaps/ios/content/editors@-4q7MFXaTmpR_39PTeWD8.md +++ b/roadmaps/ios/content/editors@-4q7MFXaTmpR_39PTeWD8.md @@ -1,5 +1,5 @@ # Editors - + Xcode provides different editor modes depending on the file being viewed. The standard editor shows a single file, the assistant editor displays two files side by side, and the version editor shows Git history for the current file. The editor area also hosts Interface Builder when a Storyboard or XIB file is open. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/error-handling@N5ojp6bqgH074MPKYjCHV.md b/roadmaps/ios/content/error-handling@N5ojp6bqgH074MPKYjCHV.md index 4afc67eeb..dfe2d0bfe 100644 --- a/roadmaps/ios/content/error-handling@N5ojp6bqgH074MPKYjCHV.md +++ b/roadmaps/ios/content/error-handling@N5ojp6bqgH074MPKYjCHV.md @@ -1,5 +1,5 @@ # Error Handling - + Swift provides a structured error handling model using the throw, try, and catch keywords. Functions that can fail declare throws in their signature, and callers handle errors using do-catch blocks. Swift also supports the Result type for propagating errors through asynchronous APIs. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/fastlane@_W3vb0b14FrWB2fH7DHC7.md b/roadmaps/ios/content/fastlane@_W3vb0b14FrWB2fH7DHC7.md index 09b148245..87ce572ee 100644 --- a/roadmaps/ios/content/fastlane@_W3vb0b14FrWB2fH7DHC7.md +++ b/roadmaps/ios/content/fastlane@_W3vb0b14FrWB2fH7DHC7.md @@ -1,5 +1,5 @@ # FastLane - + Fastlane is an open-source automation tool for iOS development that handles repetitive tasks like building, testing, code signing, and uploading to App Store Connect. Workflows are defined in Ruby-based scripts called Fastfiles using reusable actions called lanes. Fastlane is widely used in iOS CI/CD pipelines to automate provisioning, screenshots, and App Store submissions. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/file-system@_bkRbqVXKNCnRvEFCM6mN.md b/roadmaps/ios/content/file-system@_bkRbqVXKNCnRvEFCM6mN.md index 4f1dcf8d9..612ac4c6a 100644 --- a/roadmaps/ios/content/file-system@_bkRbqVXKNCnRvEFCM6mN.md +++ b/roadmaps/ios/content/file-system@_bkRbqVXKNCnRvEFCM6mN.md @@ -1,5 +1,5 @@ # File System - + The iOS file system sandboxes each app's data into private directories. The Documents directory is for user-facing files that should be backed up, the Caches directory is for regenerable data, and the tmp directory is for temporary files that do not need to persist. Apps use FileManager to create, read, write, move, and delete files within their sandbox. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/frameworks--library@pZVPsgvCpP3zUgBM4i0CF.md b/roadmaps/ios/content/frameworks--library@pZVPsgvCpP3zUgBM4i0CF.md index 77b7ce2bb..3151a057c 100644 --- a/roadmaps/ios/content/frameworks--library@pZVPsgvCpP3zUgBM4i0CF.md +++ b/roadmaps/ios/content/frameworks--library@pZVPsgvCpP3zUgBM4i0CF.md @@ -1,3 +1,3 @@ # Frameworks & Library - + Frameworks and libraries are reusable packages of compiled code and resources that can be linked into iOS apps. Understanding the differences between XCFrameworks, static libraries, and dynamic libraries is important for packaging shared code, distributing SDKs, and managing binary dependencies. \ No newline at end of file diff --git a/roadmaps/ios/content/gamekit@H5F9P5xeQiHhWhS6jEzp5.md b/roadmaps/ios/content/gamekit@H5F9P5xeQiHhWhS6jEzp5.md index baba4bf72..ca998c0b8 100644 --- a/roadmaps/ios/content/gamekit@H5F9P5xeQiHhWhS6jEzp5.md +++ b/roadmaps/ios/content/gamekit@H5F9P5xeQiHhWhS6jEzp5.md @@ -1,5 +1,5 @@ # GameKit - + GameKit is Apple's framework for adding social gaming features to iOS apps. It provides APIs for leaderboards, achievements, multiplayer matchmaking, and real-time game sessions through Game Center. GameKit handles authentication with the user's Apple ID and integrates with the native Game Center UI. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/gcd@aROcI1RucAyu-gHn-tVnj.md b/roadmaps/ios/content/gcd@aROcI1RucAyu-gHn-tVnj.md index 8af10bc32..c1d1e74ce 100644 --- a/roadmaps/ios/content/gcd@aROcI1RucAyu-gHn-tVnj.md +++ b/roadmaps/ios/content/gcd@aROcI1RucAyu-gHn-tVnj.md @@ -1,5 +1,5 @@ # GCD - + Grand Central Dispatch (GCD) is a C-based system for dispatching work to queues managed by the operating system. The main queue runs tasks on the main thread for UI updates, while serial and concurrent dispatch queues run background work. GCD is lightweight and efficient, and remains widely used alongside Swift's async/await model. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/github-actions@LltERZaHsI-R_3O_3twpk.md b/roadmaps/ios/content/github-actions@LltERZaHsI-R_3O_3twpk.md index 5eac1f525..c0a965557 100644 --- a/roadmaps/ios/content/github-actions@LltERZaHsI-R_3O_3twpk.md +++ b/roadmaps/ios/content/github-actions@LltERZaHsI-R_3O_3twpk.md @@ -1,5 +1,5 @@ # GitHub Actions - + GitHub Actions provides CI/CD automation directly within GitHub repositories. For iOS development, it uses macOS runners with Xcode installed to build apps, run tests, and trigger Fastlane workflows. Pipelines are defined in YAML workflow files and triggered by events like pull requests and pushes to main. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/gitlab@VylaBSDAVFzveVfytI1Fz.md b/roadmaps/ios/content/gitlab@VylaBSDAVFzveVfytI1Fz.md index b2d124fdb..0a7383c9e 100644 --- a/roadmaps/ios/content/gitlab@VylaBSDAVFzveVfytI1Fz.md +++ b/roadmaps/ios/content/gitlab@VylaBSDAVFzveVfytI1Fz.md @@ -1,5 +1,5 @@ # GitLab - + GitLab CI/CD is GitLab's built-in automation platform that runs pipelines on code changes. For iOS development, it uses GitLab Runners configured on macOS to execute Xcode builds and test suites. GitLab CI is tightly integrated with the GitLab source code platform and merge request workflow. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/graphql@9o7d3aN0YFfNNUeVoJrhs.md b/roadmaps/ios/content/graphql@9o7d3aN0YFfNNUeVoJrhs.md index b3fba8d4d..4b9c93a02 100644 --- a/roadmaps/ios/content/graphql@9o7d3aN0YFfNNUeVoJrhs.md +++ b/roadmaps/ios/content/graphql@9o7d3aN0YFfNNUeVoJrhs.md @@ -1,5 +1,5 @@ # GraphQL - + GraphQL is a query language for APIs that allows clients to request exactly the data they need in a single request. iOS apps interact with GraphQL APIs using libraries like Apollo iOS. GraphQL reduces over-fetching and under-fetching of data, making it efficient for mobile clients on limited bandwidth. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/groups@42sfiLKrVCcnMMjR7TFn1.md b/roadmaps/ios/content/groups@42sfiLKrVCcnMMjR7TFn1.md index 8174dcf19..c15b56470 100644 --- a/roadmaps/ios/content/groups@42sfiLKrVCcnMMjR7TFn1.md +++ b/roadmaps/ios/content/groups@42sfiLKrVCcnMMjR7TFn1.md @@ -1,5 +1,5 @@ # Groups - + Groups in Xcode are virtual folders used to organize files within the Project Navigator without necessarily reflecting the file system directory structure. They keep large projects organized by feature or layer. Developers can create and rename groups and move files between them without affecting how Xcode locates or compiles those files. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/history-and-why-swift@z4-1Gc95JKYAn2RPFc7hw.md b/roadmaps/ios/content/history-and-why-swift@z4-1Gc95JKYAn2RPFc7hw.md index c7a323547..d89e754ad 100644 --- a/roadmaps/ios/content/history-and-why-swift@z4-1Gc95JKYAn2RPFc7hw.md +++ b/roadmaps/ios/content/history-and-why-swift@z4-1Gc95JKYAn2RPFc7hw.md @@ -1,5 +1,5 @@ # History and Why Swift? - + Swift was introduced by Apple in 2014 to address the limitations of Objective-C in terms of safety, performance, and developer experience. It was designed to be faster, more expressive, and safer by eliminating entire classes of bugs through optionals and strong typing. Apple open-sourced Swift in 2015, and it has since become one of the most widely adopted programming languages. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/http--https@GjY5qCU1rjB0D58qHQtAR.md b/roadmaps/ios/content/http--https@GjY5qCU1rjB0D58qHQtAR.md index f22b9db9d..ee2ee01a9 100644 --- a/roadmaps/ios/content/http--https@GjY5qCU1rjB0D58qHQtAR.md +++ b/roadmaps/ios/content/http--https@GjY5qCU1rjB0D58qHQtAR.md @@ -1,5 +1,5 @@ # HTTP / HTTPs - + HTTP and HTTPS are the application-layer protocols used for communication between iOS apps and web servers. iOS enforces App Transport Security (ATS) by default, requiring HTTPS for most network requests. Understanding request methods, status codes, headers, and the request-response cycle is fundamental to working with any iOS networking stack. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/ibactions@FspN4yiBF9aEN7_SlXUe1.md b/roadmaps/ios/content/ibactions@FspN4yiBF9aEN7_SlXUe1.md index 9b1aa9eed..a939dfb6f 100644 --- a/roadmaps/ios/content/ibactions@FspN4yiBF9aEN7_SlXUe1.md +++ b/roadmaps/ios/content/ibactions@FspN4yiBF9aEN7_SlXUe1.md @@ -1,5 +1,5 @@ # IBActions - + IBActions connect UI controls in Interface Builder to methods in code that run when a user interacts with a control. Declaring a method with @IBAction allows it to be wired to a button, gesture recognizer, or other control in a Storyboard or XIB. When the user triggers the control, UIKit calls the connected method. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/implementing-delegates@z3AUN9u7EEqeKOqvLxf7D.md b/roadmaps/ios/content/implementing-delegates@z3AUN9u7EEqeKOqvLxf7D.md index 60dfd139b..2279b2642 100644 --- a/roadmaps/ios/content/implementing-delegates@z3AUN9u7EEqeKOqvLxf7D.md +++ b/roadmaps/ios/content/implementing-delegates@z3AUN9u7EEqeKOqvLxf7D.md @@ -1,5 +1,5 @@ # Implementing Delegates - + Implementing a delegate involves defining a protocol with required methods, adding a weak delegate property to the delegating class, and calling delegate methods at the appropriate times. The conforming class implements the protocol methods to respond to events. The weak reference is necessary to prevent retain cycles between the delegate and the delegating object. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/installing@R8LdFpfyS0MFYJuMLk8RG.md b/roadmaps/ios/content/installing@R8LdFpfyS0MFYJuMLk8RG.md index 3a948652d..674224e0a 100644 --- a/roadmaps/ios/content/installing@R8LdFpfyS0MFYJuMLk8RG.md +++ b/roadmaps/ios/content/installing@R8LdFpfyS0MFYJuMLk8RG.md @@ -1,5 +1,5 @@ # Installing - + Installing Xcode is the first step in setting up an iOS development environment. Xcode is available for free from the Mac App Store and requires macOS and sufficient disk space. After installation, additional simulators and command-line tools can be added through Xcode settings. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/interface-builder@iMzYd8KUFnk6zqr4KecgX.md b/roadmaps/ios/content/interface-builder@iMzYd8KUFnk6zqr4KecgX.md index 45f15812b..0fbccafd4 100644 --- a/roadmaps/ios/content/interface-builder@iMzYd8KUFnk6zqr4KecgX.md +++ b/roadmaps/ios/content/interface-builder@iMzYd8KUFnk6zqr4KecgX.md @@ -1,5 +1,5 @@ # Interface Builder - + Interface Builder is the visual design tool embedded in Xcode for creating UI layouts without writing code. Developers drag UI elements onto a canvas, configure properties through the inspector, and set up constraints. Interface Builder generates XIB and Storyboard files that are compiled into the app bundle at build time. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/interface-overview@FwwqAchMC6qdnXbqg45he.md b/roadmaps/ios/content/interface-overview@FwwqAchMC6qdnXbqg45he.md index 5d999b5b2..9efceaed6 100644 --- a/roadmaps/ios/content/interface-overview@FwwqAchMC6qdnXbqg45he.md +++ b/roadmaps/ios/content/interface-overview@FwwqAchMC6qdnXbqg45he.md @@ -1,3 +1,3 @@ # Interface overview - + The Xcode interface is organized into a navigator panel on the left, an editor area in the center, an inspector panel on the right, and a debug area at the bottom. The toolbar at the top provides controls for running, stopping, and switching build schemes. Understanding the layout helps developers move efficiently across code, assets, and project settings. \ No newline at end of file diff --git a/roadmaps/ios/content/interoperability-with-swift@IAPzuN51xvrZJ5TFB23Q9.md b/roadmaps/ios/content/interoperability-with-swift@IAPzuN51xvrZJ5TFB23Q9.md index 44628dcdd..d71c0287d 100644 --- a/roadmaps/ios/content/interoperability-with-swift@IAPzuN51xvrZJ5TFB23Q9.md +++ b/roadmaps/ios/content/interoperability-with-swift@IAPzuN51xvrZJ5TFB23Q9.md @@ -1,5 +1,5 @@ # Interoperability with Swift - + Swift and Objective-C can coexist in the same Xcode project through a bridging header mechanism. Swift code can call Objective-C APIs, and Objective-C code can use Swift classes marked with the @objc attribute. Interoperability is important when migrating legacy Objective-C projects to Swift incrementally. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/jenkins@TrblGyy81Oep2CBxoZkaf.md b/roadmaps/ios/content/jenkins@TrblGyy81Oep2CBxoZkaf.md index a66cde57e..eb357a04c 100644 --- a/roadmaps/ios/content/jenkins@TrblGyy81Oep2CBxoZkaf.md +++ b/roadmaps/ios/content/jenkins@TrblGyy81Oep2CBxoZkaf.md @@ -1,5 +1,5 @@ # Jenkins - + Jenkins is an open-source automation server used for iOS CI/CD, particularly in enterprise environments. It runs on macOS machines and can execute Xcode builds, run tests, and invoke Fastlane workflows. Jenkins requires more infrastructure setup than cloud-based alternatives but offers maximum flexibility in configuration. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/json--xml@WYV4YG_sLvC4S5ptFFdrF.md b/roadmaps/ios/content/json--xml@WYV4YG_sLvC4S5ptFFdrF.md index 1e1831fb2..ffd68c87e 100644 --- a/roadmaps/ios/content/json--xml@WYV4YG_sLvC4S5ptFFdrF.md +++ b/roadmaps/ios/content/json--xml@WYV4YG_sLvC4S5ptFFdrF.md @@ -1,3 +1,3 @@ # JSON / XML - + JSON and XML are the two most common data interchange formats used when communicating with web services or storing structured data locally. iOS apps frequently parse JSON responses from REST APIs and serialize Swift models into JSON before sending them. XML is less common but still used in some legacy APIs and standards like RSS. \ No newline at end of file diff --git a/roadmaps/ios/content/keeping-updated-with-wwdc@fOOQurIL1w3PwH5Mep9x1.md b/roadmaps/ios/content/keeping-updated-with-wwdc@fOOQurIL1w3PwH5Mep9x1.md index 5d2bdb78e..a6a9bdd15 100644 --- a/roadmaps/ios/content/keeping-updated-with-wwdc@fOOQurIL1w3PwH5Mep9x1.md +++ b/roadmaps/ios/content/keeping-updated-with-wwdc@fOOQurIL1w3PwH5Mep9x1.md @@ -1,5 +1,5 @@ # Keeping Updated with WWDC - + WWDC (Apple Worldwide Developers Conference) is Apple's annual developer event where new iOS, macOS, and framework announcements are made. Watching WWDC sessions, reading the associated documentation, and reviewing the release notes keeps iOS developers current with new APIs, deprecations, and best practices. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/keychain@8v_eP0j85TnB33XyYAzrT.md b/roadmaps/ios/content/keychain@8v_eP0j85TnB33XyYAzrT.md index c06d6a351..5446acdae 100644 --- a/roadmaps/ios/content/keychain@8v_eP0j85TnB33XyYAzrT.md +++ b/roadmaps/ios/content/keychain@8v_eP0j85TnB33XyYAzrT.md @@ -1,5 +1,5 @@ # Keychain - + The Keychain is iOS's secure, encrypted storage for sensitive data like passwords, tokens, and cryptographic keys. Data stored in the Keychain persists across app reinstalls and can be shared between apps from the same developer through Keychain Access Groups. Keychain access is managed through the Security framework's SecItem API. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/latest-ios-sdk@SBlLNfyWzzhdFNtNtkLet.md b/roadmaps/ios/content/latest-ios-sdk@SBlLNfyWzzhdFNtNtkLet.md index 2f832771c..d9a5098ca 100644 --- a/roadmaps/ios/content/latest-ios-sdk@SBlLNfyWzzhdFNtNtkLet.md +++ b/roadmaps/ios/content/latest-ios-sdk@SBlLNfyWzzhdFNtNtkLet.md @@ -1,5 +1,5 @@ # Latest iOS SDK - + The iOS SDK is updated each year with new APIs, deprecated frameworks, and changes to system behavior. New SDK features are announced at WWDC and documented in the release notes. Adopting the latest SDK allows apps to use new platform capabilities and ensures compliance with evolving App Store requirements. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/latest-swift-version@e7qVpQeu2iQL0c9MOMCVe.md b/roadmaps/ios/content/latest-swift-version@e7qVpQeu2iQL0c9MOMCVe.md index dc192f738..7735d90e1 100644 --- a/roadmaps/ios/content/latest-swift-version@e7qVpQeu2iQL0c9MOMCVe.md +++ b/roadmaps/ios/content/latest-swift-version@e7qVpQeu2iQL0c9MOMCVe.md @@ -1,5 +1,5 @@ # Latest Swift Version - + Apple releases new Swift versions annually alongside Xcode and iOS updates. New Swift versions introduce language features, performance improvements, and standard library additions. Tracking the Swift Evolution process and WWDC sessions on Swift helps developers adopt new capabilities and respond to deprecations promptly. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/mapkit@XOXsjaQ-YyuAMpVCqH8KG.md b/roadmaps/ios/content/mapkit@XOXsjaQ-YyuAMpVCqH8KG.md index ff419ffe3..2619f4232 100644 --- a/roadmaps/ios/content/mapkit@XOXsjaQ-YyuAMpVCqH8KG.md +++ b/roadmaps/ios/content/mapkit@XOXsjaQ-YyuAMpVCqH8KG.md @@ -1,5 +1,5 @@ # MapKit - + MapKit is Apple's framework for embedding maps and location-based features into iOS apps. It provides interactive map views, annotation pins, overlays, turn-by-turn directions, and local place search. MapKit uses Apple Maps as its data source and integrates with Core Location for GPS access. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/memory-management@tqbg8mBJfjuXacdMlIB_L.md b/roadmaps/ios/content/memory-management@tqbg8mBJfjuXacdMlIB_L.md index 73f4d5b14..1758d1240 100644 --- a/roadmaps/ios/content/memory-management@tqbg8mBJfjuXacdMlIB_L.md +++ b/roadmaps/ios/content/memory-management@tqbg8mBJfjuXacdMlIB_L.md @@ -1,5 +1,5 @@ # Memory Management - + iOS uses Automatic Reference Counting (ARC) to manage memory. ARC tracks how many strong references point to each object and deallocates it when the count drops to zero. Developers must understand strong, weak, and unowned references to avoid retain cycles, which cause memory leaks. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/modals-and-navigation@jb89kQxDhZND3vQo0EH7r.md b/roadmaps/ios/content/modals-and-navigation@jb89kQxDhZND3vQo0EH7r.md index 68f874fd2..2893e2e4e 100644 --- a/roadmaps/ios/content/modals-and-navigation@jb89kQxDhZND3vQo0EH7r.md +++ b/roadmaps/ios/content/modals-and-navigation@jb89kQxDhZND3vQo0EH7r.md @@ -1,5 +1,5 @@ # Modals and Navigation - + Modal presentation in UIKit shows a view controller over the current content, typically for tasks that need the user's attention before they can continue. Modals are dismissed programmatically or by the user via drag or a dismiss button. Combining modal presentation with embedded navigation controllers creates flows like editing forms or settings sheets. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/mvc@a-QDI7Ei-B5BRHbicFcfG.md b/roadmaps/ios/content/mvc@a-QDI7Ei-B5BRHbicFcfG.md index 33a82db3f..678d15c53 100644 --- a/roadmaps/ios/content/mvc@a-QDI7Ei-B5BRHbicFcfG.md +++ b/roadmaps/ios/content/mvc@a-QDI7Ei-B5BRHbicFcfG.md @@ -1,5 +1,5 @@ # MVC - + MVC (Model-View-Controller) is the architectural pattern used by UIKit and historically recommended by Apple for iOS apps. The Model holds data and business logic, the View displays content, and the Controller mediates between them. In practice, UIKit view controllers tend to accumulate too much responsibility, a problem known as Massive View Controller. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/mvp@lVNrnUK6p4eifKRVSnOje.md b/roadmaps/ios/content/mvp@lVNrnUK6p4eifKRVSnOje.md index a9c903d30..aa79ac86f 100644 --- a/roadmaps/ios/content/mvp@lVNrnUK6p4eifKRVSnOje.md +++ b/roadmaps/ios/content/mvp@lVNrnUK6p4eifKRVSnOje.md @@ -1,5 +1,5 @@ # MVP - + MVP (Model-View-Presenter) improves on MVC by separating UIKit view controllers into a passive View and a Presenter that contains all UI logic. The View delegates user interactions to the Presenter, which processes them and updates the View through a protocol-based interface. Moving logic out of the view controller makes it much easier to unit test. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/mvvm-c@iLT2jAkQg-Ex0zSLquNfl.md b/roadmaps/ios/content/mvvm-c@iLT2jAkQg-Ex0zSLquNfl.md index c8716e793..5fefbd4a5 100644 --- a/roadmaps/ios/content/mvvm-c@iLT2jAkQg-Ex0zSLquNfl.md +++ b/roadmaps/ios/content/mvvm-c@iLT2jAkQg-Ex0zSLquNfl.md @@ -1,5 +1,5 @@ # MVVM-C - + MVVM-C extends the MVVM pattern by adding a Coordinator component that manages navigation between screens. Coordinators handle routing logic that would otherwise live in view controllers or ViewModels, making navigation testable and reusable. This separation is particularly valuable in apps with complex conditional navigation flows. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/mvvm@taTxZw2c3xS18JOwgkNHM.md b/roadmaps/ios/content/mvvm@taTxZw2c3xS18JOwgkNHM.md index cfa412bb5..b467e553f 100644 --- a/roadmaps/ios/content/mvvm@taTxZw2c3xS18JOwgkNHM.md +++ b/roadmaps/ios/content/mvvm@taTxZw2c3xS18JOwgkNHM.md @@ -1,5 +1,5 @@ # MVVM - + MVVM (Model-View-ViewModel) separates the UI layer from business logic using a ViewModel that exposes observable state. The View binds to the ViewModel and updates automatically when state changes, using Combine, RxSwift, or Swift's observation framework. MVVM is widely adopted in iOS development and works well with both UIKit and SwiftUI. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/navigation-controllers-segues@tUbMr1pGlw4JwMuW311JJ.md b/roadmaps/ios/content/navigation-controllers-segues@tUbMr1pGlw4JwMuW311JJ.md index ab077d3b0..fe7cfa97b 100644 --- a/roadmaps/ios/content/navigation-controllers-segues@tUbMr1pGlw4JwMuW311JJ.md +++ b/roadmaps/ios/content/navigation-controllers-segues@tUbMr1pGlw4JwMuW311JJ.md @@ -1,5 +1,5 @@ # Navigation Controllers, Segues - + UINavigationController manages a stack of view controllers with a navigation bar at the top. Segues are the transitions between view controllers defined in a Storyboard, triggered by user interaction or called programmatically. The prepare(for:sender:) method is used to pass data to the destination view controller before a segue executes. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/navigation-stacks@TLm70PlTI0K3Odn1iYxWX.md b/roadmaps/ios/content/navigation-stacks@TLm70PlTI0K3Odn1iYxWX.md index 5ac2f07bd..b6732c396 100644 --- a/roadmaps/ios/content/navigation-stacks@TLm70PlTI0K3Odn1iYxWX.md +++ b/roadmaps/ios/content/navigation-stacks@TLm70PlTI0K3Odn1iYxWX.md @@ -1,5 +1,5 @@ # Navigation Stacks - + Navigation stacks in SwiftUI are managed by NavigationStack (iOS 16+), which maintains a path representing the current navigation state. Views are pushed onto the stack by navigating to a value, and the stack handles the back button automatically. The state-driven model enables programmatic navigation and full deep link support. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/navigation-stacks@mUMDZsgzCB6cs_K6pfUY1.md b/roadmaps/ios/content/navigation-stacks@mUMDZsgzCB6cs_K6pfUY1.md index 2a3157657..5a0c84438 100644 --- a/roadmaps/ios/content/navigation-stacks@mUMDZsgzCB6cs_K6pfUY1.md +++ b/roadmaps/ios/content/navigation-stacks@mUMDZsgzCB6cs_K6pfUY1.md @@ -1,3 +1,3 @@ # Navigation Stacks - + The navigation stack in UIKit is managed by UINavigationController using a push-pop model. View controllers are pushed onto the stack when navigating forward and popped when the user taps the Back button or calls popViewController. The navigation bar automatically reflects the current top of the stack. \ No newline at end of file diff --git a/roadmaps/ios/content/navigation-view@IBr2P7dknWTnZ2a-fFCqN.md b/roadmaps/ios/content/navigation-view@IBr2P7dknWTnZ2a-fFCqN.md index 34a42e65b..23ec7e2bd 100644 --- a/roadmaps/ios/content/navigation-view@IBr2P7dknWTnZ2a-fFCqN.md +++ b/roadmaps/ios/content/navigation-view@IBr2P7dknWTnZ2a-fFCqN.md @@ -1,5 +1,5 @@ # Navigation View - + NavigationView is the SwiftUI component for hierarchical navigation, used before NavigationStack was introduced in iOS 16. It wraps a view and provides a navigation bar and back navigation behavior. NavigationView is still relevant for apps targeting iOS 15 and earlier. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/navigation@02VAK4GMkN6nDHf1zqwPA.md b/roadmaps/ios/content/navigation@02VAK4GMkN6nDHf1zqwPA.md index 75669eb20..1fff7c95c 100644 --- a/roadmaps/ios/content/navigation@02VAK4GMkN6nDHf1zqwPA.md +++ b/roadmaps/ios/content/navigation@02VAK4GMkN6nDHf1zqwPA.md @@ -1,5 +1,5 @@ # Navigation - + Navigation in SwiftUI is managed with NavigationStack (iOS 16+) or NavigationView for older deployment targets. NavigationLink connects the current view to a destination, and the navigation stack maintains a history that the user can traverse with the Back button. SwiftUI's navigation model is state-driven, enabling programmatic navigation and deep link support. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/navigators@odKZx4SUULF1y4gmiJZdu.md b/roadmaps/ios/content/navigators@odKZx4SUULF1y4gmiJZdu.md index edb6fe1e4..7c42c88fa 100644 --- a/roadmaps/ios/content/navigators@odKZx4SUULF1y4gmiJZdu.md +++ b/roadmaps/ios/content/navigators@odKZx4SUULF1y4gmiJZdu.md @@ -1,3 +1,3 @@ # Navigators - + The navigator panel contains multiple navigators for different purposes. The Project Navigator shows the file hierarchy, the Issue Navigator displays errors and warnings, the Test Navigator lists test suites, and the Debug Navigator shows runtime resource usage. Switching between navigators is done using the icons at the top of the panel. \ No newline at end of file diff --git a/roadmaps/ios/content/networking@JoNoM-utp8MaL1H0oXDta.md b/roadmaps/ios/content/networking@JoNoM-utp8MaL1H0oXDta.md index 1432f0ef4..a9bcad445 100644 --- a/roadmaps/ios/content/networking@JoNoM-utp8MaL1H0oXDta.md +++ b/roadmaps/ios/content/networking@JoNoM-utp8MaL1H0oXDta.md @@ -1,5 +1,5 @@ # Networking - + Networking in iOS covers how apps communicate with remote servers and APIs. The native foundation is URLSession for HTTP requests, and Alamofire is a popular third-party library that simplifies common networking tasks. iOS apps commonly consume REST APIs over HTTPS and, increasingly, GraphQL APIs. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/new-feature-announcements@0dbdUmWvTIJ0fkUuLp9gR.md b/roadmaps/ios/content/new-feature-announcements@0dbdUmWvTIJ0fkUuLp9gR.md index 1ab3e32a7..86fd1696c 100644 --- a/roadmaps/ios/content/new-feature-announcements@0dbdUmWvTIJ0fkUuLp9gR.md +++ b/roadmaps/ios/content/new-feature-announcements@0dbdUmWvTIJ0fkUuLp9gR.md @@ -1,5 +1,5 @@ # New Feature Announcements - + Apple announces new platform features at WWDC each year that affect how iOS apps are built and what they can offer users. Recent examples include StoreKit 2, Live Activities, WidgetKit updates, and Vision framework additions. Staying aware of these announcements helps iOS developers evaluate which new capabilities are relevant to their apps and plan adoption accordingly. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/objective-c-basics@0BSX80W1TJ_Ia_Zh2zKyK.md b/roadmaps/ios/content/objective-c-basics@0BSX80W1TJ_Ia_Zh2zKyK.md index 3e8f077b3..97c55f10c 100644 --- a/roadmaps/ios/content/objective-c-basics@0BSX80W1TJ_Ia_Zh2zKyK.md +++ b/roadmaps/ios/content/objective-c-basics@0BSX80W1TJ_Ia_Zh2zKyK.md @@ -1,3 +1,3 @@ # Objective-C Basics - + Objective-C basics cover the core syntax and concepts needed to read and write Objective-C code. This includes pointers, message syntax, classes, categories, protocols, and property declarations. A working knowledge of these basics is useful when maintaining legacy codebases or interoperating with frameworks that expose Objective-C interfaces. \ No newline at end of file diff --git a/roadmaps/ios/content/objective-c@oOaMz9A5DZvrjxovMztXz.md b/roadmaps/ios/content/objective-c@oOaMz9A5DZvrjxovMztXz.md index e0f576f58..51a9d816b 100644 --- a/roadmaps/ios/content/objective-c@oOaMz9A5DZvrjxovMztXz.md +++ b/roadmaps/ios/content/objective-c@oOaMz9A5DZvrjxovMztXz.md @@ -1,5 +1,5 @@ # Objective-C - + Objective-C is the original language for iOS and macOS development, widely used before Swift's introduction in 2014. It is a superset of C with Smalltalk-style message passing and object-oriented features. Many older iOS codebases and some Apple frameworks are still written in Objective-C, and it can be used alongside Swift in the same project. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/observables--observers@k232wKg7XCb_ngjZ5Mwsy.md b/roadmaps/ios/content/observables--observers@k232wKg7XCb_ngjZ5Mwsy.md index b0bd27400..e8ab5ecff 100644 --- a/roadmaps/ios/content/observables--observers@k232wKg7XCb_ngjZ5Mwsy.md +++ b/roadmaps/ios/content/observables--observers@k232wKg7XCb_ngjZ5Mwsy.md @@ -1,5 +1,5 @@ # Observables & observers - + An Observable in RxSwift is a sequence that emits zero or more items over time before completing or erroring. Observers subscribe to Observables and receive emitted items, error notifications, or completion events. The relationship between Observable and Observer is the foundation of all RxSwift-based reactive code. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/operation-queues@mdAV4JlF08q-ZQpb5C3q6.md b/roadmaps/ios/content/operation-queues@mdAV4JlF08q-ZQpb5C3q6.md index 64b04963d..75bd1b156 100644 --- a/roadmaps/ios/content/operation-queues@mdAV4JlF08q-ZQpb5C3q6.md +++ b/roadmaps/ios/content/operation-queues@mdAV4JlF08q-ZQpb5C3q6.md @@ -1,5 +1,5 @@ # Operation Queues - + Operation Queues manage collections of NSOperation objects and execute them concurrently or serially. Operations support dependencies on each other, cancellation, and priority settings. Operation Queues provide a higher-level abstraction than GCD and are useful when tasks have complex interdependencies or need explicit cancellation logic. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/operators--pipelines@GAn12SsVR_mPxOaOVckdz.md b/roadmaps/ios/content/operators--pipelines@GAn12SsVR_mPxOaOVckdz.md index 8105dfb3c..a1a9c11bb 100644 --- a/roadmaps/ios/content/operators--pipelines@GAn12SsVR_mPxOaOVckdz.md +++ b/roadmaps/ios/content/operators--pipelines@GAn12SsVR_mPxOaOVckdz.md @@ -1,5 +1,5 @@ # Operators & Pipelines - + Combine operators transform, filter, and combine publishers into processing pipelines. Common operators include map, filter, flatMap, combineLatest, merge, and debounce. Chaining operators between a publisher and a subscriber creates a declarative pipeline that expresses complex asynchronous logic in a readable way. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/parsing@UTVh1RHRWb5eA-S7ayLp8.md b/roadmaps/ios/content/parsing@UTVh1RHRWb5eA-S7ayLp8.md index c29d06d3b..d60477b45 100644 --- a/roadmaps/ios/content/parsing@UTVh1RHRWb5eA-S7ayLp8.md +++ b/roadmaps/ios/content/parsing@UTVh1RHRWb5eA-S7ayLp8.md @@ -1,5 +1,5 @@ # Parsing - + Parsing JSON in Swift is done using Codable and JSONDecoder, which automatically decode JSON data into Swift structs and classes. XMLParser provides a SAX-style parser for processing XML documents event by event. Correct parsing handles optional fields, nested structures, and type mismatches cleanly. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/pick-a-language@MrdIb9F-wSEbUz7KRnH3t.md b/roadmaps/ios/content/pick-a-language@MrdIb9F-wSEbUz7KRnH3t.md index e39366e76..d5ea54599 100644 --- a/roadmaps/ios/content/pick-a-language@MrdIb9F-wSEbUz7KRnH3t.md +++ b/roadmaps/ios/content/pick-a-language@MrdIb9F-wSEbUz7KRnH3t.md @@ -1,5 +1,5 @@ # Pick a Language - + iOS development primarily uses Swift and Objective-C. Swift is Apple's modern recommended language for new projects, while Objective-C is still present in many legacy codebases and system frameworks. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/presenting--dismissing-views@4pmjLa7WvwV7D3RZlM6Hp.md b/roadmaps/ios/content/presenting--dismissing-views@4pmjLa7WvwV7D3RZlM6Hp.md index 47cc15cec..904d11439 100644 --- a/roadmaps/ios/content/presenting--dismissing-views@4pmjLa7WvwV7D3RZlM6Hp.md +++ b/roadmaps/ios/content/presenting--dismissing-views@4pmjLa7WvwV7D3RZlM6Hp.md @@ -1,5 +1,5 @@ # Presenting / Dismissing views - + Presenting views in SwiftUI is done using modifiers like sheet, fullScreenCover, and popover that show views modally over the current screen. Dismissal is handled using the dismiss environment action or by toggling the Boolean binding that controls the presentation. Knowing when to present modally versus navigate is important for designing clear user flows. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/profiling-instruments@Y24WWPej0C7-FiBeXpvl3.md b/roadmaps/ios/content/profiling-instruments@Y24WWPej0C7-FiBeXpvl3.md index d433d9dea..e6d19bc38 100644 --- a/roadmaps/ios/content/profiling-instruments@Y24WWPej0C7-FiBeXpvl3.md +++ b/roadmaps/ios/content/profiling-instruments@Y24WWPej0C7-FiBeXpvl3.md @@ -1,5 +1,5 @@ # Profiling Instruments - + Instruments is a performance analysis tool bundled with Xcode that provides templates for profiling CPU usage, memory allocations, energy impact, network activity, and more. The Time Profiler identifies which functions consume the most CPU time, while the Allocations instrument tracks memory usage and helps detect leaks and retain cycles. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/project-files@YytdlQl41yrHSwlV-G3Pd.md b/roadmaps/ios/content/project-files@YytdlQl41yrHSwlV-G3Pd.md index 888066b39..dfaebc766 100644 --- a/roadmaps/ios/content/project-files@YytdlQl41yrHSwlV-G3Pd.md +++ b/roadmaps/ios/content/project-files@YytdlQl41yrHSwlV-G3Pd.md @@ -1,6 +1,6 @@ # Project Files - -The Project Navigator organizes all files in an Xcode project, including Swift source files, assets, configuration files, and frameworks. Files are listed hierarchically and can be added, deleted, or reorganized within the navigator. The project file (*.xcodeproj) stores build settings, targets, and file references. + +The Project Navigator organizes all files in an Xcode project, including Swift source files, assets, configuration files, and frameworks. Files are listed hierarchically and can be added, deleted, or reorganized within the navigator. The project file (\*.xcodeproj) stores build settings, targets, and file references. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/pushing-presenting@gqd6zjxP_qFj4Ru-6LARo.md b/roadmaps/ios/content/pushing-presenting@gqd6zjxP_qFj4Ru-6LARo.md index a95e8c262..a170d3d49 100644 --- a/roadmaps/ios/content/pushing-presenting@gqd6zjxP_qFj4Ru-6LARo.md +++ b/roadmaps/ios/content/pushing-presenting@gqd6zjxP_qFj4Ru-6LARo.md @@ -1,5 +1,5 @@ # Pushing Presenting - + Pushing a view controller adds it to the navigation stack with a standard slide animation from the right. Presenting a view controller modally overlays it on the current screen, often as a sheet or full-screen cover. The choice between pushing and presenting depends on whether the new screen is part of the current flow or a separate, interruptive task. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/rest@3Qw-qmy5iAE61mPbIY4Q2.md b/roadmaps/ios/content/rest@3Qw-qmy5iAE61mPbIY4Q2.md index 7033abbd8..61162c0b5 100644 --- a/roadmaps/ios/content/rest@3Qw-qmy5iAE61mPbIY4Q2.md +++ b/roadmaps/ios/content/rest@3Qw-qmy5iAE61mPbIY4Q2.md @@ -1,5 +1,5 @@ # REST - + REST (Representational State Transfer) is an architectural style for networked APIs that uses standard HTTP methods like GET, POST, PUT, PATCH, and DELETE. iOS apps consume REST APIs by making URLSession or Alamofire requests and decoding JSON responses using Codable. REST is the most common API style in iOS app development. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/rxswift@0xwoWj9jek36p1AwU3WkK.md b/roadmaps/ios/content/rxswift@0xwoWj9jek36p1AwU3WkK.md index 0ac541693..89b81942b 100644 --- a/roadmaps/ios/content/rxswift@0xwoWj9jek36p1AwU3WkK.md +++ b/roadmaps/ios/content/rxswift@0xwoWj9jek36p1AwU3WkK.md @@ -1,5 +1,5 @@ # RxSwift - + RxSwift is the Swift implementation of the ReactiveX library, providing a comprehensive API for reactive programming. It introduces Observable sequences that emit items over time and a large set of operators for combining and transforming them. RxSwift was widely adopted in iOS development before Apple introduced Combine and remains in use in many codebases. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/schedulers@UqA01PT86_w_JzN6KZBku.md b/roadmaps/ios/content/schedulers@UqA01PT86_w_JzN6KZBku.md index df7bceb50..5a393b3eb 100644 --- a/roadmaps/ios/content/schedulers@UqA01PT86_w_JzN6KZBku.md +++ b/roadmaps/ios/content/schedulers@UqA01PT86_w_JzN6KZBku.md @@ -1,5 +1,5 @@ # Schedulers - + Schedulers in RxSwift control on which thread or queue Observable work executes. MainScheduler runs work on the main thread for UI updates, while ConcurrentDispatchQueueScheduler and SerialDispatchQueueScheduler run work on background queues. The observeOn and subscribeOn operators specify which scheduler handles observation and subscription respectively. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/serializing@8rYjSCgRiJMHTNxOU6vgG.md b/roadmaps/ios/content/serializing@8rYjSCgRiJMHTNxOU6vgG.md index a25cbcd4c..539c189d3 100644 --- a/roadmaps/ios/content/serializing@8rYjSCgRiJMHTNxOU6vgG.md +++ b/roadmaps/ios/content/serializing@8rYjSCgRiJMHTNxOU6vgG.md @@ -1,5 +1,5 @@ # Serializing - + Serializing converts Swift data structures into JSON or XML format for storage or network transmission. JSONEncoder turns Codable types into Data. Proper serialization handles date formats, custom key naming strategies, and optional values to produce valid output that the server or storage layer can interpret correctly. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/simple-ui-building@INYUFVZ-_4htveLZ6EvRu.md b/roadmaps/ios/content/simple-ui-building@INYUFVZ-_4htveLZ6EvRu.md index 0ed32c390..2adc9742d 100644 --- a/roadmaps/ios/content/simple-ui-building@INYUFVZ-_4htveLZ6EvRu.md +++ b/roadmaps/ios/content/simple-ui-building@INYUFVZ-_4htveLZ6EvRu.md @@ -1,3 +1,3 @@ # Simple UI Building - + Simple UI building in SwiftUI covers the fundamental skills for constructing working app screens. This includes composing layout containers, applying modifiers, connecting views to state, implementing navigation between screens, and adding animated transitions. \ No newline at end of file diff --git a/roadmaps/ios/content/sqlite@3qjQbrCUchJn1bJTBWrQF.md b/roadmaps/ios/content/sqlite@3qjQbrCUchJn1bJTBWrQF.md index 393b3450b..9febadd48 100644 --- a/roadmaps/ios/content/sqlite@3qjQbrCUchJn1bJTBWrQF.md +++ b/roadmaps/ios/content/sqlite@3qjQbrCUchJn1bJTBWrQF.md @@ -1,5 +1,5 @@ # SQLite - + SQLite is a lightweight, serverless relational database engine embedded in iOS. Apps can use SQLite directly through its C API or through higher-level Swift wrappers like GRDB or SQLite.swift. SQLite provides structured, queryable storage and serves as the underlying engine for Core Data and other data frameworks. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/state-management@RvyOkQelc-GChQGJyEx72.md b/roadmaps/ios/content/state-management@RvyOkQelc-GChQGJyEx72.md index 39b2347ee..3cbf9a099 100644 --- a/roadmaps/ios/content/state-management@RvyOkQelc-GChQGJyEx72.md +++ b/roadmaps/ios/content/state-management@RvyOkQelc-GChQGJyEx72.md @@ -1,5 +1,5 @@ # State Management - + State management in SwiftUI determines where data lives and how it flows through the view hierarchy. @State handles local view state, @StateObject owns an observable object, @ObservedObject observes an externally owned object, and @EnvironmentObject injects shared data across the hierarchy. Choosing the right property wrapper keeps the app's data flow predictable and organized. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/static-library@RuXuHQhMt2nywk43LgGeJ.md b/roadmaps/ios/content/static-library@RuXuHQhMt2nywk43LgGeJ.md index 4c49623fc..3ce03ecfc 100644 --- a/roadmaps/ios/content/static-library@RuXuHQhMt2nywk43LgGeJ.md +++ b/roadmaps/ios/content/static-library@RuXuHQhMt2nywk43LgGeJ.md @@ -1,5 +1,5 @@ # Static Library - + A static library is a compiled archive of object code that is copied directly into the app binary at link time. Static libraries increase binary size but have no runtime loading overhead. They are distributed as .a files and are commonly used to share compiled code between targets within the same Xcode project. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/stepping@hUHxlNa6iJJbDGdFNhynB.md b/roadmaps/ios/content/stepping@hUHxlNa6iJJbDGdFNhynB.md index b249ff6ea..b2b76c8fa 100644 --- a/roadmaps/ios/content/stepping@hUHxlNa6iJJbDGdFNhynB.md +++ b/roadmaps/ios/content/stepping@hUHxlNa6iJJbDGdFNhynB.md @@ -1,5 +1,5 @@ # Stepping - + Stepping controls in the Xcode debugger allow developers to move through code one statement at a time during a paused breakpoint session. Step Over executes the current line without descending into called functions, Step Into enters a called function, and Step Out completes the current function and returns to the caller. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/storyboards@a2CqrCJSxGfHq6_Y9f_re.md b/roadmaps/ios/content/storyboards@a2CqrCJSxGfHq6_Y9f_re.md index aa6b8ee85..563c823d7 100644 --- a/roadmaps/ios/content/storyboards@a2CqrCJSxGfHq6_Y9f_re.md +++ b/roadmaps/ios/content/storyboards@a2CqrCJSxGfHq6_Y9f_re.md @@ -1,5 +1,5 @@ # Storyboards - + Storyboards are XML-based files that define multiple view controllers and the transitions between them on a single visual canvas. Developers drag view controllers onto the canvas, design their views, and connect screens with segues. Storyboards give a visual overview of the app's entire navigation flow. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/subjects@1xYZdnlI6JSJzNvmz4-0v.md b/roadmaps/ios/content/subjects@1xYZdnlI6JSJzNvmz4-0v.md index 749eb5785..82a4f0f16 100644 --- a/roadmaps/ios/content/subjects@1xYZdnlI6JSJzNvmz4-0v.md +++ b/roadmaps/ios/content/subjects@1xYZdnlI6JSJzNvmz4-0v.md @@ -1,5 +1,5 @@ # Subjects - + Subjects in RxSwift act as both Observables and Observers, making them useful for bridging non-reactive code into reactive streams. PublishSubject emits only new items to subscribers; BehaviorSubject replays the last value to new subscribers; and ReplaySubject replays a configurable number of past values. Subjects are commonly used as input channels in MVVM ViewModels. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/swift-basics@fboebSmquyJyozsMRJDtK.md b/roadmaps/ios/content/swift-basics@fboebSmquyJyozsMRJDtK.md index f814ff914..9ea2e568e 100644 --- a/roadmaps/ios/content/swift-basics@fboebSmquyJyozsMRJDtK.md +++ b/roadmaps/ios/content/swift-basics@fboebSmquyJyozsMRJDtK.md @@ -1,5 +1,5 @@ # Swift Basics - + Swift basics cover the fundamental syntax and language features needed to write Swift programs. This includes variables, constants, data types, control flow, functions, closures, classes, structs, enums, and optionals. A solid understanding of these basics is required before working with iOS frameworks and APIs. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/swift-recommended@KJ7fM-V0_azY_lzmhjJAN.md b/roadmaps/ios/content/swift-recommended@KJ7fM-V0_azY_lzmhjJAN.md index c7ffc0382..bde0739d1 100644 --- a/roadmaps/ios/content/swift-recommended@KJ7fM-V0_azY_lzmhjJAN.md +++ b/roadmaps/ios/content/swift-recommended@KJ7fM-V0_azY_lzmhjJAN.md @@ -1,10 +1,10 @@ # Swift (Recommended) - + Swift is Apple's modern, statically typed programming language for iOS, macOS, watchOS, and tvOS development. Introduced in 2014, it has become the recommended choice for new iOS projects. Swift features a clean syntax, strong type inference, optionals for safe null handling, and built-in concurrency support through async/await. Visit the following resources to learn more: - [@roadmap@Visit the Dedicated Swift & Swift UI Roadmap](https://roadmap.sh/swift-ui) -- [@official@Swift Documentation](https://www.swift.org/documentation/) - [@course@Programiz - Swift Programming Tutorials](https://www.programiz.com/swift-programming) -- [@course@HackingWithSwift - 100 Days of Swift](https://www.hackingwithswift.com/100) \ No newline at end of file +- [@course@HackingWithSwift - 100 Days of Swift](https://www.hackingwithswift.com/100) +- [@official@Swift Documentation](https://www.swift.org/documentation/) \ No newline at end of file diff --git a/roadmaps/ios/content/swiftformat@TMFvfwG45Z00PzrzZIVhT.md b/roadmaps/ios/content/swiftformat@TMFvfwG45Z00PzrzZIVhT.md index 57cdca470..6fd61630d 100644 --- a/roadmaps/ios/content/swiftformat@TMFvfwG45Z00PzrzZIVhT.md +++ b/roadmaps/ios/content/swiftformat@TMFvfwG45Z00PzrzZIVhT.md @@ -1,5 +1,5 @@ # SwiftFormat - + SwiftFormat is a command-line tool that automatically reformats Swift source code to follow consistent style rules. Unlike SwiftLint, which reports violations, SwiftFormat directly edits source files. It handles formatting rules like indentation, blank lines, trailing commas, and bracket placement. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/swiftui@PvFp6aY7EUrYHn87RZAGj.md b/roadmaps/ios/content/swiftui@PvFp6aY7EUrYHn87RZAGj.md index ea8d97109..e0dcab595 100644 --- a/roadmaps/ios/content/swiftui@PvFp6aY7EUrYHn87RZAGj.md +++ b/roadmaps/ios/content/swiftui@PvFp6aY7EUrYHn87RZAGj.md @@ -1,5 +1,5 @@ # SwiftUI - + SwiftUI is Apple's declarative UI framework for building apps across iOS, macOS, watchOS, and tvOS. Introduced in 2019, it replaces UIKit's imperative approach with composable views written entirely in Swift. SwiftUI automatically handles layout, animations, and UI updates when the underlying data changes. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/swiftui@kAIKsDcDzwI1E0wSnC_uo.md b/roadmaps/ios/content/swiftui@kAIKsDcDzwI1E0wSnC_uo.md index c46bcf472..043da0c5c 100644 --- a/roadmaps/ios/content/swiftui@kAIKsDcDzwI1E0wSnC_uo.md +++ b/roadmaps/ios/content/swiftui@kAIKsDcDzwI1E0wSnC_uo.md @@ -1,5 +1,5 @@ # SwiftUI - + SwiftUI is Apple's declarative UI framework for building apps across iOS, macOS, watchOS, and tvOS. Introduced in 2019, it replaces UIKit's imperative approach with composable views written entirely in Swift. SwiftUI automatically handles layout, animations, and UI updates when the underlying data changes. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/tailor@F5796wzm5Ar6sQt-1y8vH.md b/roadmaps/ios/content/tailor@F5796wzm5Ar6sQt-1y8vH.md index f93d85219..16d4493f6 100644 --- a/roadmaps/ios/content/tailor@F5796wzm5Ar6sQt-1y8vH.md +++ b/roadmaps/ios/content/tailor@F5796wzm5Ar6sQt-1y8vH.md @@ -1,5 +1,5 @@ # Tailor - + Tailor is a static analysis tool for Swift that checks code style and detects common issues. It is configurable and integrates with Xcode and CI pipelines. Tailor is an alternative to SwiftLint for teams that prefer a different rule set or configuration model. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/tca@NhC0SBZgUFGjMLNICvbTI.md b/roadmaps/ios/content/tca@NhC0SBZgUFGjMLNICvbTI.md index 6df5e1327..d2b8e524a 100644 --- a/roadmaps/ios/content/tca@NhC0SBZgUFGjMLNICvbTI.md +++ b/roadmaps/ios/content/tca@NhC0SBZgUFGjMLNICvbTI.md @@ -1,5 +1,5 @@ # TCA - + The Composable Architecture (TCA) is an opinionated architecture library for Swift developed by Point-Free. It organizes app logic around unidirectional data flow with state, actions, reducers, and effects. TCA emphasizes testability and composability, allowing large app features to be built from smaller, independently testable pieces. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/test-plan--coverage@uczkyc30K_qqcarZCGTdF.md b/roadmaps/ios/content/test-plan--coverage@uczkyc30K_qqcarZCGTdF.md index ff28bba6e..05e8824cd 100644 --- a/roadmaps/ios/content/test-plan--coverage@uczkyc30K_qqcarZCGTdF.md +++ b/roadmaps/ios/content/test-plan--coverage@uczkyc30K_qqcarZCGTdF.md @@ -1,3 +1,3 @@ # Test Plan & Coverage - + Test plans in Xcode define how tests are executed, including which test targets to include, environment variables, and configurations for multiple runs with different settings. Code coverage reports show which lines of code are exercised by tests, helping identify gaps. Test plans make it straightforward to run specific subsets of tests in CI and local development. \ No newline at end of file diff --git a/roadmaps/ios/content/testflight@KCJgCjMJGxIcf13XSEclO.md b/roadmaps/ios/content/testflight@KCJgCjMJGxIcf13XSEclO.md index d45fa1e35..ed9055ac9 100644 --- a/roadmaps/ios/content/testflight@KCJgCjMJGxIcf13XSEclO.md +++ b/roadmaps/ios/content/testflight@KCJgCjMJGxIcf13XSEclO.md @@ -1,5 +1,5 @@ # TestFlight - + TestFlight is Apple's platform for distributing beta versions of iOS apps to testers before public release. Internal testers with access to the developer's App Store Connect account can be added directly, while external testers receive email invitations. TestFlight builds expire after 90 days and can be shared with up to 10,000 external testers. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/toolbar@AxQ5gCjk136kXsbBFTUNp.md b/roadmaps/ios/content/toolbar@AxQ5gCjk136kXsbBFTUNp.md index efc42bece..2e40490c0 100644 --- a/roadmaps/ios/content/toolbar@AxQ5gCjk136kXsbBFTUNp.md +++ b/roadmaps/ios/content/toolbar@AxQ5gCjk136kXsbBFTUNp.md @@ -1,3 +1,3 @@ # Toolbar - + The Xcode toolbar provides quick access to common actions, including running and stopping the app, selecting a target device or simulator, and showing or hiding the navigator and inspector panels. It also displays build activity messages and scheme selection controls. \ No newline at end of file diff --git a/roadmaps/ios/content/ui-design@4fPgpGwNXmVoZoruBRb_B.md b/roadmaps/ios/content/ui-design@4fPgpGwNXmVoZoruBRb_B.md index 41858afed..d809c7daa 100644 --- a/roadmaps/ios/content/ui-design@4fPgpGwNXmVoZoruBRb_B.md +++ b/roadmaps/ios/content/ui-design@4fPgpGwNXmVoZoruBRb_B.md @@ -1,5 +1,5 @@ # UI Design - + UI design for iOS focuses on how apps should look and behave to feel native and intuitive on Apple platforms. The primary reference is Apple's Human Interface Guidelines (HIG), which provides principles and specific guidance on navigation patterns, controls, typography, color, and accessibility. Applying these principles leads to apps that feel familiar and polished to iOS users. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/uikit@-7OW2IgiMk1eot1PaYd7m.md b/roadmaps/ios/content/uikit@-7OW2IgiMk1eot1PaYd7m.md index 6a6ac8ffc..9a1cf65f6 100644 --- a/roadmaps/ios/content/uikit@-7OW2IgiMk1eot1PaYd7m.md +++ b/roadmaps/ios/content/uikit@-7OW2IgiMk1eot1PaYd7m.md @@ -1,5 +1,5 @@ # UIKit - + UIKit is Apple's foundational framework for building iOS and tvOS user interfaces. It provides the core building blocks including views, view controllers, navigation controllers, table views, and gesture recognizers. UIKit uses an imperative, event-driven model and has been the basis of iOS development since the first iPhone SDK. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/uikit@pNEE5C1E1wAjH_nTlzH6N.md b/roadmaps/ios/content/uikit@pNEE5C1E1wAjH_nTlzH6N.md index 61371ddb2..91de2c1da 100644 --- a/roadmaps/ios/content/uikit@pNEE5C1E1wAjH_nTlzH6N.md +++ b/roadmaps/ios/content/uikit@pNEE5C1E1wAjH_nTlzH6N.md @@ -1,3 +1,3 @@ # UIKit - + UIKit is Apple's foundational framework for building iOS and tvOS user interfaces. It provides the core building blocks including views, view controllers, navigation controllers, table views, and gesture recognizers. UIKit uses an imperative, event-driven model and has been the basis of iOS development since the first iPhone SDK. \ No newline at end of file diff --git a/roadmaps/ios/content/understanding-and-using-closures@5V7nxQKmmHWSMSBCRxkaF.md b/roadmaps/ios/content/understanding-and-using-closures@5V7nxQKmmHWSMSBCRxkaF.md index 5f4e5fa52..f47278c77 100644 --- a/roadmaps/ios/content/understanding-and-using-closures@5V7nxQKmmHWSMSBCRxkaF.md +++ b/roadmaps/ios/content/understanding-and-using-closures@5V7nxQKmmHWSMSBCRxkaF.md @@ -1,5 +1,5 @@ # Understanding and using Closures - + Understanding closures involves knowing their syntax, how they capture surrounding values, and how to use them as function parameters and return values. Swift offers shorthand argument names and trailing closure syntax to keep closure usage concise. Closures appear throughout the Swift standard library and iOS SDK as the primary mechanism for passing behavior between components. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/unit--ui-testing@5589B1DKaCd-9l9DfKH3o.md b/roadmaps/ios/content/unit--ui-testing@5589B1DKaCd-9l9DfKH3o.md index ca378646d..8ddbedaeb 100644 --- a/roadmaps/ios/content/unit--ui-testing@5589B1DKaCd-9l9DfKH3o.md +++ b/roadmaps/ios/content/unit--ui-testing@5589B1DKaCd-9l9DfKH3o.md @@ -1,3 +1,3 @@ # Unit & UI Testing - + iOS apps are tested at two levels: unit tests verify individual functions and classes in isolation, and UI tests verify app behavior from the user's perspective. XCTest is the framework for both. Unit tests run on the local machine and are fast; UI tests launch the full app on a device or simulator and simulate real user interactions. \ No newline at end of file diff --git a/roadmaps/ios/content/urlsession@WPJACNeI6jX9GGB1roeTp.md b/roadmaps/ios/content/urlsession@WPJACNeI6jX9GGB1roeTp.md index e0a9f1b12..7d3a8b32c 100644 --- a/roadmaps/ios/content/urlsession@WPJACNeI6jX9GGB1roeTp.md +++ b/roadmaps/ios/content/urlsession@WPJACNeI6jX9GGB1roeTp.md @@ -1,5 +1,5 @@ # URLSession - + URLSession is Apple's built-in networking API for making HTTP and HTTPS requests. It supports data tasks for simple requests, download and upload tasks for large transfers, and background sessions that continue after the app is suspended. URLSession integrates with async/await in Swift, allowing network calls to be written as sequential async functions. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/user-defaults@ImS1FqVicQImMw-y1ze7y.md b/roadmaps/ios/content/user-defaults@ImS1FqVicQImMw-y1ze7y.md index 2e2c364aa..4b07959d4 100644 --- a/roadmaps/ios/content/user-defaults@ImS1FqVicQImMw-y1ze7y.md +++ b/roadmaps/ios/content/user-defaults@ImS1FqVicQImMw-y1ze7y.md @@ -1,5 +1,5 @@ # User Defaults - + User Defaults is a simple key-value store for persisting lightweight user preferences and settings across app launches. It stores basic types like strings, numbers, booleans, and dates in a plist file. User Defaults is not suitable for sensitive or large data and is intended only for small configuration values. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/version-control@sGnDm2xuJxqfU3pwmlY7H.md b/roadmaps/ios/content/version-control@sGnDm2xuJxqfU3pwmlY7H.md index 4c4c58740..c209dd920 100644 --- a/roadmaps/ios/content/version-control@sGnDm2xuJxqfU3pwmlY7H.md +++ b/roadmaps/ios/content/version-control@sGnDm2xuJxqfU3pwmlY7H.md @@ -1,5 +1,5 @@ # Version Control - + Version control enables developers to track changes to code over time and collaborate with others. Git is the standard version control tool for iOS projects, and GitHub is the most common hosting platform for iOS team repositories and open-source libraries. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/view-controllers@mfWdkUm1RhjygtMyInXiD.md b/roadmaps/ios/content/view-controllers@mfWdkUm1RhjygtMyInXiD.md index 4b989f2cf..501e56cce 100644 --- a/roadmaps/ios/content/view-controllers@mfWdkUm1RhjygtMyInXiD.md +++ b/roadmaps/ios/content/view-controllers@mfWdkUm1RhjygtMyInXiD.md @@ -1,5 +1,5 @@ # View Controllers - + A UIViewController manages a single screen of content in a UIKit app. It owns a root view, handles the lifecycle events for that view, and coordinates between the model layer and the UI. View controllers are the primary structural unit in UIKit apps and the main place for screen-level logic. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/view-transitions@2tmR1yE5daz2HB4IV5qwI.md b/roadmaps/ios/content/view-transitions@2tmR1yE5daz2HB4IV5qwI.md index 813b43a8c..41efd39ab 100644 --- a/roadmaps/ios/content/view-transitions@2tmR1yE5daz2HB4IV5qwI.md +++ b/roadmaps/ios/content/view-transitions@2tmR1yE5daz2HB4IV5qwI.md @@ -1,5 +1,5 @@ # View Transitions - + View transitions in SwiftUI animate changes in the view hierarchy when views appear or disappear. The transition modifier specifies how a view enters and exits the screen using effects like slide, opacity, scale, and move. Combined with animation, transitions make state changes and navigation feel smooth and polished. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/view-transitions@cwVcNDTBBulBY2m4Wzn4G.md b/roadmaps/ios/content/view-transitions@cwVcNDTBBulBY2m4Wzn4G.md index 2419a5474..20166bcdb 100644 --- a/roadmaps/ios/content/view-transitions@cwVcNDTBBulBY2m4Wzn4G.md +++ b/roadmaps/ios/content/view-transitions@cwVcNDTBBulBY2m4Wzn4G.md @@ -1,5 +1,5 @@ # View Transitions - + View transitions control how the app animates when moving between screens. UIKit provides built-in transition styles like push and modal presentation, and custom transitions are created using the UIViewControllerAnimatedTransitioning protocol. Transitions provide visual continuity that helps users understand where they are in the app. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/views-and-modifiers@mgUCYztUpKINqIZikT4Bh.md b/roadmaps/ios/content/views-and-modifiers@mgUCYztUpKINqIZikT4Bh.md index 6b80aad3d..8c4f6917b 100644 --- a/roadmaps/ios/content/views-and-modifiers@mgUCYztUpKINqIZikT4Bh.md +++ b/roadmaps/ios/content/views-and-modifiers@mgUCYztUpKINqIZikT4Bh.md @@ -1,5 +1,5 @@ # Views and Modifiers - + SwiftUI views are lightweight structs that describe a piece of UI. Modifiers are methods called on views that return a new, modified version, allowing chaining. Common modifiers include padding, frame, background, foregroundStyle, and font. Building layouts by composing views and chaining modifiers is the primary pattern in SwiftUI development. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/views-view-controllers@XX5rCd_yTHvOfYif4Kpbl.md b/roadmaps/ios/content/views-view-controllers@XX5rCd_yTHvOfYif4Kpbl.md index 0e26ee4a6..f31b94c1a 100644 --- a/roadmaps/ios/content/views-view-controllers@XX5rCd_yTHvOfYif4Kpbl.md +++ b/roadmaps/ios/content/views-view-controllers@XX5rCd_yTHvOfYif4Kpbl.md @@ -1,5 +1,5 @@ # Views, View Controllers - + Views and view controllers are the two primary building blocks of UIKit's architecture. Views are responsible for displaying content and receiving touch input, while view controllers manage a screen's lifecycle and coordinate between views and data. Every visible screen in a UIKit app is managed by at least one view controller with an associated view hierarchy. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/viper@mTdnDPGYSDupM9VBNdXRg.md b/roadmaps/ios/content/viper@mTdnDPGYSDupM9VBNdXRg.md index 5d37ae875..cc8998522 100644 --- a/roadmaps/ios/content/viper@mTdnDPGYSDupM9VBNdXRg.md +++ b/roadmaps/ios/content/viper@mTdnDPGYSDupM9VBNdXRg.md @@ -1,5 +1,5 @@ # VIPER - + VIPER is an architectural pattern that divides app code into five distinct components: View, Interactor, Presenter, Entity, and Router. Each component has a single, clearly defined responsibility, making the codebase highly modular and testable. VIPER is commonly used in large iOS projects where strict separation of concerns is a priority. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/voice-over@trAMZVA4tDB7b_qAgiWNW.md b/roadmaps/ios/content/voice-over@trAMZVA4tDB7b_qAgiWNW.md index 1e1195da6..91913a840 100644 --- a/roadmaps/ios/content/voice-over@trAMZVA4tDB7b_qAgiWNW.md +++ b/roadmaps/ios/content/voice-over@trAMZVA4tDB7b_qAgiWNW.md @@ -1,5 +1,5 @@ # Voice Over - + VoiceOver is iOS's built-in screen reader that allows users who are blind or have low vision to navigate and interact with apps using gestures and spoken audio feedback. Apps support VoiceOver by providing accessibility labels, traits, and hints on UI elements. Testing with VoiceOver enabled is essential for verifying an accessible user experience. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/xcframework@MaHtZSIPxDzrnB33_9OdV.md b/roadmaps/ios/content/xcframework@MaHtZSIPxDzrnB33_9OdV.md index a89ec25c3..eaa146f94 100644 --- a/roadmaps/ios/content/xcframework@MaHtZSIPxDzrnB33_9OdV.md +++ b/roadmaps/ios/content/xcframework@MaHtZSIPxDzrnB33_9OdV.md @@ -1,5 +1,5 @@ # XCFramework - + An XCFramework is a distributable binary format that bundles frameworks for multiple platforms and architectures in a single package. It supports iOS devices, iOS Simulator, macOS, and other Apple platforms simultaneously. XCFrameworks are the recommended format for distributing precompiled iOS libraries and SDKs. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/xcode-debugger@WxshXCloVDkVkQV0JvI1w.md b/roadmaps/ios/content/xcode-debugger@WxshXCloVDkVkQV0JvI1w.md index 5d6ae0320..e5fb33175 100644 --- a/roadmaps/ios/content/xcode-debugger@WxshXCloVDkVkQV0JvI1w.md +++ b/roadmaps/ios/content/xcode-debugger@WxshXCloVDkVkQV0JvI1w.md @@ -1,5 +1,5 @@ # Xcode Debugger - + The Xcode debugger allows developers to pause execution at breakpoints, inspect variable values, evaluate expressions using LLDB commands in the console, and step through code line by line. The debug area displays the current thread, call stack, and local variable state during a paused session. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/xctest@xZmBJVq5FHNdm1BDuZbbS.md b/roadmaps/ios/content/xctest@xZmBJVq5FHNdm1BDuZbbS.md index 3b9388b26..3f594b1f0 100644 --- a/roadmaps/ios/content/xctest@xZmBJVq5FHNdm1BDuZbbS.md +++ b/roadmaps/ios/content/xctest@xZmBJVq5FHNdm1BDuZbbS.md @@ -1,5 +1,5 @@ # XCTest - + XCTest is Apple's framework for writing unit tests in Swift and Objective-C. Tests are organized into subclasses of XCTestCase, and individual test methods begin with "test". XCTest integrates with Xcode's Test Navigator for running tests, viewing results, and measuring code coverage against the app's source. Visit the following resources to learn more: diff --git a/roadmaps/ios/content/xcuitest@ZQSUKPbXZl5yKra2ap8JR.md b/roadmaps/ios/content/xcuitest@ZQSUKPbXZl5yKra2ap8JR.md index 7e3caa3d7..f165d1987 100644 --- a/roadmaps/ios/content/xcuitest@ZQSUKPbXZl5yKra2ap8JR.md +++ b/roadmaps/ios/content/xcuitest@ZQSUKPbXZl5yKra2ap8JR.md @@ -1,5 +1,5 @@ # XCUITest - + XCUITest is the UI testing component of XCTest that automates user interactions with a running iOS app. Tests launch the app, query elements by accessibility identifier or type, perform actions like tap, swipe, and type, and assert on UI state. XCUITest runs on a simulator or physical device and is slower than unit tests due to the app launch and interaction overhead. Visit the following resources to learn more: