diff --git a/public/pdfs/roadmaps/ios.pdf b/public/pdfs/roadmaps/ios.pdf new file mode 100644 index 000000000000..83fc5ec82009 Binary files /dev/null and b/public/pdfs/roadmaps/ios.pdf differ diff --git a/public/roadmaps/ios.png b/public/roadmaps/ios.png new file mode 100644 index 000000000000..9a68ace9f28e Binary files /dev/null and b/public/roadmaps/ios.png differ diff --git a/readme.md b/readme.md index 97167df9211a..17834d1bf200 100644 --- a/readme.md +++ b/readme.md @@ -59,6 +59,7 @@ Here is the list of available roadmaps with more being actively worked upon. - [Node.js Roadmap](https://roadmap.sh/nodejs) - [GraphQL Roadmap](https://roadmap.sh/graphql) - [Android Roadmap](https://roadmap.sh/android) +- [iOS Roadmap](https://roadmap.sh/ios) - [Flutter Roadmap](https://roadmap.sh/flutter) - [Go Roadmap](https://roadmap.sh/golang) - [Rust Roadmap](https://roadmap.sh/rust) @@ -91,6 +92,7 @@ There are also interactive best practices: - [JavaScript Questions](https://roadmap.sh/questions/javascript) - [Node.js Questions](https://roadmap.sh/questions/nodejs) - [React Questions](https://roadmap.sh/questions/react) +- [Backend Questions](https://roadmap.sh/questions/backend) ![](https://i.imgur.com/waxVImv.png) diff --git a/src/components/EditorRoadmap/EditorRoadmapRenderer.tsx b/src/components/EditorRoadmap/EditorRoadmapRenderer.tsx index b964b231909e..c2e83d64c413 100644 --- a/src/components/EditorRoadmap/EditorRoadmapRenderer.tsx +++ b/src/components/EditorRoadmap/EditorRoadmapRenderer.tsx @@ -12,6 +12,8 @@ import { useToast } from '../../hooks/use-toast'; import type { Edge, Node } from 'reactflow'; import { Renderer } from '../../../editor/renderer'; import { slugify } from '../../lib/slugger'; +import { isLoggedIn } from '../../lib/jwt'; +import { showLoginPopup } from '../../lib/popup'; export type RoadmapRendererProps = { resourceId: string; @@ -104,6 +106,11 @@ export function EditorRoadmapRenderer(props: RoadmapRendererProps) { if (e.shiftKey) { e.preventDefault(); + if (!isLoggedIn()) { + showLoginPopup(); + return; + } + updateTopicStatus( nodeId, isCurrentStatusLearning ? 'pending' : 'learning', @@ -111,6 +118,11 @@ export function EditorRoadmapRenderer(props: RoadmapRendererProps) { return; } else if (e.altKey) { e.preventDefault(); + if (!isLoggedIn()) { + showLoginPopup(); + return; + } + updateTopicStatus(nodeId, isCurrentStatusSkipped ? 'pending' : 'skipped'); return; } @@ -143,6 +155,10 @@ export function EditorRoadmapRenderer(props: RoadmapRendererProps) { return; } + if (!isLoggedIn()) { + showLoginPopup(); + return; + } const isCurrentStatusDone = targetGroup?.classList.contains('done'); updateTopicStatus(nodeId, isCurrentStatusDone ? 'pending' : 'done'); }, []); diff --git a/src/components/GenerateRoadmap/GenerateRoadmap.tsx b/src/components/GenerateRoadmap/GenerateRoadmap.tsx index 74e49a28797e..ccb2cf16f410 100644 --- a/src/components/GenerateRoadmap/GenerateRoadmap.tsx +++ b/src/components/GenerateRoadmap/GenerateRoadmap.tsx @@ -25,20 +25,14 @@ import { Ban, Cog, Download, PenSquare, Save, Wand } from 'lucide-react'; import { ShareRoadmapButton } from '../ShareRoadmapButton.tsx'; import { httpGet, httpPost } from '../../lib/http.ts'; import { pageProgressMessage } from '../../stores/page.ts'; -import { - deleteUrlParam, - getUrlParams, - setUrlParams, -} from '../../lib/browser.ts'; +import { deleteUrlParam, getUrlParams } from '../../lib/browser.ts'; import { downloadGeneratedRoadmapImage } from '../../helper/download-image.ts'; import { showLoginPopup } from '../../lib/popup.ts'; import { cn } from '../../lib/classname.ts'; import { RoadmapTopicDetail } from './RoadmapTopicDetail.tsx'; import { AIRoadmapAlert } from './AIRoadmapAlert.tsx'; -import { OpenAISettings } from './OpenAISettings.tsx'; import { IS_KEY_ONLY_ROADMAP_GENERATION } from '../../lib/ai.ts'; import { AITermSuggestionInput } from './AITermSuggestionInput.tsx'; -import { useParams } from '../../hooks/use-params.ts'; import { IncreaseRoadmapLimit } from './IncreaseRoadmapLimit.tsx'; import { AuthenticationForm } from '../AuthenticationFlow/AuthenticationForm.tsx'; diff --git a/src/components/GenerateRoadmap/RoadmapSearch.tsx b/src/components/GenerateRoadmap/RoadmapSearch.tsx index 5043b7d4d733..e34dd45eb985 100644 --- a/src/components/GenerateRoadmap/RoadmapSearch.tsx +++ b/src/components/GenerateRoadmap/RoadmapSearch.tsx @@ -42,7 +42,7 @@ export function RoadmapSearch(props: RoadmapSearchProps) { setIsAuthenticatedUser(isLoggedIn()); }, []); - const randomTerms = ['OAuth', 'APIs', 'UX Design', 'gRPC']; + const randomTerms = ['OAuth', 'UI / UX', 'SRE', 'DevRel']; return (
diff --git a/src/components/Navigation/Navigation.astro b/src/components/Navigation/Navigation.astro index 9fb2e524a548..7660b80fa65a 100644 --- a/src/components/Navigation/Navigation.astro +++ b/src/components/Navigation/Navigation.astro @@ -17,10 +17,10 @@ import { AccountDropdown } from './AccountDropdown'; - AI Roadmaps  + Teams diff --git a/src/components/OnboardingNudge.tsx b/src/components/OnboardingNudge.tsx index 734118804ca9..0ddad202ec07 100644 --- a/src/components/OnboardingNudge.tsx +++ b/src/components/OnboardingNudge.tsx @@ -33,7 +33,7 @@ export function OnboardingNudge(props: OnboardingNudgeProps) { return (
([]); @@ -177,6 +178,9 @@ export function TopicDetail(props: TopicDetailProps) { const titleElem: HTMLElement = topicDom.querySelector('h1')!; + const otherElems = topicDom.querySelectorAll('body > *:not(h1, div)'); + + setHasContent(otherElems.length > 0); setContributionUrl(contributionUrl); setHasEnoughLinks(links.length >= 3); setTopicHtmlTitle(titleElem?.textContent || ''); @@ -187,6 +191,8 @@ export function TopicDetail(props: TopicDetailProps) { const sanitizedMarkdown = sanitizeMarkdown( (response as RoadmapContentDocument).description || '', ); + + setHasContent(sanitizedMarkdown?.length > 0); topicHtml = markdownToHtml(sanitizedMarkdown, false); } @@ -207,7 +213,6 @@ export function TopicDetail(props: TopicDetailProps) { return null; } - const hasContent = topicHtml?.length > 0 || links?.length > 0 || topicTitle; const resourceTitleForSearch = resourceTitle ?.toLowerCase() ?.replace(/\s+?roadmap/gi, ''); @@ -225,7 +230,7 @@ export function TopicDetail(props: TopicDetailProps) { className="fixed right-0 top-0 z-40 flex h-screen w-full flex-col overflow-y-auto bg-white p-4 focus:outline-0 sm:max-w-[600px] sm:p-6" > {isLoading && ( -
+
{!isEmbed && ( { @@ -265,20 +274,48 @@ export function TopicDetail(props: TopicDetailProps) { {/* Topic Content */} {hasContent ? ( -
- {topicTitle &&

{topicTitle}

} -
-
+ <> +
+ {topicTitle &&

{topicTitle}

} +
+
+ ) : ( -
- -

- Empty Content -

-
+ <> + {!canSubmitContribution && ( +
+ +

+ Empty Content +

+
+ )} + {canSubmitContribution && ( +
+ )} + )} {links.length > 0 && ( @@ -313,8 +350,7 @@ export function TopicDetail(props: TopicDetailProps) {

- Can't find what you're looking for? Try these pre-filled - search queries: + Find more resources using these pre-filled search queries:

{ if (progress === 'learning') { - onClose(); return; } @@ -138,7 +137,9 @@ export function TopicProgressButton(props: TopicProgressButtonProps) { ) .then(() => { setProgress(progress); - onClose(); + if (progress !== 'learning') { + onClose(); + } renderTopicProgress(topicId, progress); refreshProgressCounters(); }) diff --git a/src/data/roadmaps/angular/content/102-angular-basics/101-angular-components.md b/src/data/roadmaps/angular/content/102-angular-basics/101-angular-components.md index 658e39b7d555..a05c3d6848ff 100644 --- a/src/data/roadmaps/angular/content/102-angular-basics/101-angular-components.md +++ b/src/data/roadmaps/angular/content/102-angular-basics/101-angular-components.md @@ -10,4 +10,6 @@ Components are the main building block for Angular applications. Each component Visit the following resources to learn more: - [Angular Components Overview](https://angular.io/guide/component-overview) +- [Anatomy of a component](https://angular.dev/guide/components) +- [Composing with Components in Angular](https://angular.dev/essentials/components) - [Standalone Components in Angular](https://www.youtube.com/watch?v=x5PZwb4XurU) diff --git a/src/data/roadmaps/angular/content/104-templates/102-template-statements.md b/src/data/roadmaps/angular/content/104-templates/102-template-statements.md index 7ce46702ac22..a35074a59def 100644 --- a/src/data/roadmaps/angular/content/104-templates/102-template-statements.md +++ b/src/data/roadmaps/angular/content/104-templates/102-template-statements.md @@ -5,3 +5,4 @@ Template statements are methods or properties that you can use in your HTML to r Visit the following resources to learn more: - [Angular Official Website](https://angular.io/guide/template-statements) +- [Understanding Template Statements](https://angular.dev/guide/templates/template-statements#) diff --git a/src/data/roadmaps/golang/content/101-go-advanced/112-pointers.md b/src/data/roadmaps/golang/content/101-go-advanced/112-pointers.md index 378508434e94..f195a4bf3eca 100644 --- a/src/data/roadmaps/golang/content/101-go-advanced/112-pointers.md +++ b/src/data/roadmaps/golang/content/101-go-advanced/112-pointers.md @@ -1,3 +1,9 @@ # Go Pointers -Go pointers are a powerful feature that allows you to work with memory addresses directly. They are used to store the memory address of a variable. This can be useful when you need to pass a large amount of data to a function or when you need to modify the value of a variable inside a function. \ No newline at end of file +Go pointers are a powerful feature that allows you to work with memory addresses directly. They are used to store the memory address of a variable. This can be useful when you need to pass a large amount of data to a function or when you need to modify the value of a variable inside a function. + +Visit the following resources to learn more: + +- [Pointers](https://go.dev/tour/moretypes/1) +- [Go by Example: Pointers](https://gobyexample.com/pointers) +- [YouTube: Pointers](https://www.youtube.com/watch?v=a4HcEsJ1hIE) diff --git a/src/data/roadmaps/ios/content/accessibility-inspector@h34LaYQ3JYN2AZPMDqpmO.md b/src/data/roadmaps/ios/content/accessibility-inspector@h34LaYQ3JYN2AZPMDqpmO.md new file mode 100644 index 000000000000..a0bbf32ea0ea --- /dev/null +++ b/src/data/roadmaps/ios/content/accessibility-inspector@h34LaYQ3JYN2AZPMDqpmO.md @@ -0,0 +1 @@ +# Accessibility Inspector \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/accessibility@1DZYPqvgY6GtwMCS7N2y-.md b/src/data/roadmaps/ios/content/accessibility@1DZYPqvgY6GtwMCS7N2y-.md new file mode 100644 index 000000000000..55ffef6e32f5 --- /dev/null +++ b/src/data/roadmaps/ios/content/accessibility@1DZYPqvgY6GtwMCS7N2y-.md @@ -0,0 +1 @@ +# Accessibility \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/alamofire@nJeBisdKtN43ntkXnPCVF.md b/src/data/roadmaps/ios/content/alamofire@nJeBisdKtN43ntkXnPCVF.md new file mode 100644 index 000000000000..7b7daf337989 --- /dev/null +++ b/src/data/roadmaps/ios/content/alamofire@nJeBisdKtN43ntkXnPCVF.md @@ -0,0 +1 @@ +# Alamofire \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/app-store-distribution@iZAXQKLe2LaIIifVFtFOL.md b/src/data/roadmaps/ios/content/app-store-distribution@iZAXQKLe2LaIIifVFtFOL.md new file mode 100644 index 000000000000..7e2b196119ce --- /dev/null +++ b/src/data/roadmaps/ios/content/app-store-distribution@iZAXQKLe2LaIIifVFtFOL.md @@ -0,0 +1 @@ +# App Store Distribution \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/app-store-optimization-aso@jZpH-T2hW-XBdprVqemGi.md b/src/data/roadmaps/ios/content/app-store-optimization-aso@jZpH-T2hW-XBdprVqemGi.md new file mode 100644 index 000000000000..2337bacbd31b --- /dev/null +++ b/src/data/roadmaps/ios/content/app-store-optimization-aso@jZpH-T2hW-XBdprVqemGi.md @@ -0,0 +1 @@ +# App Store Optimization (ASO) \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/architectural-patterns@ajPGMwoaFb1UFWTtpi5kd.md b/src/data/roadmaps/ios/content/architectural-patterns@ajPGMwoaFb1UFWTtpi5kd.md new file mode 100644 index 000000000000..2818f5f705af --- /dev/null +++ b/src/data/roadmaps/ios/content/architectural-patterns@ajPGMwoaFb1UFWTtpi5kd.md @@ -0,0 +1 @@ +# Architectural Patterns \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/arkit@k3uHcF0CsyHr6PK95UwR1.md b/src/data/roadmaps/ios/content/arkit@k3uHcF0CsyHr6PK95UwR1.md new file mode 100644 index 000000000000..bcbf8bd31525 --- /dev/null +++ b/src/data/roadmaps/ios/content/arkit@k3uHcF0CsyHr6PK95UwR1.md @@ -0,0 +1 @@ +# ARKit \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/async--await-in-swift@3GtrUXvLgvXK3G8cXRb-P.md b/src/data/roadmaps/ios/content/async--await-in-swift@3GtrUXvLgvXK3G8cXRb-P.md new file mode 100644 index 000000000000..4e051f816d4a --- /dev/null +++ b/src/data/roadmaps/ios/content/async--await-in-swift@3GtrUXvLgvXK3G8cXRb-P.md @@ -0,0 +1 @@ +# async / await in Swift \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/async--await@ysaBCl_TtWqelirptQp7P.md b/src/data/roadmaps/ios/content/async--await@ysaBCl_TtWqelirptQp7P.md new file mode 100644 index 000000000000..0979fdd0cd84 --- /dev/null +++ b/src/data/roadmaps/ios/content/async--await@ysaBCl_TtWqelirptQp7P.md @@ -0,0 +1 @@ +# Async / Await \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/auto-layout@j2BL0sf3WjnJZZWa7cCjy.md b/src/data/roadmaps/ios/content/auto-layout@j2BL0sf3WjnJZZWa7cCjy.md new file mode 100644 index 000000000000..bfe63c9ad2af --- /dev/null +++ b/src/data/roadmaps/ios/content/auto-layout@j2BL0sf3WjnJZZWa7cCjy.md @@ -0,0 +1 @@ +# Auto layout \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/av-foundation@UKgiSQvR9cryQT50t7riZ.md b/src/data/roadmaps/ios/content/av-foundation@UKgiSQvR9cryQT50t7riZ.md new file mode 100644 index 000000000000..9e774b52a294 --- /dev/null +++ b/src/data/roadmaps/ios/content/av-foundation@UKgiSQvR9cryQT50t7riZ.md @@ -0,0 +1 @@ +# AV Foundation \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/azure@r3fNx1Hk_TGlQSDtRnXqF.md b/src/data/roadmaps/ios/content/azure@r3fNx1Hk_TGlQSDtRnXqF.md new file mode 100644 index 000000000000..e4fd699af55f --- /dev/null +++ b/src/data/roadmaps/ios/content/azure@r3fNx1Hk_TGlQSDtRnXqF.md @@ -0,0 +1 @@ +# Azure \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/basic-interfaces@0o3V_zveN1xCIt7rayrCF.md b/src/data/roadmaps/ios/content/basic-interfaces@0o3V_zveN1xCIt7rayrCF.md new file mode 100644 index 000000000000..b605e784e0c9 --- /dev/null +++ b/src/data/roadmaps/ios/content/basic-interfaces@0o3V_zveN1xCIt7rayrCF.md @@ -0,0 +1 @@ +# Basic Interfaces \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/basics--creating-animations@w0i5Dxp40XS2HnF5nXeZI.md b/src/data/roadmaps/ios/content/basics--creating-animations@w0i5Dxp40XS2HnF5nXeZI.md new file mode 100644 index 000000000000..19753a720e74 --- /dev/null +++ b/src/data/roadmaps/ios/content/basics--creating-animations@w0i5Dxp40XS2HnF5nXeZI.md @@ -0,0 +1 @@ +# Basics / Creating Animations \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/benefits-over-objective-c@ZkNulHQAqhiFTO3CRC_mW.md b/src/data/roadmaps/ios/content/benefits-over-objective-c@ZkNulHQAqhiFTO3CRC_mW.md new file mode 100644 index 000000000000..372563fe1376 --- /dev/null +++ b/src/data/roadmaps/ios/content/benefits-over-objective-c@ZkNulHQAqhiFTO3CRC_mW.md @@ -0,0 +1 @@ +# Benefits over Objective-C \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/breakpoints@X0QavvwPVJU6sulafPVUK.md b/src/data/roadmaps/ios/content/breakpoints@X0QavvwPVJU6sulafPVUK.md new file mode 100644 index 000000000000..bb4203757803 --- /dev/null +++ b/src/data/roadmaps/ios/content/breakpoints@X0QavvwPVJU6sulafPVUK.md @@ -0,0 +1 @@ +# Breakpoints \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/building-interfaces@YvuYJceeNNfLBpq2-3iiL.md b/src/data/roadmaps/ios/content/building-interfaces@YvuYJceeNNfLBpq2-3iiL.md new file mode 100644 index 000000000000..e35b47d1b58f --- /dev/null +++ b/src/data/roadmaps/ios/content/building-interfaces@YvuYJceeNNfLBpq2-3iiL.md @@ -0,0 +1 @@ +# Building Interfaces \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/callback-hell@WhOpzFvv21QQV3aS6XbXr.md b/src/data/roadmaps/ios/content/callback-hell@WhOpzFvv21QQV3aS6XbXr.md new file mode 100644 index 000000000000..9172c84d2fa5 --- /dev/null +++ b/src/data/roadmaps/ios/content/callback-hell@WhOpzFvv21QQV3aS6XbXr.md @@ -0,0 +1 @@ +# Callback Hell \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/callbacks@qJEd7KU52xL_GRG3IQqhM.md b/src/data/roadmaps/ios/content/callbacks@qJEd7KU52xL_GRG3IQqhM.md new file mode 100644 index 000000000000..7b3d81c5f70b --- /dev/null +++ b/src/data/roadmaps/ios/content/callbacks@qJEd7KU52xL_GRG3IQqhM.md @@ -0,0 +1 @@ +# Callbacks \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/capturing-values--memory-mgmt@S-D-PnHA7COd2Dp6U2XO4.md b/src/data/roadmaps/ios/content/capturing-values--memory-mgmt@S-D-PnHA7COd2Dp6U2XO4.md new file mode 100644 index 000000000000..f3202e0fd2b1 --- /dev/null +++ b/src/data/roadmaps/ios/content/capturing-values--memory-mgmt@S-D-PnHA7COd2Dp6U2XO4.md @@ -0,0 +1 @@ +# Capturing Values & Memory Mgmt. \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/carthage@tIHjjNTXJWcNgkO6TB9ea.md b/src/data/roadmaps/ios/content/carthage@tIHjjNTXJWcNgkO6TB9ea.md new file mode 100644 index 000000000000..4a629bf18dbb --- /dev/null +++ b/src/data/roadmaps/ios/content/carthage@tIHjjNTXJWcNgkO6TB9ea.md @@ -0,0 +1 @@ +# Carthage \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/ci--cd@U4xE1enkZxUME0j0gutae.md b/src/data/roadmaps/ios/content/ci--cd@U4xE1enkZxUME0j0gutae.md new file mode 100644 index 000000000000..914f302e1012 --- /dev/null +++ b/src/data/roadmaps/ios/content/ci--cd@U4xE1enkZxUME0j0gutae.md @@ -0,0 +1 @@ +# CI / CD \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/circle-ci@tWxuFh0xDugdplnHt_G0e.md b/src/data/roadmaps/ios/content/circle-ci@tWxuFh0xDugdplnHt_G0e.md new file mode 100644 index 000000000000..18b4e1cacc4b --- /dev/null +++ b/src/data/roadmaps/ios/content/circle-ci@tWxuFh0xDugdplnHt_G0e.md @@ -0,0 +1 @@ +# Circle CI \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/closures@M9UlalPL47GoqhcyGsAPV.md b/src/data/roadmaps/ios/content/closures@M9UlalPL47GoqhcyGsAPV.md new file mode 100644 index 000000000000..2bd3198cdb4e --- /dev/null +++ b/src/data/roadmaps/ios/content/closures@M9UlalPL47GoqhcyGsAPV.md @@ -0,0 +1 @@ +# Closures \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/cocoa-touch@leozxW-5fAOfkKbQM4FD1.md b/src/data/roadmaps/ios/content/cocoa-touch@leozxW-5fAOfkKbQM4FD1.md new file mode 100644 index 000000000000..b1e1ca6d7a53 --- /dev/null +++ b/src/data/roadmaps/ios/content/cocoa-touch@leozxW-5fAOfkKbQM4FD1.md @@ -0,0 +1,7 @@ +# Cocoa Touch + +The Cocoa Touch layer in iOS provides the key frameworks needed to create apps for iOS devices. It offers extensive support for various user interface elements, gestures, animations, and event handling, making it central to developing interactive and visually appealing applications. Key components include UIKit for managing the graphical user interface, Foundation for essential data and network access, and Core Motion for handling device motion data. Additionally, frameworks like GameKit, MapKit, MessageUI, EventKit, and AVFoundation extend functionality for gaming, mapping, communication, event management, and multimedia. + +Cocoa Touch is responsible for the seamless integration of user interfaces and multimedia, supporting touch-based input, complex animations, and gesture recognizers through UIKit. AVFoundation provides robust tools for handling audio and video, essential for media-rich applications. GameKit offers features for game development, while MapKit integrates mapping services. MessageUI enables in-app communication via email and messages, and EventKit manages calendar events and reminders. These frameworks collectively empower developers to create rich, interactive, and high-performing iOS applications. + +You can learn more in depth information on the elements of the Cocoa Touch layer further down the roadmap in the UI Design & Framework sections. \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/cocoapods@epr1sOEZIAOwlgb8bre7r.md b/src/data/roadmaps/ios/content/cocoapods@epr1sOEZIAOwlgb8bre7r.md new file mode 100644 index 000000000000..00bc6b5122ba --- /dev/null +++ b/src/data/roadmaps/ios/content/cocoapods@epr1sOEZIAOwlgb8bre7r.md @@ -0,0 +1 @@ +# CocoaPods \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/code-quality-tools@DVe8S6TjKcQ8LT5G-aMVa.md b/src/data/roadmaps/ios/content/code-quality-tools@DVe8S6TjKcQ8LT5G-aMVa.md new file mode 100644 index 000000000000..c5782802a613 --- /dev/null +++ b/src/data/roadmaps/ios/content/code-quality-tools@DVe8S6TjKcQ8LT5G-aMVa.md @@ -0,0 +1 @@ +# Code Quality Tools \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/combine-and-mvvm@pY_zaMcFpeFDLgVk2W0Vy.md b/src/data/roadmaps/ios/content/combine-and-mvvm@pY_zaMcFpeFDLgVk2W0Vy.md new file mode 100644 index 000000000000..3b098064a191 --- /dev/null +++ b/src/data/roadmaps/ios/content/combine-and-mvvm@pY_zaMcFpeFDLgVk2W0Vy.md @@ -0,0 +1 @@ +# Combine and MVVM \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/combine@UzpdLLPs226N00c6weWRv.md b/src/data/roadmaps/ios/content/combine@UzpdLLPs226N00c6weWRv.md new file mode 100644 index 000000000000..b7756b77673c --- /dev/null +++ b/src/data/roadmaps/ios/content/combine@UzpdLLPs226N00c6weWRv.md @@ -0,0 +1 @@ +# Combine \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/components@A1TFKVjGU5RbeTF_zxJlu.md b/src/data/roadmaps/ios/content/components@A1TFKVjGU5RbeTF_zxJlu.md new file mode 100644 index 000000000000..f6ce326cb8bc --- /dev/null +++ b/src/data/roadmaps/ios/content/components@A1TFKVjGU5RbeTF_zxJlu.md @@ -0,0 +1 @@ +# Components \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/components@xkH7Llut6uP2-8iTMw76F.md b/src/data/roadmaps/ios/content/components@xkH7Llut6uP2-8iTMw76F.md new file mode 100644 index 000000000000..f6ce326cb8bc --- /dev/null +++ b/src/data/roadmaps/ios/content/components@xkH7Llut6uP2-8iTMw76F.md @@ -0,0 +1 @@ +# Components \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/concurrency-and-multithreading@fbloF-u4XwdHLmBS9flZm.md b/src/data/roadmaps/ios/content/concurrency-and-multithreading@fbloF-u4XwdHLmBS9flZm.md new file mode 100644 index 000000000000..7af54699b78c --- /dev/null +++ b/src/data/roadmaps/ios/content/concurrency-and-multithreading@fbloF-u4XwdHLmBS9flZm.md @@ -0,0 +1 @@ +# Concurrency and Multithreading \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/concurrency-gcd-asyncawait@aALIiAxKz4f7B_EYyhBCi.md b/src/data/roadmaps/ios/content/concurrency-gcd-asyncawait@aALIiAxKz4f7B_EYyhBCi.md new file mode 100644 index 000000000000..ba7e106dda43 --- /dev/null +++ b/src/data/roadmaps/ios/content/concurrency-gcd-asyncawait@aALIiAxKz4f7B_EYyhBCi.md @@ -0,0 +1 @@ +# Concurrency (GCD, async/await) \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/concurrency@-aLGB3cDXZHIhVU3t-Ve4.md b/src/data/roadmaps/ios/content/concurrency@-aLGB3cDXZHIhVU3t-Ve4.md new file mode 100644 index 000000000000..adf6818ed327 --- /dev/null +++ b/src/data/roadmaps/ios/content/concurrency@-aLGB3cDXZHIhVU3t-Ve4.md @@ -0,0 +1 @@ +# Concurrency \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/core-animation@KpcmuLWX0xAjz6ty4ebtB.md b/src/data/roadmaps/ios/content/core-animation@KpcmuLWX0xAjz6ty4ebtB.md new file mode 100644 index 000000000000..65941b478a18 --- /dev/null +++ b/src/data/roadmaps/ios/content/core-animation@KpcmuLWX0xAjz6ty4ebtB.md @@ -0,0 +1 @@ +# Core Animation \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/core-animation@_mRs6ctH0IsSSi-cwV2b8.md b/src/data/roadmaps/ios/content/core-animation@_mRs6ctH0IsSSi-cwV2b8.md new file mode 100644 index 000000000000..65941b478a18 --- /dev/null +++ b/src/data/roadmaps/ios/content/core-animation@_mRs6ctH0IsSSi-cwV2b8.md @@ -0,0 +1 @@ +# Core Animation \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/core-audio@4bAABCfTvxchS5C5NlAro.md b/src/data/roadmaps/ios/content/core-audio@4bAABCfTvxchS5C5NlAro.md new file mode 100644 index 000000000000..bfb1c99ec181 --- /dev/null +++ b/src/data/roadmaps/ios/content/core-audio@4bAABCfTvxchS5C5NlAro.md @@ -0,0 +1 @@ +# Core Audio \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/core-data@H4-Dp2WTA6HAZiFRQdLjx.md b/src/data/roadmaps/ios/content/core-data@H4-Dp2WTA6HAZiFRQdLjx.md new file mode 100644 index 000000000000..c5e0b15076c4 --- /dev/null +++ b/src/data/roadmaps/ios/content/core-data@H4-Dp2WTA6HAZiFRQdLjx.md @@ -0,0 +1 @@ +# Core Data \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/core-graphics@kRE9xT3mT9Si4NwJr9yGi.md b/src/data/roadmaps/ios/content/core-graphics@kRE9xT3mT9Si4NwJr9yGi.md new file mode 100644 index 000000000000..aea358e03437 --- /dev/null +++ b/src/data/roadmaps/ios/content/core-graphics@kRE9xT3mT9Si4NwJr9yGi.md @@ -0,0 +1 @@ +# Core Graphics \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/core-image@6zE_M0_oVpwW0B9qFSRgP.md b/src/data/roadmaps/ios/content/core-image@6zE_M0_oVpwW0B9qFSRgP.md new file mode 100644 index 000000000000..b2c422c2fbc0 --- /dev/null +++ b/src/data/roadmaps/ios/content/core-image@6zE_M0_oVpwW0B9qFSRgP.md @@ -0,0 +1 @@ +# Core Image \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/core-ml@7s9Elv80TbZX_-NZpyutj.md b/src/data/roadmaps/ios/content/core-ml@7s9Elv80TbZX_-NZpyutj.md new file mode 100644 index 000000000000..5d0d696e0130 --- /dev/null +++ b/src/data/roadmaps/ios/content/core-ml@7s9Elv80TbZX_-NZpyutj.md @@ -0,0 +1 @@ +# Core ML \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/core-os@IdGdLNgJI3WmONEFsMq-d.md b/src/data/roadmaps/ios/content/core-os@IdGdLNgJI3WmONEFsMq-d.md new file mode 100644 index 000000000000..b4b1650de116 --- /dev/null +++ b/src/data/roadmaps/ios/content/core-os@IdGdLNgJI3WmONEFsMq-d.md @@ -0,0 +1,14 @@ +# Core OS + +The Core OS layer in iOS is the foundation upon which the entire operating system is built, providing essential low-level services that ensure the system’s security, performance, and efficiency. This layer includes the kernel, which manages system resources and hardware abstraction, and device drivers that facilitate communication between the OS and hardware. Core OS also encompasses security frameworks, such as the Secure Enclave for handling encryption keys and biometric data, and Keychain Services for secure storage of sensitive information. + +Core OS supports essential functionalities like the Apple File System (APFS), which offers features like encryption and snapshotting, efficient memory management, and robust networking capabilities. It also includes power management features to extend battery life, inter-process communication (IPC) mechanisms for multitasking, and core system libraries like libdispatch for concurrency. By providing these foundational services, Core OS ensures that higher-level software can operate efficiently and securely on iOS devices. + +Visit the following resources to learn more: + +- [Kernel API](https://developer.apple.com/documentation/kernel) +- [System Configuration](https://developer.apple.com/documentation/systemconfiguration) +- [Apple File System Guide](https://developer.apple.com/documentation/foundation/file_system/about_apple_file_system) +- [Keychain Services](https://developer.apple.com/documentation/security/keychain_services) +- [LibDispatch](https://developer.apple.com/documentation/dispatch) +- [LibXPC](https://developer.apple.com/documentation/xpc) \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/core-programming-concepts@mk02yV7_XHkgp2xdNIxaU.md b/src/data/roadmaps/ios/content/core-programming-concepts@mk02yV7_XHkgp2xdNIxaU.md new file mode 100644 index 000000000000..7cdba4603b86 --- /dev/null +++ b/src/data/roadmaps/ios/content/core-programming-concepts@mk02yV7_XHkgp2xdNIxaU.md @@ -0,0 +1 @@ +# Core Programming Concepts \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/core-services@LHM7gNgTtfn_QDW-oQskD.md b/src/data/roadmaps/ios/content/core-services@LHM7gNgTtfn_QDW-oQskD.md new file mode 100644 index 000000000000..aa1115538acc --- /dev/null +++ b/src/data/roadmaps/ios/content/core-services@LHM7gNgTtfn_QDW-oQskD.md @@ -0,0 +1,16 @@ +# Core Services + +The Core Services layer in iOS provides essential system services that support app development by offering a wide range of fundamental frameworks and capabilities. These services are crucial for enabling basic app functionality such as data management, networking, location services, motion sensing, and web content integration. By leveraging these core frameworks, you can efficiently handle tasks like data storage and persistence, network communication, and user location tracking, ensuring their apps are robust, responsive, and capable of interacting with various hardware and software components. + +Core Services are responsible for managing fundamental utilities and services that underpin iOS applications. This includes providing efficient data management solutions, robust networking capabilities, precise location data, and motion sensing features. Additionally, they facilitate seamless integration and manipulation of web content within apps. + +Visit the following resources to learn more: + +- [Core Services Layer Overview](https://developer.apple.com/documentation/coreservices) +- [Core Foundation](https://developer.apple.com/documentation/corefoundation) +- [Core Data](https://developer.apple.com/documentation/coredata) +- [Core Location](https://developer.apple.com/documentation/corelocation) +- [CFNetwork](https://developer.apple.com/documentation/cfnetwork) +- [Core Motion](https://developer.apple.com/documentation/coremotion) +- [Foundation](https://developer.apple.com/documentation/foundation) +- [WebKit](https://developer.apple.com/documentation/webkit) \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/data-binding@yR94uHs0SiSScU4gPBzfr.md b/src/data/roadmaps/ios/content/data-binding@yR94uHs0SiSScU4gPBzfr.md new file mode 100644 index 000000000000..f78d18b52a52 --- /dev/null +++ b/src/data/roadmaps/ios/content/data-binding@yR94uHs0SiSScU4gPBzfr.md @@ -0,0 +1 @@ +# Data binding \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/data-persistence@6gfqFy3H6SLt06oJ1kt5A.md b/src/data/roadmaps/ios/content/data-persistence@6gfqFy3H6SLt06oJ1kt5A.md new file mode 100644 index 000000000000..b613fbe2e21b --- /dev/null +++ b/src/data/roadmaps/ios/content/data-persistence@6gfqFy3H6SLt06oJ1kt5A.md @@ -0,0 +1 @@ +# Data Persistence \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/debug-navigator@VuWUsg05WmOoP_RJ5AXJO.md b/src/data/roadmaps/ios/content/debug-navigator@VuWUsg05WmOoP_RJ5AXJO.md new file mode 100644 index 000000000000..28fc25dbef4a --- /dev/null +++ b/src/data/roadmaps/ios/content/debug-navigator@VuWUsg05WmOoP_RJ5AXJO.md @@ -0,0 +1 @@ +# Debug Navigator \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/debugging-techniques@OZZ3UnWN2gFflbM_WaJ8H.md b/src/data/roadmaps/ios/content/debugging-techniques@OZZ3UnWN2gFflbM_WaJ8H.md new file mode 100644 index 000000000000..bc6ae012797b --- /dev/null +++ b/src/data/roadmaps/ios/content/debugging-techniques@OZZ3UnWN2gFflbM_WaJ8H.md @@ -0,0 +1 @@ +# Debugging Techniques \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/declarative-syntax@QVg4_8EXeQBJbleryy8c1.md b/src/data/roadmaps/ios/content/declarative-syntax@QVg4_8EXeQBJbleryy8c1.md new file mode 100644 index 000000000000..b842fdaef085 --- /dev/null +++ b/src/data/roadmaps/ios/content/declarative-syntax@QVg4_8EXeQBJbleryy8c1.md @@ -0,0 +1 @@ +# Declarative Syntax \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/delegate-pattern@BtPYKd7RedHOLRATDKkpg.md b/src/data/roadmaps/ios/content/delegate-pattern@BtPYKd7RedHOLRATDKkpg.md new file mode 100644 index 000000000000..30d34cc52bfb --- /dev/null +++ b/src/data/roadmaps/ios/content/delegate-pattern@BtPYKd7RedHOLRATDKkpg.md @@ -0,0 +1 @@ +# Delegate Pattern \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/dependency-manager@Tv8-WUcKiZMLHuunQwise.md b/src/data/roadmaps/ios/content/dependency-manager@Tv8-WUcKiZMLHuunQwise.md new file mode 100644 index 000000000000..65fff8fc4bf3 --- /dev/null +++ b/src/data/roadmaps/ios/content/dependency-manager@Tv8-WUcKiZMLHuunQwise.md @@ -0,0 +1 @@ +# Dependency Manager \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/dynamic-library@Lrb4HZYrZU7SJlbedZp7U.md b/src/data/roadmaps/ios/content/dynamic-library@Lrb4HZYrZU7SJlbedZp7U.md new file mode 100644 index 000000000000..e8bd56028c59 --- /dev/null +++ b/src/data/roadmaps/ios/content/dynamic-library@Lrb4HZYrZU7SJlbedZp7U.md @@ -0,0 +1 @@ +# Dynamic Library \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/dynamic-type@0nei6iwP4Pgi_j4vVi_Qt.md b/src/data/roadmaps/ios/content/dynamic-type@0nei6iwP4Pgi_j4vVi_Qt.md new file mode 100644 index 000000000000..25f36495dae1 --- /dev/null +++ b/src/data/roadmaps/ios/content/dynamic-type@0nei6iwP4Pgi_j4vVi_Qt.md @@ -0,0 +1 @@ +# Dynamic Type \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/editors@-4q7MFXaTmpR_39PTeWD8.md b/src/data/roadmaps/ios/content/editors@-4q7MFXaTmpR_39PTeWD8.md new file mode 100644 index 000000000000..f09b07e89b91 --- /dev/null +++ b/src/data/roadmaps/ios/content/editors@-4q7MFXaTmpR_39PTeWD8.md @@ -0,0 +1 @@ +# Editors \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/error-handling@N5ojp6bqgH074MPKYjCHV.md b/src/data/roadmaps/ios/content/error-handling@N5ojp6bqgH074MPKYjCHV.md new file mode 100644 index 000000000000..aa14383169b9 --- /dev/null +++ b/src/data/roadmaps/ios/content/error-handling@N5ojp6bqgH074MPKYjCHV.md @@ -0,0 +1 @@ +# Error Handling \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/fastlane@_W3vb0b14FrWB2fH7DHC7.md b/src/data/roadmaps/ios/content/fastlane@_W3vb0b14FrWB2fH7DHC7.md new file mode 100644 index 000000000000..5686faa3a3dd --- /dev/null +++ b/src/data/roadmaps/ios/content/fastlane@_W3vb0b14FrWB2fH7DHC7.md @@ -0,0 +1 @@ +# FastLane \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/file-system@_bkRbqVXKNCnRvEFCM6mN.md b/src/data/roadmaps/ios/content/file-system@_bkRbqVXKNCnRvEFCM6mN.md new file mode 100644 index 000000000000..b47f3f608ee2 --- /dev/null +++ b/src/data/roadmaps/ios/content/file-system@_bkRbqVXKNCnRvEFCM6mN.md @@ -0,0 +1 @@ +# File System \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/frameworks--library@pZVPsgvCpP3zUgBM4i0CF.md b/src/data/roadmaps/ios/content/frameworks--library@pZVPsgvCpP3zUgBM4i0CF.md new file mode 100644 index 000000000000..d0ee856e7733 --- /dev/null +++ b/src/data/roadmaps/ios/content/frameworks--library@pZVPsgvCpP3zUgBM4i0CF.md @@ -0,0 +1 @@ +# Frameworks & Library \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/frameworks@PdzCQXZIivw3zCYPtokJV.md b/src/data/roadmaps/ios/content/frameworks@PdzCQXZIivw3zCYPtokJV.md new file mode 100644 index 000000000000..c3e3997cf5dc --- /dev/null +++ b/src/data/roadmaps/ios/content/frameworks@PdzCQXZIivw3zCYPtokJV.md @@ -0,0 +1 @@ +# Frameworks \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/functional-programming@Pj-hqRZUmwx1WhmTbLoFD.md b/src/data/roadmaps/ios/content/functional-programming@Pj-hqRZUmwx1WhmTbLoFD.md new file mode 100644 index 000000000000..390025a4da4d --- /dev/null +++ b/src/data/roadmaps/ios/content/functional-programming@Pj-hqRZUmwx1WhmTbLoFD.md @@ -0,0 +1 @@ +# Functional Programming \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/gamekit@H5F9P5xeQiHhWhS6jEzp5.md b/src/data/roadmaps/ios/content/gamekit@H5F9P5xeQiHhWhS6jEzp5.md new file mode 100644 index 000000000000..7e5adeb6dbd9 --- /dev/null +++ b/src/data/roadmaps/ios/content/gamekit@H5F9P5xeQiHhWhS6jEzp5.md @@ -0,0 +1 @@ +# GameKit \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/gcd@aROcI1RucAyu-gHn-tVnj.md b/src/data/roadmaps/ios/content/gcd@aROcI1RucAyu-gHn-tVnj.md new file mode 100644 index 000000000000..192880ca0ca8 --- /dev/null +++ b/src/data/roadmaps/ios/content/gcd@aROcI1RucAyu-gHn-tVnj.md @@ -0,0 +1 @@ +# GCD \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/git@QifWR7WSJJTcTK2IfczxG.md b/src/data/roadmaps/ios/content/git@QifWR7WSJJTcTK2IfczxG.md new file mode 100644 index 000000000000..65f57e71e770 --- /dev/null +++ b/src/data/roadmaps/ios/content/git@QifWR7WSJJTcTK2IfczxG.md @@ -0,0 +1 @@ +# Git \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/github-actions@LltERZaHsI-R_3O_3twpk.md b/src/data/roadmaps/ios/content/github-actions@LltERZaHsI-R_3O_3twpk.md new file mode 100644 index 000000000000..da2fb90d1bd7 --- /dev/null +++ b/src/data/roadmaps/ios/content/github-actions@LltERZaHsI-R_3O_3twpk.md @@ -0,0 +1 @@ +# GitHub Actions \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/github@U_xXGSFF5iibQ4VkzPAWf.md b/src/data/roadmaps/ios/content/github@U_xXGSFF5iibQ4VkzPAWf.md new file mode 100644 index 000000000000..ada03fdbad3c --- /dev/null +++ b/src/data/roadmaps/ios/content/github@U_xXGSFF5iibQ4VkzPAWf.md @@ -0,0 +1 @@ +# GitHub \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/gitlab@VylaBSDAVFzveVfytI1Fz.md b/src/data/roadmaps/ios/content/gitlab@VylaBSDAVFzveVfytI1Fz.md new file mode 100644 index 000000000000..87c30782c1e2 --- /dev/null +++ b/src/data/roadmaps/ios/content/gitlab@VylaBSDAVFzveVfytI1Fz.md @@ -0,0 +1 @@ +# GitLab \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/graphql@9o7d3aN0YFfNNUeVoJrhs.md b/src/data/roadmaps/ios/content/graphql@9o7d3aN0YFfNNUeVoJrhs.md new file mode 100644 index 000000000000..9aceb43e1273 --- /dev/null +++ b/src/data/roadmaps/ios/content/graphql@9o7d3aN0YFfNNUeVoJrhs.md @@ -0,0 +1 @@ +# GraphQL \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/groups@42sfiLKrVCcnMMjR7TFn1.md b/src/data/roadmaps/ios/content/groups@42sfiLKrVCcnMMjR7TFn1.md new file mode 100644 index 000000000000..7f8f87c862c1 --- /dev/null +++ b/src/data/roadmaps/ios/content/groups@42sfiLKrVCcnMMjR7TFn1.md @@ -0,0 +1 @@ +# Groups \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/healthkit@Jsu5f6QASpuvpky_W5q-O.md b/src/data/roadmaps/ios/content/healthkit@Jsu5f6QASpuvpky_W5q-O.md new file mode 100644 index 000000000000..163f9271100f --- /dev/null +++ b/src/data/roadmaps/ios/content/healthkit@Jsu5f6QASpuvpky_W5q-O.md @@ -0,0 +1 @@ +# HealthKit \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/hig@1I5eFKqFVBxWLAXfpgNXO.md b/src/data/roadmaps/ios/content/hig@1I5eFKqFVBxWLAXfpgNXO.md new file mode 100644 index 000000000000..bab0f2e88ac1 --- /dev/null +++ b/src/data/roadmaps/ios/content/hig@1I5eFKqFVBxWLAXfpgNXO.md @@ -0,0 +1 @@ +# HIG \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/history-and-why-swift@z4-1Gc95JKYAn2RPFc7hw.md b/src/data/roadmaps/ios/content/history-and-why-swift@z4-1Gc95JKYAn2RPFc7hw.md new file mode 100644 index 000000000000..b3f2c618042d --- /dev/null +++ b/src/data/roadmaps/ios/content/history-and-why-swift@z4-1Gc95JKYAn2RPFc7hw.md @@ -0,0 +1 @@ +# History and Why Swift? \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/http--https@GjY5qCU1rjB0D58qHQtAR.md b/src/data/roadmaps/ios/content/http--https@GjY5qCU1rjB0D58qHQtAR.md new file mode 100644 index 000000000000..5290801e2731 --- /dev/null +++ b/src/data/roadmaps/ios/content/http--https@GjY5qCU1rjB0D58qHQtAR.md @@ -0,0 +1 @@ +# HTTP / HTTPs \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/ibactions@FspN4yiBF9aEN7_SlXUe1.md b/src/data/roadmaps/ios/content/ibactions@FspN4yiBF9aEN7_SlXUe1.md new file mode 100644 index 000000000000..eaa7468cc25e --- /dev/null +++ b/src/data/roadmaps/ios/content/ibactions@FspN4yiBF9aEN7_SlXUe1.md @@ -0,0 +1 @@ +# IBActions \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/iboutlets@tuUuLInq0p-nhehe2AqPg.md b/src/data/roadmaps/ios/content/iboutlets@tuUuLInq0p-nhehe2AqPg.md new file mode 100644 index 000000000000..e9fa33a6cbfd --- /dev/null +++ b/src/data/roadmaps/ios/content/iboutlets@tuUuLInq0p-nhehe2AqPg.md @@ -0,0 +1 @@ +# IBOutlets \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/implementing-delegates@z3AUN9u7EEqeKOqvLxf7D.md b/src/data/roadmaps/ios/content/implementing-delegates@z3AUN9u7EEqeKOqvLxf7D.md new file mode 100644 index 000000000000..4e97521c4250 --- /dev/null +++ b/src/data/roadmaps/ios/content/implementing-delegates@z3AUN9u7EEqeKOqvLxf7D.md @@ -0,0 +1 @@ +# Implementing Delegates \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/installing@R8LdFpfyS0MFYJuMLk8RG.md b/src/data/roadmaps/ios/content/installing@R8LdFpfyS0MFYJuMLk8RG.md new file mode 100644 index 000000000000..35e288c68104 --- /dev/null +++ b/src/data/roadmaps/ios/content/installing@R8LdFpfyS0MFYJuMLk8RG.md @@ -0,0 +1 @@ +# Installing \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/interface-builder@iMzYd8KUFnk6zqr4KecgX.md b/src/data/roadmaps/ios/content/interface-builder@iMzYd8KUFnk6zqr4KecgX.md new file mode 100644 index 000000000000..82c58a063a41 --- /dev/null +++ b/src/data/roadmaps/ios/content/interface-builder@iMzYd8KUFnk6zqr4KecgX.md @@ -0,0 +1 @@ +# Interface Builder \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/interface-overview@FwwqAchMC6qdnXbqg45he.md b/src/data/roadmaps/ios/content/interface-overview@FwwqAchMC6qdnXbqg45he.md new file mode 100644 index 000000000000..ccbde58a26ce --- /dev/null +++ b/src/data/roadmaps/ios/content/interface-overview@FwwqAchMC6qdnXbqg45he.md @@ -0,0 +1 @@ +# Interface overview \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/interoperability-with-swift@IAPzuN51xvrZJ5TFB23Q9.md b/src/data/roadmaps/ios/content/interoperability-with-swift@IAPzuN51xvrZJ5TFB23Q9.md new file mode 100644 index 000000000000..21c1982aa2f8 --- /dev/null +++ b/src/data/roadmaps/ios/content/interoperability-with-swift@IAPzuN51xvrZJ5TFB23Q9.md @@ -0,0 +1 @@ +# Interoperability with Swift \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/ios-architecture@IduGSdUa2Fi7VFMLKgmsS.md b/src/data/roadmaps/ios/content/ios-architecture@IduGSdUa2Fi7VFMLKgmsS.md new file mode 100644 index 000000000000..12fc57023275 --- /dev/null +++ b/src/data/roadmaps/ios/content/ios-architecture@IduGSdUa2Fi7VFMLKgmsS.md @@ -0,0 +1 @@ +# iOS Architecture \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/jenkins@TrblGyy81Oep2CBxoZkaf.md b/src/data/roadmaps/ios/content/jenkins@TrblGyy81Oep2CBxoZkaf.md new file mode 100644 index 000000000000..2b36b080c9e6 --- /dev/null +++ b/src/data/roadmaps/ios/content/jenkins@TrblGyy81Oep2CBxoZkaf.md @@ -0,0 +1 @@ +# Jenkins \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/json--xml@WYV4YG_sLvC4S5ptFFdrF.md b/src/data/roadmaps/ios/content/json--xml@WYV4YG_sLvC4S5ptFFdrF.md new file mode 100644 index 000000000000..e9fe9763bc48 --- /dev/null +++ b/src/data/roadmaps/ios/content/json--xml@WYV4YG_sLvC4S5ptFFdrF.md @@ -0,0 +1 @@ +# JSON / XML \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/keeping-updated-with-wwdc@fOOQurIL1w3PwH5Mep9x1.md b/src/data/roadmaps/ios/content/keeping-updated-with-wwdc@fOOQurIL1w3PwH5Mep9x1.md new file mode 100644 index 000000000000..882677069f47 --- /dev/null +++ b/src/data/roadmaps/ios/content/keeping-updated-with-wwdc@fOOQurIL1w3PwH5Mep9x1.md @@ -0,0 +1 @@ +# Keeping Updated with WWDC \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/keychain@8v_eP0j85TnB33XyYAzrT.md b/src/data/roadmaps/ios/content/keychain@8v_eP0j85TnB33XyYAzrT.md new file mode 100644 index 000000000000..3c8c826d2cb6 --- /dev/null +++ b/src/data/roadmaps/ios/content/keychain@8v_eP0j85TnB33XyYAzrT.md @@ -0,0 +1 @@ +# Keychain \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/latest-ios-sdk@SBlLNfyWzzhdFNtNtkLet.md b/src/data/roadmaps/ios/content/latest-ios-sdk@SBlLNfyWzzhdFNtNtkLet.md new file mode 100644 index 000000000000..9e2e96570013 --- /dev/null +++ b/src/data/roadmaps/ios/content/latest-ios-sdk@SBlLNfyWzzhdFNtNtkLet.md @@ -0,0 +1 @@ +# Latest iOS SDK \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/latest-swift-version@e7qVpQeu2iQL0c9MOMCVe.md b/src/data/roadmaps/ios/content/latest-swift-version@e7qVpQeu2iQL0c9MOMCVe.md new file mode 100644 index 000000000000..5fe92e5c0abe --- /dev/null +++ b/src/data/roadmaps/ios/content/latest-swift-version@e7qVpQeu2iQL0c9MOMCVe.md @@ -0,0 +1 @@ +# Latest Swift Version \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/lottie@i-T6GTqS0FZ_Llt5v4SvR.md b/src/data/roadmaps/ios/content/lottie@i-T6GTqS0FZ_Llt5v4SvR.md new file mode 100644 index 000000000000..091b775e700f --- /dev/null +++ b/src/data/roadmaps/ios/content/lottie@i-T6GTqS0FZ_Llt5v4SvR.md @@ -0,0 +1 @@ +# Lottie \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/mapkit@XOXsjaQ-YyuAMpVCqH8KG.md b/src/data/roadmaps/ios/content/mapkit@XOXsjaQ-YyuAMpVCqH8KG.md new file mode 100644 index 000000000000..0d1815b7ba61 --- /dev/null +++ b/src/data/roadmaps/ios/content/mapkit@XOXsjaQ-YyuAMpVCqH8KG.md @@ -0,0 +1 @@ +# MapKit \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/media@nGCG74_Xp_Ngt0u7PZnZl.md b/src/data/roadmaps/ios/content/media@nGCG74_Xp_Ngt0u7PZnZl.md new file mode 100644 index 000000000000..2657e4cf6b9d --- /dev/null +++ b/src/data/roadmaps/ios/content/media@nGCG74_Xp_Ngt0u7PZnZl.md @@ -0,0 +1 @@ +# Media \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/memory-management@tqbg8mBJfjuXacdMlIB_L.md b/src/data/roadmaps/ios/content/memory-management@tqbg8mBJfjuXacdMlIB_L.md new file mode 100644 index 000000000000..0f0ebe5f9808 --- /dev/null +++ b/src/data/roadmaps/ios/content/memory-management@tqbg8mBJfjuXacdMlIB_L.md @@ -0,0 +1 @@ +# Memory Management \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/meta@5VguZoP4h40rTWkxWxaxU.md b/src/data/roadmaps/ios/content/meta@5VguZoP4h40rTWkxWxaxU.md new file mode 100644 index 000000000000..dabc8eee5ecf --- /dev/null +++ b/src/data/roadmaps/ios/content/meta@5VguZoP4h40rTWkxWxaxU.md @@ -0,0 +1 @@ +# Meta \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/modals-and-navigation@jb89kQxDhZND3vQo0EH7r.md b/src/data/roadmaps/ios/content/modals-and-navigation@jb89kQxDhZND3vQo0EH7r.md new file mode 100644 index 000000000000..4a6c69f9bd13 --- /dev/null +++ b/src/data/roadmaps/ios/content/modals-and-navigation@jb89kQxDhZND3vQo0EH7r.md @@ -0,0 +1 @@ +# Modals and Navigation \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/mvc@a-QDI7Ei-B5BRHbicFcfG.md b/src/data/roadmaps/ios/content/mvc@a-QDI7Ei-B5BRHbicFcfG.md new file mode 100644 index 000000000000..f61d65cc118f --- /dev/null +++ b/src/data/roadmaps/ios/content/mvc@a-QDI7Ei-B5BRHbicFcfG.md @@ -0,0 +1 @@ +# MVC \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/mvp@lVNrnUK6p4eifKRVSnOje.md b/src/data/roadmaps/ios/content/mvp@lVNrnUK6p4eifKRVSnOje.md new file mode 100644 index 000000000000..8251ae62aec0 --- /dev/null +++ b/src/data/roadmaps/ios/content/mvp@lVNrnUK6p4eifKRVSnOje.md @@ -0,0 +1 @@ +# MVP \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/mvvm-c@iLT2jAkQg-Ex0zSLquNfl.md b/src/data/roadmaps/ios/content/mvvm-c@iLT2jAkQg-Ex0zSLquNfl.md new file mode 100644 index 000000000000..b34ede596793 --- /dev/null +++ b/src/data/roadmaps/ios/content/mvvm-c@iLT2jAkQg-Ex0zSLquNfl.md @@ -0,0 +1 @@ +# MVVM-C \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/mvvm@taTxZw2c3xS18JOwgkNHM.md b/src/data/roadmaps/ios/content/mvvm@taTxZw2c3xS18JOwgkNHM.md new file mode 100644 index 000000000000..8e11b3849223 --- /dev/null +++ b/src/data/roadmaps/ios/content/mvvm@taTxZw2c3xS18JOwgkNHM.md @@ -0,0 +1 @@ +# MVVM \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/navigation-controllers-segues@tUbMr1pGlw4JwMuW311JJ.md b/src/data/roadmaps/ios/content/navigation-controllers-segues@tUbMr1pGlw4JwMuW311JJ.md new file mode 100644 index 000000000000..bbcaac2922c8 --- /dev/null +++ b/src/data/roadmaps/ios/content/navigation-controllers-segues@tUbMr1pGlw4JwMuW311JJ.md @@ -0,0 +1 @@ +# Navigation Controllers, Segues \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/navigation-stacks@TLm70PlTI0K3Odn1iYxWX.md b/src/data/roadmaps/ios/content/navigation-stacks@TLm70PlTI0K3Odn1iYxWX.md new file mode 100644 index 000000000000..7d80911402b2 --- /dev/null +++ b/src/data/roadmaps/ios/content/navigation-stacks@TLm70PlTI0K3Odn1iYxWX.md @@ -0,0 +1 @@ +# Navigation Stacks \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/navigation-stacks@mUMDZsgzCB6cs_K6pfUY1.md b/src/data/roadmaps/ios/content/navigation-stacks@mUMDZsgzCB6cs_K6pfUY1.md new file mode 100644 index 000000000000..7d80911402b2 --- /dev/null +++ b/src/data/roadmaps/ios/content/navigation-stacks@mUMDZsgzCB6cs_K6pfUY1.md @@ -0,0 +1 @@ +# Navigation Stacks \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/navigation-view@IBr2P7dknWTnZ2a-fFCqN.md b/src/data/roadmaps/ios/content/navigation-view@IBr2P7dknWTnZ2a-fFCqN.md new file mode 100644 index 000000000000..e0a50508b243 --- /dev/null +++ b/src/data/roadmaps/ios/content/navigation-view@IBr2P7dknWTnZ2a-fFCqN.md @@ -0,0 +1 @@ +# Navigation View \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/navigation@02VAK4GMkN6nDHf1zqwPA.md b/src/data/roadmaps/ios/content/navigation@02VAK4GMkN6nDHf1zqwPA.md new file mode 100644 index 000000000000..69c0d5e8fbc5 --- /dev/null +++ b/src/data/roadmaps/ios/content/navigation@02VAK4GMkN6nDHf1zqwPA.md @@ -0,0 +1 @@ +# Navigation \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/navigation@FXUrfyvuIIOH7VDnT_E0z.md b/src/data/roadmaps/ios/content/navigation@FXUrfyvuIIOH7VDnT_E0z.md new file mode 100644 index 000000000000..69c0d5e8fbc5 --- /dev/null +++ b/src/data/roadmaps/ios/content/navigation@FXUrfyvuIIOH7VDnT_E0z.md @@ -0,0 +1 @@ +# Navigation \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/navigationlink@my77jLU2qxU7bQ7_Fx2iH.md b/src/data/roadmaps/ios/content/navigationlink@my77jLU2qxU7bQ7_Fx2iH.md new file mode 100644 index 000000000000..6777d6175a83 --- /dev/null +++ b/src/data/roadmaps/ios/content/navigationlink@my77jLU2qxU7bQ7_Fx2iH.md @@ -0,0 +1 @@ +# NavigationLink \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/navigators@odKZx4SUULF1y4gmiJZdu.md b/src/data/roadmaps/ios/content/navigators@odKZx4SUULF1y4gmiJZdu.md new file mode 100644 index 000000000000..6b8e3fb7eded --- /dev/null +++ b/src/data/roadmaps/ios/content/navigators@odKZx4SUULF1y4gmiJZdu.md @@ -0,0 +1 @@ +# Navigators \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/networking@JoNoM-utp8MaL1H0oXDta.md b/src/data/roadmaps/ios/content/networking@JoNoM-utp8MaL1H0oXDta.md new file mode 100644 index 000000000000..e159d196c98e --- /dev/null +++ b/src/data/roadmaps/ios/content/networking@JoNoM-utp8MaL1H0oXDta.md @@ -0,0 +1 @@ +# Networking \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/new-feature-announcements@0dbdUmWvTIJ0fkUuLp9gR.md b/src/data/roadmaps/ios/content/new-feature-announcements@0dbdUmWvTIJ0fkUuLp9gR.md new file mode 100644 index 000000000000..cdcd6a815e19 --- /dev/null +++ b/src/data/roadmaps/ios/content/new-feature-announcements@0dbdUmWvTIJ0fkUuLp9gR.md @@ -0,0 +1 @@ +# New Feature Announcements \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/new-project@BJgoAgH85U6S3RtXq7hHV.md b/src/data/roadmaps/ios/content/new-project@BJgoAgH85U6S3RtXq7hHV.md new file mode 100644 index 000000000000..8c9f1a121de1 --- /dev/null +++ b/src/data/roadmaps/ios/content/new-project@BJgoAgH85U6S3RtXq7hHV.md @@ -0,0 +1 @@ +# New Project \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/objective-c-basics@0BSX80W1TJ_Ia_Zh2zKyK.md b/src/data/roadmaps/ios/content/objective-c-basics@0BSX80W1TJ_Ia_Zh2zKyK.md new file mode 100644 index 000000000000..e380066b3f4c --- /dev/null +++ b/src/data/roadmaps/ios/content/objective-c-basics@0BSX80W1TJ_Ia_Zh2zKyK.md @@ -0,0 +1 @@ +# Objective-C Basics \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/objective-c@oOaMz9A5DZvrjxovMztXz.md b/src/data/roadmaps/ios/content/objective-c@oOaMz9A5DZvrjxovMztXz.md new file mode 100644 index 000000000000..05591c33576f --- /dev/null +++ b/src/data/roadmaps/ios/content/objective-c@oOaMz9A5DZvrjxovMztXz.md @@ -0,0 +1 @@ +# Objective-C \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/observables--observers@k232wKg7XCb_ngjZ5Mwsy.md b/src/data/roadmaps/ios/content/observables--observers@k232wKg7XCb_ngjZ5Mwsy.md new file mode 100644 index 000000000000..5f54fee9dc7e --- /dev/null +++ b/src/data/roadmaps/ios/content/observables--observers@k232wKg7XCb_ngjZ5Mwsy.md @@ -0,0 +1 @@ +# Observables & observers \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/oop@FoqlB7xBIrV4yUp4ReBkw.md b/src/data/roadmaps/ios/content/oop@FoqlB7xBIrV4yUp4ReBkw.md new file mode 100644 index 000000000000..4b1d68d5b76e --- /dev/null +++ b/src/data/roadmaps/ios/content/oop@FoqlB7xBIrV4yUp4ReBkw.md @@ -0,0 +1 @@ +# OOP \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/operation-queues@mdAV4JlF08q-ZQpb5C3q6.md b/src/data/roadmaps/ios/content/operation-queues@mdAV4JlF08q-ZQpb5C3q6.md new file mode 100644 index 000000000000..d1d403faf459 --- /dev/null +++ b/src/data/roadmaps/ios/content/operation-queues@mdAV4JlF08q-ZQpb5C3q6.md @@ -0,0 +1 @@ +# Operation Queues \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/operators--pipelines@GAn12SsVR_mPxOaOVckdz.md b/src/data/roadmaps/ios/content/operators--pipelines@GAn12SsVR_mPxOaOVckdz.md new file mode 100644 index 000000000000..e078204fa0f7 --- /dev/null +++ b/src/data/roadmaps/ios/content/operators--pipelines@GAn12SsVR_mPxOaOVckdz.md @@ -0,0 +1 @@ +# Operators & Pipelines \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/operators@t7IYTY8tVjC_xzM1n8wts.md b/src/data/roadmaps/ios/content/operators@t7IYTY8tVjC_xzM1n8wts.md new file mode 100644 index 000000000000..4978bc66df88 --- /dev/null +++ b/src/data/roadmaps/ios/content/operators@t7IYTY8tVjC_xzM1n8wts.md @@ -0,0 +1 @@ +# Operators \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/parsing@UTVh1RHRWb5eA-S7ayLp8.md b/src/data/roadmaps/ios/content/parsing@UTVh1RHRWb5eA-S7ayLp8.md new file mode 100644 index 000000000000..a1169ab9a62d --- /dev/null +++ b/src/data/roadmaps/ios/content/parsing@UTVh1RHRWb5eA-S7ayLp8.md @@ -0,0 +1 @@ +# Parsing \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/pick-a-language@MrdIb9F-wSEbUz7KRnH3t.md b/src/data/roadmaps/ios/content/pick-a-language@MrdIb9F-wSEbUz7KRnH3t.md new file mode 100644 index 000000000000..3ac4654cec0e --- /dev/null +++ b/src/data/roadmaps/ios/content/pick-a-language@MrdIb9F-wSEbUz7KRnH3t.md @@ -0,0 +1 @@ +# Pick a Language \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/preferences@SeGfULWFR7ufdv4U9Db3F.md b/src/data/roadmaps/ios/content/preferences@SeGfULWFR7ufdv4U9Db3F.md new file mode 100644 index 000000000000..52208c2e1e8c --- /dev/null +++ b/src/data/roadmaps/ios/content/preferences@SeGfULWFR7ufdv4U9Db3F.md @@ -0,0 +1 @@ +# Preferences \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/presenting--dismissing-views@4pmjLa7WvwV7D3RZlM6Hp.md b/src/data/roadmaps/ios/content/presenting--dismissing-views@4pmjLa7WvwV7D3RZlM6Hp.md new file mode 100644 index 000000000000..78f3e7efef99 --- /dev/null +++ b/src/data/roadmaps/ios/content/presenting--dismissing-views@4pmjLa7WvwV7D3RZlM6Hp.md @@ -0,0 +1 @@ +# Presenting / Dismissing views \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/profiling-instruments@Y24WWPej0C7-FiBeXpvl3.md b/src/data/roadmaps/ios/content/profiling-instruments@Y24WWPej0C7-FiBeXpvl3.md new file mode 100644 index 000000000000..bf60b2b252e1 --- /dev/null +++ b/src/data/roadmaps/ios/content/profiling-instruments@Y24WWPej0C7-FiBeXpvl3.md @@ -0,0 +1 @@ +# Profiling Instruments \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/project-files@YytdlQl41yrHSwlV-G3Pd.md b/src/data/roadmaps/ios/content/project-files@YytdlQl41yrHSwlV-G3Pd.md new file mode 100644 index 000000000000..a09a35fd312c --- /dev/null +++ b/src/data/roadmaps/ios/content/project-files@YytdlQl41yrHSwlV-G3Pd.md @@ -0,0 +1 @@ +# Project Files \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/publishers--subscribers@noBaDV_PvCTzqPyw9eO4H.md b/src/data/roadmaps/ios/content/publishers--subscribers@noBaDV_PvCTzqPyw9eO4H.md new file mode 100644 index 000000000000..cb454fd7b3f4 --- /dev/null +++ b/src/data/roadmaps/ios/content/publishers--subscribers@noBaDV_PvCTzqPyw9eO4H.md @@ -0,0 +1 @@ +# Publishers / Subscribers \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/pushing-presenting@gqd6zjxP_qFj4Ru-6LARo.md b/src/data/roadmaps/ios/content/pushing-presenting@gqd6zjxP_qFj4Ru-6LARo.md new file mode 100644 index 000000000000..c093c278500b --- /dev/null +++ b/src/data/roadmaps/ios/content/pushing-presenting@gqd6zjxP_qFj4Ru-6LARo.md @@ -0,0 +1 @@ +# Pushing Presenting \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/reactive-programming@28HMXXBJWd3n-ZPgeQRDa.md b/src/data/roadmaps/ios/content/reactive-programming@28HMXXBJWd3n-ZPgeQRDa.md new file mode 100644 index 000000000000..f70e22e389dc --- /dev/null +++ b/src/data/roadmaps/ios/content/reactive-programming@28HMXXBJWd3n-ZPgeQRDa.md @@ -0,0 +1 @@ +# Reactive Programming \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/rest@3Qw-qmy5iAE61mPbIY4Q2.md b/src/data/roadmaps/ios/content/rest@3Qw-qmy5iAE61mPbIY4Q2.md new file mode 100644 index 000000000000..e1a7c1cc4ee2 --- /dev/null +++ b/src/data/roadmaps/ios/content/rest@3Qw-qmy5iAE61mPbIY4Q2.md @@ -0,0 +1 @@ +# REST \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/rxswift-with-mvvm@g_1f5a6tIB5V_36NjgtL5.md b/src/data/roadmaps/ios/content/rxswift-with-mvvm@g_1f5a6tIB5V_36NjgtL5.md new file mode 100644 index 000000000000..58b2f21caf8c --- /dev/null +++ b/src/data/roadmaps/ios/content/rxswift-with-mvvm@g_1f5a6tIB5V_36NjgtL5.md @@ -0,0 +1 @@ +# RxSwift with MVVM \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/rxswift@0xwoWj9jek36p1AwU3WkK.md b/src/data/roadmaps/ios/content/rxswift@0xwoWj9jek36p1AwU3WkK.md new file mode 100644 index 000000000000..2095cb3262d5 --- /dev/null +++ b/src/data/roadmaps/ios/content/rxswift@0xwoWj9jek36p1AwU3WkK.md @@ -0,0 +1 @@ +# RxSwift \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/schedulers@UqA01PT86_w_JzN6KZBku.md b/src/data/roadmaps/ios/content/schedulers@UqA01PT86_w_JzN6KZBku.md new file mode 100644 index 000000000000..0d92f83f7978 --- /dev/null +++ b/src/data/roadmaps/ios/content/schedulers@UqA01PT86_w_JzN6KZBku.md @@ -0,0 +1 @@ +# Schedulers \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/serializing@8rYjSCgRiJMHTNxOU6vgG.md b/src/data/roadmaps/ios/content/serializing@8rYjSCgRiJMHTNxOU6vgG.md new file mode 100644 index 000000000000..8b8755b7cf8b --- /dev/null +++ b/src/data/roadmaps/ios/content/serializing@8rYjSCgRiJMHTNxOU6vgG.md @@ -0,0 +1 @@ +# Serializing \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/sqlite@3qjQbrCUchJn1bJTBWrQF.md b/src/data/roadmaps/ios/content/sqlite@3qjQbrCUchJn1bJTBWrQF.md new file mode 100644 index 000000000000..64d1d7121307 --- /dev/null +++ b/src/data/roadmaps/ios/content/sqlite@3qjQbrCUchJn1bJTBWrQF.md @@ -0,0 +1 @@ +# SQLite \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/state-management@RvyOkQelc-GChQGJyEx72.md b/src/data/roadmaps/ios/content/state-management@RvyOkQelc-GChQGJyEx72.md new file mode 100644 index 000000000000..f920d142dd72 --- /dev/null +++ b/src/data/roadmaps/ios/content/state-management@RvyOkQelc-GChQGJyEx72.md @@ -0,0 +1 @@ +# State Management \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/static-library@RuXuHQhMt2nywk43LgGeJ.md b/src/data/roadmaps/ios/content/static-library@RuXuHQhMt2nywk43LgGeJ.md new file mode 100644 index 000000000000..d6d84c420f66 --- /dev/null +++ b/src/data/roadmaps/ios/content/static-library@RuXuHQhMt2nywk43LgGeJ.md @@ -0,0 +1 @@ +# Static Library \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/stepping@hUHxlNa6iJJbDGdFNhynB.md b/src/data/roadmaps/ios/content/stepping@hUHxlNa6iJJbDGdFNhynB.md new file mode 100644 index 000000000000..c7c0c03c6833 --- /dev/null +++ b/src/data/roadmaps/ios/content/stepping@hUHxlNa6iJJbDGdFNhynB.md @@ -0,0 +1 @@ +# Stepping \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/storyboards@a2CqrCJSxGfHq6_Y9f_re.md b/src/data/roadmaps/ios/content/storyboards@a2CqrCJSxGfHq6_Y9f_re.md new file mode 100644 index 000000000000..56644e3a9194 --- /dev/null +++ b/src/data/roadmaps/ios/content/storyboards@a2CqrCJSxGfHq6_Y9f_re.md @@ -0,0 +1 @@ +# Storyboards \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/subjects@1xYZdnlI6JSJzNvmz4-0v.md b/src/data/roadmaps/ios/content/subjects@1xYZdnlI6JSJzNvmz4-0v.md new file mode 100644 index 000000000000..0e54a09eee75 --- /dev/null +++ b/src/data/roadmaps/ios/content/subjects@1xYZdnlI6JSJzNvmz4-0v.md @@ -0,0 +1 @@ +# Subjects \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/swift-basics@fboebSmquyJyozsMRJDtK.md b/src/data/roadmaps/ios/content/swift-basics@fboebSmquyJyozsMRJDtK.md new file mode 100644 index 000000000000..21ebc5ca6c5e --- /dev/null +++ b/src/data/roadmaps/ios/content/swift-basics@fboebSmquyJyozsMRJDtK.md @@ -0,0 +1 @@ +# Swift Basics \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/swift-package-manager@KFkX8_Hv9SCFeCtZMZIQM.md b/src/data/roadmaps/ios/content/swift-package-manager@KFkX8_Hv9SCFeCtZMZIQM.md new file mode 100644 index 000000000000..16d222643e37 --- /dev/null +++ b/src/data/roadmaps/ios/content/swift-package-manager@KFkX8_Hv9SCFeCtZMZIQM.md @@ -0,0 +1 @@ +# Swift Package Manager \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/swift-recommended@KJ7fM-V0_azY_lzmhjJAN.md b/src/data/roadmaps/ios/content/swift-recommended@KJ7fM-V0_azY_lzmhjJAN.md new file mode 100644 index 000000000000..b9720211231b --- /dev/null +++ b/src/data/roadmaps/ios/content/swift-recommended@KJ7fM-V0_azY_lzmhjJAN.md @@ -0,0 +1 @@ +# Swift (Recommended) \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/swift-ui@PvFp6aY7EUrYHn87RZAGj.md b/src/data/roadmaps/ios/content/swift-ui@PvFp6aY7EUrYHn87RZAGj.md new file mode 100644 index 000000000000..0e9c48388fa3 --- /dev/null +++ b/src/data/roadmaps/ios/content/swift-ui@PvFp6aY7EUrYHn87RZAGj.md @@ -0,0 +1 @@ +# Swift UI \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/swift-ui@kAIKsDcDzwI1E0wSnC_uo.md b/src/data/roadmaps/ios/content/swift-ui@kAIKsDcDzwI1E0wSnC_uo.md new file mode 100644 index 000000000000..0e9c48388fa3 --- /dev/null +++ b/src/data/roadmaps/ios/content/swift-ui@kAIKsDcDzwI1E0wSnC_uo.md @@ -0,0 +1 @@ +# Swift UI \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/swiftformat@TMFvfwG45Z00PzrzZIVhT.md b/src/data/roadmaps/ios/content/swiftformat@TMFvfwG45Z00PzrzZIVhT.md new file mode 100644 index 000000000000..170335b735e7 --- /dev/null +++ b/src/data/roadmaps/ios/content/swiftformat@TMFvfwG45Z00PzrzZIVhT.md @@ -0,0 +1 @@ +# SwiftFormat \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/swiftlint@NnTC3R8goZQTXHmfHKHbM.md b/src/data/roadmaps/ios/content/swiftlint@NnTC3R8goZQTXHmfHKHbM.md new file mode 100644 index 000000000000..e00295c27651 --- /dev/null +++ b/src/data/roadmaps/ios/content/swiftlint@NnTC3R8goZQTXHmfHKHbM.md @@ -0,0 +1 @@ +# SwiftLint \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/tailor@F5796wzm5Ar6sQt-1y8vH.md b/src/data/roadmaps/ios/content/tailor@F5796wzm5Ar6sQt-1y8vH.md new file mode 100644 index 000000000000..1687600a7a4e --- /dev/null +++ b/src/data/roadmaps/ios/content/tailor@F5796wzm5Ar6sQt-1y8vH.md @@ -0,0 +1 @@ +# Tailor \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/tca@NhC0SBZgUFGjMLNICvbTI.md b/src/data/roadmaps/ios/content/tca@NhC0SBZgUFGjMLNICvbTI.md new file mode 100644 index 000000000000..2f4fd001e73f --- /dev/null +++ b/src/data/roadmaps/ios/content/tca@NhC0SBZgUFGjMLNICvbTI.md @@ -0,0 +1 @@ +# TCA \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/test-plan--coverage@uczkyc30K_qqcarZCGTdF.md b/src/data/roadmaps/ios/content/test-plan--coverage@uczkyc30K_qqcarZCGTdF.md new file mode 100644 index 000000000000..d90bc3d7a8a6 --- /dev/null +++ b/src/data/roadmaps/ios/content/test-plan--coverage@uczkyc30K_qqcarZCGTdF.md @@ -0,0 +1 @@ +# Test Plan & Coverage \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/testflight@KCJgCjMJGxIcf13XSEclO.md b/src/data/roadmaps/ios/content/testflight@KCJgCjMJGxIcf13XSEclO.md new file mode 100644 index 000000000000..cf7ad91b6111 --- /dev/null +++ b/src/data/roadmaps/ios/content/testflight@KCJgCjMJGxIcf13XSEclO.md @@ -0,0 +1 @@ +# TestFlight \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/toolbar@AxQ5gCjk136kXsbBFTUNp.md b/src/data/roadmaps/ios/content/toolbar@AxQ5gCjk136kXsbBFTUNp.md new file mode 100644 index 000000000000..66cb031b30d8 --- /dev/null +++ b/src/data/roadmaps/ios/content/toolbar@AxQ5gCjk136kXsbBFTUNp.md @@ -0,0 +1 @@ +# Toolbar \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/ui-design@4fPgpGwNXmVoZoruBRb_B.md b/src/data/roadmaps/ios/content/ui-design@4fPgpGwNXmVoZoruBRb_B.md new file mode 100644 index 000000000000..564827d4f2f0 --- /dev/null +++ b/src/data/roadmaps/ios/content/ui-design@4fPgpGwNXmVoZoruBRb_B.md @@ -0,0 +1 @@ +# UI Design \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/ui-kit@-7OW2IgiMk1eot1PaYd7m.md b/src/data/roadmaps/ios/content/ui-kit@-7OW2IgiMk1eot1PaYd7m.md new file mode 100644 index 000000000000..37e8a19dfab7 --- /dev/null +++ b/src/data/roadmaps/ios/content/ui-kit@-7OW2IgiMk1eot1PaYd7m.md @@ -0,0 +1 @@ +# UI Kit \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/ui-kit@pNEE5C1E1wAjH_nTlzH6N.md b/src/data/roadmaps/ios/content/ui-kit@pNEE5C1E1wAjH_nTlzH6N.md new file mode 100644 index 000000000000..37e8a19dfab7 --- /dev/null +++ b/src/data/roadmaps/ios/content/ui-kit@pNEE5C1E1wAjH_nTlzH6N.md @@ -0,0 +1 @@ +# UI Kit \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/understanding-and-using-closures@5V7nxQKmmHWSMSBCRxkaF.md b/src/data/roadmaps/ios/content/understanding-and-using-closures@5V7nxQKmmHWSMSBCRxkaF.md new file mode 100644 index 000000000000..d39cd8da41ab --- /dev/null +++ b/src/data/roadmaps/ios/content/understanding-and-using-closures@5V7nxQKmmHWSMSBCRxkaF.md @@ -0,0 +1 @@ +# Understanding and using Closures \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/unit--ui-testing@5589B1DKaCd-9l9DfKH3o.md b/src/data/roadmaps/ios/content/unit--ui-testing@5589B1DKaCd-9l9DfKH3o.md new file mode 100644 index 000000000000..405b17b19247 --- /dev/null +++ b/src/data/roadmaps/ios/content/unit--ui-testing@5589B1DKaCd-9l9DfKH3o.md @@ -0,0 +1 @@ +# Unit & UI Testing \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/urlsession@WPJACNeI6jX9GGB1roeTp.md b/src/data/roadmaps/ios/content/urlsession@WPJACNeI6jX9GGB1roeTp.md new file mode 100644 index 000000000000..77d616b34790 --- /dev/null +++ b/src/data/roadmaps/ios/content/urlsession@WPJACNeI6jX9GGB1roeTp.md @@ -0,0 +1 @@ +# URLSession \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/user-defaults@ImS1FqVicQImMw-y1ze7y.md b/src/data/roadmaps/ios/content/user-defaults@ImS1FqVicQImMw-y1ze7y.md new file mode 100644 index 000000000000..9842cc0690f4 --- /dev/null +++ b/src/data/roadmaps/ios/content/user-defaults@ImS1FqVicQImMw-y1ze7y.md @@ -0,0 +1 @@ +# User Defaults \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/user-interactions@GKuxilB0AwjcTgCSk3FeU.md b/src/data/roadmaps/ios/content/user-interactions@GKuxilB0AwjcTgCSk3FeU.md new file mode 100644 index 000000000000..e080ed272500 --- /dev/null +++ b/src/data/roadmaps/ios/content/user-interactions@GKuxilB0AwjcTgCSk3FeU.md @@ -0,0 +1 @@ +# User Interactions \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/version-control@sGnDm2xuJxqfU3pwmlY7H.md b/src/data/roadmaps/ios/content/version-control@sGnDm2xuJxqfU3pwmlY7H.md new file mode 100644 index 000000000000..efb76c207d8f --- /dev/null +++ b/src/data/roadmaps/ios/content/version-control@sGnDm2xuJxqfU3pwmlY7H.md @@ -0,0 +1 @@ +# Version Control \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/view-controllers@mfWdkUm1RhjygtMyInXiD.md b/src/data/roadmaps/ios/content/view-controllers@mfWdkUm1RhjygtMyInXiD.md new file mode 100644 index 000000000000..58113fffe6bb --- /dev/null +++ b/src/data/roadmaps/ios/content/view-controllers@mfWdkUm1RhjygtMyInXiD.md @@ -0,0 +1 @@ +# View Controllers \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/view-transitions@2tmR1yE5daz2HB4IV5qwI.md b/src/data/roadmaps/ios/content/view-transitions@2tmR1yE5daz2HB4IV5qwI.md new file mode 100644 index 000000000000..f5246ecaf425 --- /dev/null +++ b/src/data/roadmaps/ios/content/view-transitions@2tmR1yE5daz2HB4IV5qwI.md @@ -0,0 +1 @@ +# View Transitions \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/view-transitions@cwVcNDTBBulBY2m4Wzn4G.md b/src/data/roadmaps/ios/content/view-transitions@cwVcNDTBBulBY2m4Wzn4G.md new file mode 100644 index 000000000000..f5246ecaf425 --- /dev/null +++ b/src/data/roadmaps/ios/content/view-transitions@cwVcNDTBBulBY2m4Wzn4G.md @@ -0,0 +1 @@ +# View Transitions \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/viewcontroller-lifecycle@DZaY060-5D6PbfryOZH9H.md b/src/data/roadmaps/ios/content/viewcontroller-lifecycle@DZaY060-5D6PbfryOZH9H.md new file mode 100644 index 000000000000..67765efd13cf --- /dev/null +++ b/src/data/roadmaps/ios/content/viewcontroller-lifecycle@DZaY060-5D6PbfryOZH9H.md @@ -0,0 +1 @@ +# ViewController Lifecycle \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/views-and-modifiers@mgUCYztUpKINqIZikT4Bh.md b/src/data/roadmaps/ios/content/views-and-modifiers@mgUCYztUpKINqIZikT4Bh.md new file mode 100644 index 000000000000..e9fb51e0a5d8 --- /dev/null +++ b/src/data/roadmaps/ios/content/views-and-modifiers@mgUCYztUpKINqIZikT4Bh.md @@ -0,0 +1 @@ +# Views and Modifiers \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/views-view-controllers@XX5rCd_yTHvOfYif4Kpbl.md b/src/data/roadmaps/ios/content/views-view-controllers@XX5rCd_yTHvOfYif4Kpbl.md new file mode 100644 index 000000000000..ea695c0706d2 --- /dev/null +++ b/src/data/roadmaps/ios/content/views-view-controllers@XX5rCd_yTHvOfYif4Kpbl.md @@ -0,0 +1 @@ +# Views, View Controllers \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/views@se9w7mT1XJLGlmWUhH4Uv.md b/src/data/roadmaps/ios/content/views@se9w7mT1XJLGlmWUhH4Uv.md new file mode 100644 index 000000000000..c2cd4746da78 --- /dev/null +++ b/src/data/roadmaps/ios/content/views@se9w7mT1XJLGlmWUhH4Uv.md @@ -0,0 +1 @@ +# Views \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/viper@mTdnDPGYSDupM9VBNdXRg.md b/src/data/roadmaps/ios/content/viper@mTdnDPGYSDupM9VBNdXRg.md new file mode 100644 index 000000000000..7a6cfb48646d --- /dev/null +++ b/src/data/roadmaps/ios/content/viper@mTdnDPGYSDupM9VBNdXRg.md @@ -0,0 +1 @@ +# VIPER \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/voice-over@trAMZVA4tDB7b_qAgiWNW.md b/src/data/roadmaps/ios/content/voice-over@trAMZVA4tDB7b_qAgiWNW.md new file mode 100644 index 000000000000..6e7d079a69b6 --- /dev/null +++ b/src/data/roadmaps/ios/content/voice-over@trAMZVA4tDB7b_qAgiWNW.md @@ -0,0 +1 @@ +# Voice Over \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/xcframework@MaHtZSIPxDzrnB33_9OdV.md b/src/data/roadmaps/ios/content/xcframework@MaHtZSIPxDzrnB33_9OdV.md new file mode 100644 index 000000000000..7a0aaf28f19a --- /dev/null +++ b/src/data/roadmaps/ios/content/xcframework@MaHtZSIPxDzrnB33_9OdV.md @@ -0,0 +1 @@ +# XCFramework \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/xcode-debugger@WxshXCloVDkVkQV0JvI1w.md b/src/data/roadmaps/ios/content/xcode-debugger@WxshXCloVDkVkQV0JvI1w.md new file mode 100644 index 000000000000..5340345b92c9 --- /dev/null +++ b/src/data/roadmaps/ios/content/xcode-debugger@WxshXCloVDkVkQV0JvI1w.md @@ -0,0 +1 @@ +# XCode Debugger \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/xcode@la5M4VoH79bhnN8qj5Izp.md b/src/data/roadmaps/ios/content/xcode@la5M4VoH79bhnN8qj5Izp.md new file mode 100644 index 000000000000..b45d6f4144ef --- /dev/null +++ b/src/data/roadmaps/ios/content/xcode@la5M4VoH79bhnN8qj5Izp.md @@ -0,0 +1 @@ +# XCode \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/xctest@xZmBJVq5FHNdm1BDuZbbS.md b/src/data/roadmaps/ios/content/xctest@xZmBJVq5FHNdm1BDuZbbS.md new file mode 100644 index 000000000000..04c163291dbe --- /dev/null +++ b/src/data/roadmaps/ios/content/xctest@xZmBJVq5FHNdm1BDuZbbS.md @@ -0,0 +1 @@ +# XCTest \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/xcuitest@ZQSUKPbXZl5yKra2ap8JR.md b/src/data/roadmaps/ios/content/xcuitest@ZQSUKPbXZl5yKra2ap8JR.md new file mode 100644 index 000000000000..180457a2a484 --- /dev/null +++ b/src/data/roadmaps/ios/content/xcuitest@ZQSUKPbXZl5yKra2ap8JR.md @@ -0,0 +1 @@ +# XCUITest \ No newline at end of file diff --git a/src/data/roadmaps/ios/content/xibs@RwvC4Pi18_1phcrJL-9iu.md b/src/data/roadmaps/ios/content/xibs@RwvC4Pi18_1phcrJL-9iu.md new file mode 100644 index 000000000000..53f2eab648da --- /dev/null +++ b/src/data/roadmaps/ios/content/xibs@RwvC4Pi18_1phcrJL-9iu.md @@ -0,0 +1 @@ +# Xibs \ No newline at end of file diff --git a/src/data/roadmaps/ios/faqs.astro b/src/data/roadmaps/ios/faqs.astro new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/src/data/roadmaps/ios/ios.json b/src/data/roadmaps/ios/ios.json new file mode 100644 index 000000000000..500fabcaa46a --- /dev/null +++ b/src/data/roadmaps/ios/ios.json @@ -0,0 +1 @@ +{"nodes":[{"id":"cNHT9S13pLinAI8snYcRj","type":"vertical","position":{"x":55.97857612108493,"y":4570.871616221306},"selected":true,"data":{"label":"vertical node","style":{"stroke":"#2B78E4","strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5}},"zIndex":999,"width":20,"height":79,"positionAbsolute":{"x":55.97857612108493,"y":4570.871616221306},"dragging":false,"style":{"width":20,"height":79},"resizing":false,"focusable":true,"selectable":true},{"id":"tBybxRQEnlt6VuyTyCJD7","type":"section","position":{"x":395.87947885298604,"y":1984.4741149111323},"selected":true,"data":{"label":"","style":{"width":150,"height":100,"fontSize":17}},"zIndex":-999,"width":287,"height":175,"style":{"width":287,"height":175},"positionAbsolute":{"x":395.87947885298604,"y":1984.4741149111323},"dragging":false,"resizing":false,"selectable":true,"focusable":true},{"id":"CFx-6pflED10ZqubRgROI","type":"section","position":{"x":-452.94020544189317,"y":235.29278944033769},"selected":true,"data":{"label":"","style":{"width":150,"height":100,"fontSize":17,"backgroundColor":"WHITe","borderColor":"BLACk"}},"zIndex":-999,"width":233,"height":367,"style":{"width":233,"height":367},"positionAbsolute":{"x":-452.94020544189317,"y":235.29278944033769},"dragging":false,"resizing":false,"focusable":true,"selectable":true},{"id":"-PDYmhSQlGbLLFBJQ-Fo3","type":"title","position":{"x":-65.52142387891507,"y":-221.8160596822612},"selected":true,"data":{"label":"iOS Developer","style":{"fontSize":28,"justifyContent":"flex-start","textAlign":"center"}},"zIndex":999,"width":223,"height":68,"positionAbsolute":{"x":-65.52142387891507,"y":-221.8160596822612},"dragging":false,"selectable":true,"focusable":true},{"id":"C9JZEtVtDFfhmw6DuHtcx","type":"vertical","position":{"x":35.97857612108493,"y":-331.8160596822612},"selected":true,"data":{"label":"vertical node","style":{"stroke":"#2B78E4","strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5}},"zIndex":999,"width":20,"height":110,"positionAbsolute":{"x":35.97857612108493,"y":-331.8160596822612},"dragging":false,"style":{"width":20,"height":110},"resizing":false,"selectable":true,"focusable":true},{"id":"KJ7fM-V0_azY_lzmhjJAN","type":"topic","position":{"x":295.84855504521215,"y":39.1237926752016},"selected":true,"data":{"label":"Swift (Recommended)","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"IAPzuN51xvrZJ5TFB23Q9"},"zIndex":999,"width":266,"height":49,"style":{"width":266,"height":49},"resizing":false,"positionAbsolute":{"x":295.84855504521215,"y":39.1237926752016},"dragging":false,"selectable":true,"focusable":true},{"id":"z4-1Gc95JKYAn2RPFc7hw","type":"subtopic","position":{"x":295.84855504521215,"y":129.94367147316427},"selected":true,"data":{"label":"History and Why Swift?","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"IAPzuN51xvrZJ5TFB23Q9"},"zIndex":999,"width":266,"height":49,"style":{"width":266,"height":49},"resizing":false,"positionAbsolute":{"x":295.84855504521215,"y":129.94367147316427},"dragging":false,"selectable":true,"focusable":true},{"id":"ZkNulHQAqhiFTO3CRC_mW","type":"subtopic","position":{"x":295.84855504521215,"y":182.73553909492603},"selected":true,"data":{"label":"Benefits over Objective-C","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"fboebSmquyJyozsMRJDtK"},"zIndex":999,"width":266,"height":49,"style":{"width":266,"height":49},"resizing":false,"positionAbsolute":{"x":295.84855504521215,"y":182.73553909492603},"dragging":false,"selectable":true,"focusable":true},{"id":"fboebSmquyJyozsMRJDtK","type":"subtopic","position":{"x":295.84855504521215,"y":235.52740671668778},"selected":true,"data":{"label":"Swift Basics","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"IAPzuN51xvrZJ5TFB23Q9"},"zIndex":999,"width":266,"height":49,"style":{"width":266,"height":49},"resizing":false,"positionAbsolute":{"x":295.84855504521215,"y":235.52740671668778},"dragging":false,"selectable":true,"focusable":true},{"id":"oOaMz9A5DZvrjxovMztXz","type":"topic","position":{"x":295.84855504521215,"y":-25.00135297003726},"selected":true,"data":{"label":"Objective-C","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"mk02yV7_XHkgp2xdNIxaU"},"zIndex":999,"width":266,"height":49,"style":{"width":266,"height":49},"resizing":false,"positionAbsolute":{"x":295.84855504521215,"y":-25.00135297003726},"dragging":false,"selectable":true,"focusable":true},{"id":"0BSX80W1TJ_Ia_Zh2zKyK","type":"subtopic","position":{"x":295.84855504521215,"y":-102.33318300332917},"selected":true,"data":{"label":"Objective-C Basics","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"aALIiAxKz4f7B_EYyhBCi"},"zIndex":999,"width":266,"height":52,"style":{"width":266,"height":52},"resizing":false,"positionAbsolute":{"x":295.84855504521215,"y":-102.33318300332917},"dragging":false,"selectable":true,"focusable":true},{"id":"IAPzuN51xvrZJ5TFB23Q9","type":"subtopic","position":{"x":295.84855504521215,"y":-158.8160596822612},"selected":true,"data":{"label":"Interoperability with Swift","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"sEBLtbSm478D0XCSpu5mC"},"zIndex":999,"width":266,"height":49,"style":{"width":266,"height":49},"resizing":false,"positionAbsolute":{"x":295.84855504521215,"y":-158.8160596822612},"dragging":false,"selectable":true,"focusable":true},{"id":"yHmHXymPNWwu8p1vvqD3o","type":"paragraph","position":{"x":289.2253434939207,"y":-344.984004153963},"selected":true,"data":{"label":"Find the interactive version of this roadmap and other similar roadmaps","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"left","borderColor":"#000000","backgroundColor":"WHITe"}},"zIndex":999,"width":321,"height":141,"positionAbsolute":{"x":289.2253434939207,"y":-344.984004153963},"dragging":false,"selectable":true,"focusable":true,"style":{"width":321,"height":141},"resizing":false},{"id":"2zqZkyVgigifcRS1H7F_b","type":"button","position":{"x":299.2253434939207,"y":-265.8160596822612},"selected":true,"data":{"label":"roadmap.sh","href":"https://roadmap.sh","color":"#ffffff","backgroundColor":"#2a79e4","style":{"fontSize":17}},"zIndex":999,"width":301,"height":49,"dragging":false,"style":{"width":301,"height":49},"resizing":false,"positionAbsolute":{"x":299.2253434939207,"y":-265.8160596822612},"selectable":true,"focusable":true},{"id":"IduGSdUa2Fi7VFMLKgmsS","type":"topic","position":{"x":-444.44020544189317,"y":92.60823351977297},"selected":true,"data":{"label":"iOS Architecture","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"mk02yV7_XHkgp2xdNIxaU"},"zIndex":999,"width":214,"height":49,"style":{"width":214,"height":49},"resizing":false,"positionAbsolute":{"x":-444.44020544189317,"y":92.60823351977297},"dragging":false,"selectable":true,"focusable":true},{"id":"IdGdLNgJI3WmONEFsMq-d","type":"subtopic","position":{"x":-444.44020544189317,"y":-144.7145767132705},"selected":true,"data":{"label":"Core OS","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"5VguZoP4h40rTWkxWxaxU"},"zIndex":999,"width":214,"height":49,"positionAbsolute":{"x":-444.44020544189317,"y":-144.7145767132705},"dragging":false,"style":{"width":214,"height":49},"resizing":false,"selectable":true,"focusable":true},{"id":"LHM7gNgTtfn_QDW-oQskD","type":"subtopic","position":{"x":-444.44020544189317,"y":-90.7145767132705},"selected":true,"data":{"label":"Core Services","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"leozxW-5fAOfkKbQM4FD1"},"zIndex":999,"width":214,"height":49,"positionAbsolute":{"x":-444.44020544189317,"y":-90.7145767132705},"dragging":false,"selectable":true,"focusable":true,"style":{"width":214,"height":49},"resizing":false},{"id":"nGCG74_Xp_Ngt0u7PZnZl","type":"subtopic","position":{"x":-452.94020544189317,"y":212.43217122784745},"selected":true,"data":{"label":"Media","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"5VguZoP4h40rTWkxWxaxU"},"zIndex":999,"width":233,"height":49,"positionAbsolute":{"x":-452.94020544189317,"y":212.43217122784745},"dragging":false,"selectable":true,"focusable":true,"style":{"width":233,"height":49},"resizing":false},{"id":"kRE9xT3mT9Si4NwJr9yGi","type":"subtopic","position":{"x":-439.94020544189317,"y":271.43217122784745},"selected":true,"data":{"label":"Core Graphics","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"5VguZoP4h40rTWkxWxaxU"},"zIndex":999,"width":205,"height":49,"positionAbsolute":{"x":-439.94020544189317,"y":271.43217122784745},"dragging":false,"selectable":true,"focusable":true,"style":{"width":205,"height":49},"resizing":false},{"id":"_mRs6ctH0IsSSi-cwV2b8","type":"subtopic","position":{"x":-439.94020544189317,"y":325.43217122784745},"selected":true,"data":{"label":"Core Animation","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"5VguZoP4h40rTWkxWxaxU"},"zIndex":999,"width":205,"height":49,"positionAbsolute":{"x":-439.94020544189317,"y":325.43217122784745},"dragging":false,"selectable":true,"focusable":true,"style":{"width":205,"height":49},"resizing":false},{"id":"UKgiSQvR9cryQT50t7riZ","type":"subtopic","position":{"x":-439.94020544189317,"y":379.43217122784745},"selected":true,"data":{"label":"AV Foundation","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"5VguZoP4h40rTWkxWxaxU"},"zIndex":999,"width":205,"height":49,"positionAbsolute":{"x":-439.94020544189317,"y":379.43217122784745},"dragging":false,"selectable":true,"focusable":true,"style":{"width":205,"height":49},"resizing":false},{"id":"6zE_M0_oVpwW0B9qFSRgP","type":"subtopic","position":{"x":-439.94020544189317,"y":433.43217122784745},"selected":true,"data":{"label":"Core Image","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"5VguZoP4h40rTWkxWxaxU"},"zIndex":999,"width":205,"height":49,"positionAbsolute":{"x":-439.94020544189317,"y":433.43217122784745},"dragging":false,"selectable":true,"focusable":true,"style":{"width":205,"height":49},"resizing":false},{"id":"4bAABCfTvxchS5C5NlAro","type":"subtopic","position":{"x":-439.94020544189317,"y":487.43217122784745},"selected":true,"data":{"label":"Core Audio","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"5VguZoP4h40rTWkxWxaxU"},"zIndex":999,"width":205,"height":49,"positionAbsolute":{"x":-439.94020544189317,"y":487.43217122784745},"dragging":false,"selectable":true,"focusable":true,"style":{"width":205,"height":49},"resizing":false},{"id":"5VguZoP4h40rTWkxWxaxU","type":"subtopic","position":{"x":-439.94020544189317,"y":541.4321712278474},"selected":true,"data":{"label":"Meta","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"}},"zIndex":999,"width":205,"height":49,"positionAbsolute":{"x":-439.94020544189317,"y":541.4321712278474},"dragging":false,"selectable":true,"focusable":true,"style":{"width":205,"height":49},"resizing":false},{"id":"leozxW-5fAOfkKbQM4FD1","type":"subtopic","position":{"x":-444.44020544189317,"y":-36.7145767132705},"selected":true,"data":{"label":"Cocoa Touch","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"5VguZoP4h40rTWkxWxaxU"},"zIndex":999,"width":214,"height":49,"positionAbsolute":{"x":-444.44020544189317,"y":-36.7145767132705},"dragging":false,"selectable":true,"focusable":true,"style":{"width":214,"height":49},"resizing":false},{"id":"mk02yV7_XHkgp2xdNIxaU","type":"topic","position":{"x":-89.02142387891507,"y":460.9618613870708},"selected":true,"data":{"label":"Core Programming Concepts","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"KJ7fM-V0_azY_lzmhjJAN"},"zIndex":999,"width":270,"height":49,"style":{"width":270,"height":49},"resizing":false,"positionAbsolute":{"x":-89.02142387891507,"y":460.9618613870708},"dragging":false,"selectable":true,"focusable":true},{"id":"FoqlB7xBIrV4yUp4ReBkw","type":"subtopic","position":{"x":295.00302013003466,"y":338.4753455166559},"selected":true,"data":{"label":"OOP","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"aALIiAxKz4f7B_EYyhBCi"},"zIndex":999,"width":323,"height":49,"style":{"width":323,"height":49},"resizing":false,"positionAbsolute":{"x":295.00302013003466,"y":338.4753455166559},"dragging":false,"selectable":true,"focusable":true},{"id":"Pj-hqRZUmwx1WhmTbLoFD","type":"subtopic","position":{"x":295.00302013003466,"y":392.4753455166559},"selected":true,"data":{"label":"Functional Programming","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"aALIiAxKz4f7B_EYyhBCi"},"zIndex":999,"width":323,"height":49,"style":{"width":323,"height":49},"resizing":false,"positionAbsolute":{"x":295.00302013003466,"y":392.4753455166559},"dragging":false,"selectable":true,"focusable":true},{"id":"tqbg8mBJfjuXacdMlIB_L","type":"subtopic","position":{"x":295.00302013003466,"y":446.4753455166559},"selected":true,"data":{"label":"Memory Management","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"aALIiAxKz4f7B_EYyhBCi"},"zIndex":999,"width":323,"height":50,"style":{"width":323,"height":50},"resizing":false,"positionAbsolute":{"x":295.00302013003466,"y":446.4753455166559},"dragging":false,"selectable":true,"focusable":true},{"id":"DZaY060-5D6PbfryOZH9H","type":"subtopic","position":{"x":295.00302013003466,"y":500.4753455166559},"selected":true,"data":{"label":"ViewController Lifecycle","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"aALIiAxKz4f7B_EYyhBCi"},"zIndex":999,"width":323,"height":49,"style":{"width":323,"height":49},"resizing":false,"positionAbsolute":{"x":295.00302013003466,"y":500.4753455166559},"dragging":false,"selectable":true,"focusable":true},{"id":"N5ojp6bqgH074MPKYjCHV","type":"subtopic","position":{"x":295.00302013003466,"y":555.4753455166559},"selected":true,"data":{"label":"Error Handling","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"aALIiAxKz4f7B_EYyhBCi"},"zIndex":999,"width":323,"height":49,"style":{"width":323,"height":49},"resizing":false,"positionAbsolute":{"x":295.00302013003466,"y":555.4753455166559},"dragging":false,"selectable":true,"focusable":true},{"id":"aALIiAxKz4f7B_EYyhBCi","type":"subtopic","position":{"x":295.00302013003466,"y":609.4753455166559},"selected":true,"data":{"label":"Concurrency (GCD, async/await)","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"IAPzuN51xvrZJ5TFB23Q9"},"zIndex":999,"width":323,"height":49,"style":{"width":323,"height":49},"resizing":false,"positionAbsolute":{"x":295.00302013003466,"y":609.4753455166559},"dragging":false,"selectable":true,"focusable":true},{"id":"rCxNgWI9qC60Dv6t9L18i","type":"paragraph","position":{"x":-487.4940790252072,"y":-344.984004153963},"selected":true,"data":{"label":"Special thanks to Dennis who helped publish the initial version of this roadmap.","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"left","borderColor":"BLACk","backgroundColor":"WHITe"},"oldId":"yHmHXymPNWwu8p1vvqD3o"},"zIndex":999,"width":357,"height":145,"positionAbsolute":{"x":-487.4940790252072,"y":-344.984004153963},"dragging":false,"selectable":true,"focusable":true,"style":{"width":357,"height":145},"resizing":false},{"id":"aajK9mfO6_Kt2uFS4pn-5","type":"button","position":{"x":-475.9940790252072,"y":-262.984004153963},"selected":true,"data":{"label":"Visit his LinkedIn","href":"https://www.linkedin.com/in/jungpyo-hong-2987891a1","color":"#ffffff","backgroundColor":"#636363","style":{"fontSize":17},"oldId":"2zqZkyVgigifcRS1H7F_b","borderColor":"#636363"},"zIndex":999,"width":333,"height":49,"dragging":false,"style":{"width":333,"height":49},"resizing":false,"positionAbsolute":{"x":-475.9940790252072,"y":-262.984004153963},"selectable":true,"focusable":true},{"id":"F2JD1zBrfcbWxlWkyE7aZ","type":"paragraph","position":{"x":-58.02142387891507,"y":193.13115882880976},"selected":true,"data":{"label":"The Fundamentals","style":{"fontSize":20,"justifyContent":"flex-start","textAlign":"left"},"oldId":"f9xhOYlU7xHiGXKuRK7BH"},"zIndex":999,"width":208,"height":69,"positionAbsolute":{"x":-58.02142387891507,"y":193.13115882880976},"dragging":false,"style":{"width":208,"height":69},"resizing":false,"selectable":true,"focusable":true},{"id":"MrdIb9F-wSEbUz7KRnH3t","type":"topic","position":{"x":-59.52142387891507,"y":8.832055528298142},"selected":true,"data":{"label":"Pick a Language","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"oOaMz9A5DZvrjxovMztXz"},"zIndex":999,"width":211,"height":49,"style":{"width":211,"height":49},"resizing":false,"positionAbsolute":{"x":-59.52142387891507,"y":8.832055528298142},"dragging":false,"selectable":true,"focusable":true},{"id":"sGnDm2xuJxqfU3pwmlY7H","type":"topic","position":{"x":-90.18801538057966,"y":640.2583638859841},"selected":true,"data":{"label":"Version Control","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"mk02yV7_XHkgp2xdNIxaU"},"zIndex":999,"width":270,"height":49,"style":{"width":270,"height":49},"resizing":false,"positionAbsolute":{"x":-90.18801538057966,"y":640.2583638859841},"dragging":false,"selectable":true,"focusable":true},{"id":"QifWR7WSJJTcTK2IfczxG","type":"subtopic","position":{"x":-455.99430452021335,"y":640.2583638859841},"selected":true,"data":{"label":"Git","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"a-QDI7Ei-B5BRHbicFcfG"},"zIndex":999,"width":117,"height":49,"style":{"width":117,"height":49},"resizing":false,"positionAbsolute":{"x":-455.99430452021335,"y":640.2583638859841},"dragging":false,"selectable":true,"focusable":true},{"id":"U_xXGSFF5iibQ4VkzPAWf","type":"subtopic","position":{"x":-331.6597685468469,"y":640.2583638859841},"selected":true,"data":{"label":"GitHub","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"QifWR7WSJJTcTK2IfczxG"},"zIndex":999,"width":118,"height":49,"style":{"width":118,"height":49},"resizing":false,"positionAbsolute":{"x":-331.6597685468469,"y":640.2583638859841},"dragging":false,"selectable":true,"focusable":true},{"id":"1AtH8yhL6W4S9eYZBaCHL","type":"paragraph","position":{"x":-56.52142387891507,"y":952.674316468536},"selected":true,"data":{"label":"App Components","style":{"fontSize":20,"justifyContent":"flex-start","textAlign":"left"},"oldId":"F2JD1zBrfcbWxlWkyE7aZ"},"zIndex":999,"width":208,"height":69,"positionAbsolute":{"x":-56.52142387891507,"y":952.674316468536},"dragging":false,"style":{"width":208,"height":69},"resizing":false,"selectable":true,"focusable":true},{"id":"la5M4VoH79bhnN8qj5Izp","type":"topic","position":{"x":-456.65690513478063,"y":963.8866530852562},"selected":true,"data":{"label":"XCode","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"sGnDm2xuJxqfU3pwmlY7H"},"zIndex":999,"width":153,"height":49,"style":{"width":153,"height":49},"resizing":false,"positionAbsolute":{"x":-456.65690513478063,"y":963.8866530852562},"dragging":false,"selectable":true,"focusable":true},{"id":"OMk0bZJacEbjIzspe6Xew","type":"paragraph","position":{"x":-450.65690513478063,"y":816.2880988555984},"selected":true,"data":{"label":"Setting Up","style":{"fontSize":20,"justifyContent":"flex-start","textAlign":"left"},"oldId":"1AtH8yhL6W4S9eYZBaCHL"},"zIndex":999,"width":141,"height":66,"positionAbsolute":{"x":-450.65690513478063,"y":816.2880988555984},"dragging":false,"style":{"width":141,"height":66},"resizing":false,"selectable":true,"focusable":true},{"id":"R8LdFpfyS0MFYJuMLk8RG","type":"subtopic","position":{"x":-216.3927038801816,"y":774.0609114171322},"selected":true,"data":{"label":"Installing","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"QifWR7WSJJTcTK2IfczxG"},"zIndex":999,"width":157,"height":49,"style":{"width":157,"height":49},"resizing":false,"positionAbsolute":{"x":-216.3927038801816,"y":774.0609114171322},"dragging":false,"selectable":true,"focusable":true},{"id":"SeGfULWFR7ufdv4U9Db3F","type":"subtopic","position":{"x":-216.3927038801816,"y":826.1201543838964},"selected":true,"data":{"label":"Preferences","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"R8LdFpfyS0MFYJuMLk8RG"},"zIndex":999,"width":157,"height":49,"style":{"width":157,"height":49},"resizing":false,"positionAbsolute":{"x":-216.3927038801816,"y":826.1201543838964},"dragging":false,"selectable":true,"focusable":true},{"id":"BJgoAgH85U6S3RtXq7hHV","type":"subtopic","position":{"x":-216.3927038801816,"y":878.1793973506607},"selected":true,"data":{"label":"New Project","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"SeGfULWFR7ufdv4U9Db3F"},"zIndex":999,"width":156,"height":49,"style":{"width":156,"height":49},"resizing":false,"positionAbsolute":{"x":-216.3927038801816,"y":878.1793973506607},"dragging":false,"selectable":true,"focusable":true},{"id":"eSLBtgpPec2Jz_Sjn6f5x","type":"paragraph","position":{"x":-451.8234966364452,"y":1162.2641963849399},"selected":true,"data":{"label":"Navigating","style":{"fontSize":20,"justifyContent":"flex-start","textAlign":"left"},"oldId":"OMk0bZJacEbjIzspe6Xew"},"zIndex":999,"width":141,"height":66,"positionAbsolute":{"x":-451.8234966364452,"y":1162.2641963849399},"dragging":false,"style":{"width":141,"height":66},"resizing":false,"selectable":true,"focusable":true},{"id":"FwwqAchMC6qdnXbqg45he","type":"subtopic","position":{"x":-232.71010223307604,"y":1041.3737998699025},"selected":true,"data":{"label":"Interface overview","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"R8LdFpfyS0MFYJuMLk8RG"},"zIndex":999,"width":191,"height":49,"style":{"width":191,"height":49},"resizing":false,"positionAbsolute":{"x":-232.71010223307604,"y":1041.3737998699025},"dragging":false,"selectable":true,"focusable":true},{"id":"AxQ5gCjk136kXsbBFTUNp","type":"subtopic","position":{"x":-232.71010223307604,"y":1092.7038259431447},"selected":true,"data":{"label":"Toolbar","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"FwwqAchMC6qdnXbqg45he"},"zIndex":999,"width":191,"height":49,"style":{"width":191,"height":49},"resizing":false,"positionAbsolute":{"x":-232.71010223307604,"y":1092.7038259431447},"dragging":false,"selectable":true,"focusable":true},{"id":"odKZx4SUULF1y4gmiJZdu","type":"subtopic","position":{"x":-232.71010223307604,"y":1144.0338520163868},"selected":true,"data":{"label":"Navigators","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"AxQ5gCjk136kXsbBFTUNp"},"zIndex":999,"width":191,"height":49,"style":{"width":191,"height":49},"resizing":false,"positionAbsolute":{"x":-232.71010223307604,"y":1144.0338520163868},"dragging":false,"selectable":true,"focusable":true},{"id":"-4q7MFXaTmpR_39PTeWD8","type":"subtopic","position":{"x":-232.71010223307604,"y":1195.363878089629},"selected":true,"data":{"label":"Editors","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"odKZx4SUULF1y4gmiJZdu"},"zIndex":999,"width":191,"height":49,"style":{"width":191,"height":49},"resizing":false,"positionAbsolute":{"x":-232.71010223307604,"y":1195.363878089629},"dragging":false,"selectable":true,"focusable":true},{"id":"YytdlQl41yrHSwlV-G3Pd","type":"subtopic","position":{"x":-232.71010223307604,"y":1246.6939041628711},"selected":true,"data":{"label":"Project Files","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"-4q7MFXaTmpR_39PTeWD8"},"zIndex":999,"width":191,"height":49,"style":{"width":191,"height":49},"resizing":false,"positionAbsolute":{"x":-232.71010223307604,"y":1246.6939041628711},"dragging":false,"selectable":true,"focusable":true},{"id":"42sfiLKrVCcnMMjR7TFn1","type":"subtopic","position":{"x":-232.71010223307604,"y":1298.0239302361133},"selected":true,"data":{"label":"Groups","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"YytdlQl41yrHSwlV-G3Pd"},"zIndex":999,"width":191,"height":49,"style":{"width":191,"height":49},"resizing":false,"positionAbsolute":{"x":-232.71010223307604,"y":1298.0239302361133},"dragging":false,"selectable":true,"focusable":true},{"id":"QrpJVLpZAREAPOC29fAYy","type":"paragraph","position":{"x":-450.65690513478063,"y":1412.2495392095361},"selected":true,"data":{"label":"Debugger","style":{"fontSize":20,"justifyContent":"flex-start","textAlign":"left"},"oldId":"eSLBtgpPec2Jz_Sjn6f5x"},"zIndex":999,"width":141,"height":66,"positionAbsolute":{"x":-450.65690513478063,"y":1412.2495392095361},"dragging":false,"style":{"width":141,"height":66},"resizing":false,"selectable":true,"focusable":true},{"id":"X0QavvwPVJU6sulafPVUK","type":"subtopic","position":{"x":-231.54351073141146,"y":1368.2495392095361},"selected":true,"data":{"label":"Breakpoints","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"FwwqAchMC6qdnXbqg45he"},"zIndex":999,"width":191,"height":49,"style":{"width":191,"height":49},"resizing":false,"positionAbsolute":{"x":-231.54351073141146,"y":1368.2495392095361},"dragging":false,"selectable":true,"focusable":true},{"id":"VuWUsg05WmOoP_RJ5AXJO","type":"subtopic","position":{"x":-231.54351073141146,"y":1420.7495392095361},"selected":true,"data":{"label":"Debug Navigator","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"X0QavvwPVJU6sulafPVUK"},"zIndex":999,"width":191,"height":49,"style":{"width":191,"height":49},"resizing":false,"positionAbsolute":{"x":-231.54351073141146,"y":1420.7495392095361},"dragging":false,"selectable":true,"focusable":true},{"id":"hUHxlNa6iJJbDGdFNhynB","type":"subtopic","position":{"x":-231.54351073141146,"y":1474.7495392095361},"selected":true,"data":{"label":"Stepping","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"VuWUsg05WmOoP_RJ5AXJO"},"zIndex":999,"width":191,"height":49,"style":{"width":191,"height":49},"resizing":false,"positionAbsolute":{"x":-231.54351073141146,"y":1474.7495392095361},"dragging":false,"selectable":true,"focusable":true},{"id":"FAwW_a0smJ8HGlU3960jE","type":"paragraph","position":{"x":-476.3234966364452,"y":1611.639237252708},"selected":true,"data":{"label":"Interface Builder","style":{"fontSize":20,"justifyContent":"flex-start","textAlign":"left"},"oldId":"QrpJVLpZAREAPOC29fAYy"},"zIndex":999,"width":190,"height":67,"positionAbsolute":{"x":-476.3234966364452,"y":1611.639237252708},"dragging":false,"style":{"width":190,"height":67},"resizing":false,"selectable":true,"focusable":true},{"id":"iMzYd8KUFnk6zqr4KecgX","type":"subtopic","position":{"x":-231.54351073141146,"y":1549.0721239475733},"selected":true,"data":{"label":"Interface Builder","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"X0QavvwPVJU6sulafPVUK"},"zIndex":999,"width":191,"height":49,"style":{"width":191,"height":49},"resizing":false,"positionAbsolute":{"x":-231.54351073141146,"y":1549.0721239475733},"dragging":false,"selectable":true,"focusable":true},{"id":"tuUuLInq0p-nhehe2AqPg","type":"subtopic","position":{"x":-231.54351073141146,"y":1601.2123366167202},"selected":true,"data":{"label":"IBOutlets","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"iMzYd8KUFnk6zqr4KecgX"},"zIndex":999,"width":191,"height":49,"style":{"width":191,"height":49},"resizing":false,"positionAbsolute":{"x":-231.54351073141146,"y":1601.2123366167202},"dragging":false,"selectable":true,"focusable":true},{"id":"FspN4yiBF9aEN7_SlXUe1","type":"subtopic","position":{"x":-231.54351073141146,"y":1653.352549285867},"selected":true,"data":{"label":"IBActions","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"tuUuLInq0p-nhehe2AqPg"},"zIndex":999,"width":191,"height":49,"style":{"width":191,"height":49},"resizing":false,"positionAbsolute":{"x":-231.54351073141146,"y":1653.352549285867},"dragging":false,"selectable":true,"focusable":true},{"id":"j2BL0sf3WjnJZZWa7cCjy","type":"subtopic","position":{"x":-231.54351073141146,"y":1705.492761955014},"selected":true,"data":{"label":"Auto layout","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"FspN4yiBF9aEN7_SlXUe1"},"zIndex":999,"width":191,"height":49,"style":{"width":191,"height":49},"resizing":false,"positionAbsolute":{"x":-231.54351073141146,"y":1705.492761955014},"dragging":false,"selectable":true,"focusable":true},{"id":"-7OW2IgiMk1eot1PaYd7m","type":"topic","position":{"x":262.224381144193,"y":1162.2641963849399},"selected":true,"data":{"label":"UI Kit","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"la5M4VoH79bhnN8qj5Izp"},"zIndex":999,"width":153,"height":49,"style":{"width":153,"height":49},"resizing":false,"positionAbsolute":{"x":262.224381144193,"y":1162.2641963849399},"dragging":false,"selectable":true,"focusable":true},{"id":"A1TFKVjGU5RbeTF_zxJlu","type":"subtopic","position":{"x":329.5235851135475,"y":768.4044639907162},"selected":true,"data":{"label":"Components","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"FwwqAchMC6qdnXbqg45he"},"zIndex":999,"width":191,"height":49,"style":{"width":191,"height":49},"resizing":false,"positionAbsolute":{"x":329.5235851135475,"y":768.4044639907162},"dragging":false,"selectable":true,"focusable":true},{"id":"se9w7mT1XJLGlmWUhH4Uv","type":"subtopic","position":{"x":329.5235851135475,"y":820.9102687242172},"selected":true,"data":{"label":"Views","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"A1TFKVjGU5RbeTF_zxJlu"},"zIndex":999,"width":191,"height":49,"style":{"width":191,"height":49},"resizing":false,"positionAbsolute":{"x":329.5235851135475,"y":820.9102687242172},"dragging":false,"selectable":true,"focusable":true},{"id":"mfWdkUm1RhjygtMyInXiD","type":"subtopic","position":{"x":329.5235851135475,"y":873.4160734577182},"selected":true,"data":{"label":"View Controllers","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"se9w7mT1XJLGlmWUhH4Uv"},"zIndex":999,"width":191,"height":49,"style":{"width":191,"height":49},"resizing":false,"positionAbsolute":{"x":329.5235851135475,"y":873.4160734577182},"dragging":false,"selectable":true,"focusable":true},{"id":"GKuxilB0AwjcTgCSk3FeU","type":"subtopic","position":{"x":329.5235851135475,"y":925.9218781912192},"selected":true,"data":{"label":"User Interactions","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"mfWdkUm1RhjygtMyInXiD"},"zIndex":999,"width":191,"height":49,"style":{"width":191,"height":49},"resizing":false,"positionAbsolute":{"x":329.5235851135475,"y":925.9218781912192},"dragging":false,"selectable":true,"focusable":true},{"id":"0o3V_zveN1xCIt7rayrCF","type":"subtopic","position":{"x":482.9595680403212,"y":1054.5569944255924},"selected":true,"data":{"label":"Basic Interfaces","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"A1TFKVjGU5RbeTF_zxJlu"},"zIndex":999,"width":191,"height":49,"style":{"width":191,"height":49},"resizing":false,"positionAbsolute":{"x":482.9595680403212,"y":1054.5569944255924},"dragging":false,"selectable":true,"focusable":true},{"id":"a2CqrCJSxGfHq6_Y9f_re","type":"subtopic","position":{"x":482.9595680403212,"y":1108.5569944255924},"selected":true,"data":{"label":"Storyboards","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"0o3V_zveN1xCIt7rayrCF"},"zIndex":999,"width":191,"height":50,"style":{"width":191,"height":50},"resizing":false,"positionAbsolute":{"x":482.9595680403212,"y":1108.5569944255924},"dragging":false,"selectable":true,"focusable":true},{"id":"RwvC4Pi18_1phcrJL-9iu","type":"subtopic","position":{"x":482.9595680403212,"y":1162.5569944255924},"selected":true,"data":{"label":"Xibs","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"a2CqrCJSxGfHq6_Y9f_re"},"zIndex":999,"width":191,"height":49,"style":{"width":191,"height":49},"resizing":false,"positionAbsolute":{"x":482.9595680403212,"y":1162.5569944255924},"dragging":false,"selectable":true,"focusable":true},{"id":"FXUrfyvuIIOH7VDnT_E0z","type":"subtopic","position":{"x":482.9595680403212,"y":1216.5569944255924},"selected":true,"data":{"label":"Navigation","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"RwvC4Pi18_1phcrJL-9iu"},"zIndex":999,"width":191,"height":49,"style":{"width":191,"height":49},"resizing":false,"positionAbsolute":{"x":482.9595680403212,"y":1216.5569944255924},"dragging":false,"selectable":true,"focusable":true},{"id":"cwVcNDTBBulBY2m4Wzn4G","type":"subtopic","position":{"x":482.9595680403212,"y":1270.5569944255924},"selected":true,"data":{"label":"View Transitions","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"FXUrfyvuIIOH7VDnT_E0z"},"zIndex":999,"width":191,"height":49,"style":{"width":191,"height":49},"resizing":false,"positionAbsolute":{"x":482.9595680403212,"y":1270.5569944255924},"dragging":false,"selectable":true,"focusable":true},{"id":"kAIKsDcDzwI1E0wSnC_uo","type":"topic","position":{"x":37.879904639968345,"y":1444.2782608489113},"selected":true,"data":{"label":"Swift UI","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"-7OW2IgiMk1eot1PaYd7m"},"zIndex":999,"width":153,"height":49,"style":{"width":153,"height":49},"resizing":false,"positionAbsolute":{"x":37.879904639968345,"y":1444.2782608489113},"dragging":false,"selectable":true,"focusable":true},{"id":"dREH4cc39Y1bdc3LWj3kP","type":"paragraph","position":{"x":64.37990463996834,"y":1348.037202592816},"selected":true,"data":{"label":"Basics","style":{"fontSize":20,"justifyContent":"flex-start","textAlign":"left"},"oldId":"lEWdeQDhlLQaDqsqHNFCr"},"zIndex":999,"width":100,"height":66,"positionAbsolute":{"x":64.37990463996834,"y":1348.037202592816},"dragging":false,"style":{"width":100,"height":66},"resizing":false,"selectable":true,"focusable":true},{"id":"QVg4_8EXeQBJbleryy8c1","type":"subtopic","position":{"x":12.879904639968345,"y":1090.3737998699025},"selected":true,"data":{"label":"Declarative Syntax","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"A1TFKVjGU5RbeTF_zxJlu"},"zIndex":999,"width":203,"height":49,"style":{"width":203,"height":49},"resizing":false,"positionAbsolute":{"x":12.879904639968345,"y":1090.3737998699025},"dragging":false,"selectable":true,"focusable":true},{"id":"xkH7Llut6uP2-8iTMw76F","type":"subtopic","position":{"x":12.879904639968345,"y":1146.363878089629},"selected":true,"data":{"label":"Components","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"QVg4_8EXeQBJbleryy8c1"},"zIndex":999,"width":203,"height":49,"style":{"width":203,"height":49},"resizing":false,"positionAbsolute":{"x":12.879904639968345,"y":1146.363878089629},"dragging":false,"selectable":true,"focusable":true},{"id":"RvyOkQelc-GChQGJyEx72","type":"subtopic","position":{"x":12.879904639968345,"y":1201.363878089629},"selected":true,"data":{"label":"State Management","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"xkH7Llut6uP2-8iTMw76F"},"zIndex":999,"width":203,"height":49,"style":{"width":203,"height":49},"resizing":false,"positionAbsolute":{"x":12.879904639968345,"y":1201.363878089629},"dragging":false,"selectable":true,"focusable":true},{"id":"yR94uHs0SiSScU4gPBzfr","type":"subtopic","position":{"x":12.879904639968345,"y":1256.363878089629},"selected":true,"data":{"label":"Data binding","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"RvyOkQelc-GChQGJyEx72"},"zIndex":999,"width":203,"height":49,"style":{"width":203,"height":49},"resizing":false,"positionAbsolute":{"x":12.879904639968345,"y":1256.363878089629},"dragging":false,"selectable":true,"focusable":true},{"id":"INYUFVZ-_4htveLZ6EvRu","type":"paragraph","position":{"x":10.879904639968345,"y":1539.0721239475733},"selected":true,"data":{"label":"Simple UI Building","style":{"fontSize":20,"justifyContent":"flex-start","textAlign":"left"},"oldId":"dREH4cc39Y1bdc3LWj3kP"},"zIndex":999,"width":207,"height":59,"positionAbsolute":{"x":10.879904639968345,"y":1539.0721239475733},"dragging":false,"style":{"width":207,"height":59},"resizing":false,"selectable":true,"focusable":true},{"id":"YvuYJceeNNfLBpq2-3iiL","type":"subtopic","position":{"x":12.879904639968345,"y":1632.139237252708},"selected":true,"data":{"label":"Building Interfaces","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"QVg4_8EXeQBJbleryy8c1"},"zIndex":999,"width":203,"height":49,"style":{"width":203,"height":49},"resizing":false,"positionAbsolute":{"x":12.879904639968345,"y":1632.139237252708},"dragging":false,"selectable":true,"focusable":true},{"id":"mgUCYztUpKINqIZikT4Bh","type":"subtopic","position":{"x":12.879904639968345,"y":1687.139237252708},"selected":true,"data":{"label":"Views and Modifiers","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"YvuYJceeNNfLBpq2-3iiL"},"zIndex":999,"width":203,"height":49,"style":{"width":203,"height":49},"resizing":false,"positionAbsolute":{"x":12.879904639968345,"y":1687.139237252708},"dragging":false,"selectable":true,"focusable":true},{"id":"02VAK4GMkN6nDHf1zqwPA","type":"subtopic","position":{"x":12.879904639968345,"y":1742.139237252708},"selected":true,"data":{"label":"Navigation","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"mgUCYztUpKINqIZikT4Bh"},"zIndex":999,"width":203,"height":49,"style":{"width":203,"height":49},"resizing":false,"positionAbsolute":{"x":12.879904639968345,"y":1742.139237252708},"dragging":false,"selectable":true,"focusable":true},{"id":"2tmR1yE5daz2HB4IV5qwI","type":"subtopic","position":{"x":12.879904639968345,"y":1797.139237252708},"selected":true,"data":{"label":"View Transitions","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"02VAK4GMkN6nDHf1zqwPA"},"zIndex":999,"width":203,"height":49,"style":{"width":203,"height":49},"resizing":false,"positionAbsolute":{"x":12.879904639968345,"y":1797.139237252708},"dragging":false,"selectable":true,"focusable":true},{"id":"ZGnWzU8SwucATFNOwfCO6","type":"paragraph","position":{"x":400.59145195251654,"y":1435.7782608489113},"selected":true,"data":{"label":"Interfaces and Navigation","style":{"fontSize":20,"justifyContent":"flex-start","textAlign":"left"},"oldId":"1AtH8yhL6W4S9eYZBaCHL"},"zIndex":999,"width":276,"height":66,"positionAbsolute":{"x":400.59145195251654,"y":1435.7782608489113},"dragging":false,"style":{"width":276,"height":66},"resizing":false,"selectable":true,"focusable":true},{"id":"4fPgpGwNXmVoZoruBRb_B","type":"topic","position":{"x":462.09145195251654,"y":1604.352549285867},"selected":true,"data":{"label":"UI Design","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"-7OW2IgiMk1eot1PaYd7m"},"zIndex":999,"width":153,"height":49,"style":{"width":153,"height":49},"resizing":false,"positionAbsolute":{"x":462.09145195251654,"y":1604.352549285867},"dragging":false,"selectable":true,"focusable":true},{"id":"1I5eFKqFVBxWLAXfpgNXO","type":"subtopic","position":{"x":304.224381144193,"y":1604.352549285867},"selected":true,"data":{"label":"HIG","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"mgUCYztUpKINqIZikT4Bh"},"zIndex":999,"width":111,"height":49,"style":{"width":111,"height":49},"resizing":false,"positionAbsolute":{"x":304.224381144193,"y":1604.352549285867},"dragging":false,"selectable":true,"focusable":true},{"id":"pNEE5C1E1wAjH_nTlzH6N","type":"topic","position":{"x":462.87947885298604,"y":1766.7167376569469},"selected":true,"data":{"label":"UI Kit","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"4fPgpGwNXmVoZoruBRb_B"},"zIndex":999,"width":153,"height":49,"style":{"width":153,"height":49},"resizing":false,"positionAbsolute":{"x":462.87947885298604,"y":1766.7167376569469},"dragging":false,"selectable":true,"focusable":true},{"id":"XX5rCd_yTHvOfYif4Kpbl","type":"subtopic","position":{"x":396.37947885298604,"y":1875.3087665436465},"selected":true,"data":{"label":"Views, View Controllers","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"1I5eFKqFVBxWLAXfpgNXO"},"zIndex":999,"width":286,"height":49,"style":{"width":286,"height":49},"resizing":false,"positionAbsolute":{"x":396.37947885298604,"y":1875.3087665436465},"dragging":false,"selectable":true,"focusable":true},{"id":"tUbMr1pGlw4JwMuW311JJ","type":"subtopic","position":{"x":395.87947885298604,"y":1929.3087665436465},"selected":true,"data":{"label":"Navigation Controllers, Segues","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"XX5rCd_yTHvOfYif4Kpbl"},"zIndex":999,"width":287,"height":49,"style":{"width":287,"height":49},"resizing":false,"positionAbsolute":{"x":395.87947885298604,"y":1929.3087665436465},"dragging":false,"selectable":true,"focusable":true},{"id":"mUMDZsgzCB6cs_K6pfUY1","type":"subtopic","position":{"x":395.87947885298604,"y":1982.3120187383452},"selected":true,"data":{"label":"Navigation Stacks","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"tUbMr1pGlw4JwMuW311JJ"},"zIndex":999,"width":287,"height":49,"style":{"width":287,"height":49},"resizing":false,"positionAbsolute":{"x":395.87947885298604,"y":1982.3120187383452},"dragging":false,"selectable":true,"focusable":true},{"id":"gqd6zjxP_qFj4Ru-6LARo","type":"subtopic","position":{"x":410.15193584006727,"y":2041.9741149111323},"selected":true,"data":{"label":"Pushing Presenting","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"tUbMr1pGlw4JwMuW311JJ"},"zIndex":999,"width":253,"height":49,"style":{"width":253,"height":49},"resizing":false,"positionAbsolute":{"x":410.15193584006727,"y":2041.9741149111323},"dragging":false,"selectable":true,"focusable":true},{"id":"jb89kQxDhZND3vQo0EH7r","type":"subtopic","position":{"x":410.15193584006727,"y":2095.9741149111323},"selected":true,"data":{"label":"Modals and Navigation","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"gqd6zjxP_qFj4Ru-6LARo"},"zIndex":999,"width":253,"height":49,"style":{"width":253,"height":49},"resizing":false,"positionAbsolute":{"x":410.15193584006727,"y":2095.9741149111323},"dragging":false,"selectable":true,"focusable":true},{"id":"PvFp6aY7EUrYHn87RZAGj","type":"topic","position":{"x":57.75844126336574,"y":1917.1441718988817},"selected":true,"data":{"label":"Swift UI","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"pNEE5C1E1wAjH_nTlzH6N"},"zIndex":999,"width":153,"height":49,"style":{"width":153,"height":49},"resizing":false,"positionAbsolute":{"x":57.75844126336574,"y":1917.1441718988817},"dragging":false,"selectable":true,"focusable":true},{"id":"_TdwE3ffeJqxaR5nu2i4T","type":"section","position":{"x":-27.24155873663426,"y":2033.723995769065},"selected":true,"data":{"label":"","style":{"width":150,"height":100,"fontSize":17},"oldId":"tBybxRQEnlt6VuyTyCJD7"},"zIndex":-999,"width":323,"height":230,"style":{"width":323,"height":230},"positionAbsolute":{"x":-27.24155873663426,"y":2033.723995769065},"dragging":false,"resizing":false,"selectable":true,"focusable":true},{"id":"TLm70PlTI0K3Odn1iYxWX","type":"subtopic","position":{"x":-27.24155873663426,"y":2031.5618995962777},"selected":true,"data":{"label":"Navigation Stacks","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"mUMDZsgzCB6cs_K6pfUY1"},"zIndex":999,"width":323,"height":49,"style":{"width":323,"height":49},"resizing":false,"positionAbsolute":{"x":-27.24155873663426,"y":2031.5618995962777},"dragging":false,"selectable":true,"focusable":true},{"id":"IBr2P7dknWTnZ2a-fFCqN","type":"subtopic","position":{"x":-12.969101749553033,"y":2091.223995769065},"selected":true,"data":{"label":"Navigation View","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"gqd6zjxP_qFj4Ru-6LARo"},"zIndex":999,"width":293,"height":49,"style":{"width":293,"height":49},"resizing":false,"positionAbsolute":{"x":-12.969101749553033,"y":2091.223995769065},"dragging":false,"selectable":true,"focusable":true},{"id":"my77jLU2qxU7bQ7_Fx2iH","type":"subtopic","position":{"x":-12.969101749553033,"y":2145.223995769065},"selected":true,"data":{"label":"NavigationLink","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"jb89kQxDhZND3vQo0EH7r"},"zIndex":999,"width":293,"height":49,"style":{"width":293,"height":49},"resizing":false,"positionAbsolute":{"x":-12.969101749553033,"y":2145.223995769065},"dragging":false,"selectable":true,"focusable":true},{"id":"4pmjLa7WvwV7D3RZlM6Hp","type":"subtopic","position":{"x":-12.969101749553033,"y":2197.901549153067},"selected":true,"data":{"label":"Presenting / Dismissing views","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"my77jLU2qxU7bQ7_Fx2iH"},"zIndex":999,"width":293,"height":49,"style":{"width":293,"height":49},"resizing":false,"positionAbsolute":{"x":-12.969101749553033,"y":2197.901549153067},"dragging":false,"selectable":true,"focusable":true},{"id":"KpcmuLWX0xAjz6ty4ebtB","type":"topic","position":{"x":-250.3927038801816,"y":1917.1441718988817},"selected":true,"data":{"label":"Core Animation","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"PvFp6aY7EUrYHn87RZAGj"},"zIndex":999,"width":190,"height":49,"style":{"width":190,"height":49},"resizing":false,"positionAbsolute":{"x":-250.3927038801816,"y":1917.1441718988817},"dragging":false,"selectable":true,"focusable":true},{"id":"w0i5Dxp40XS2HnF5nXeZI","type":"subtopic","position":{"x":-293.8927038801816,"y":1823.9451464851736},"selected":true,"data":{"label":"Basics / Creating Animations","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"2tmR1yE5daz2HB4IV5qwI"},"zIndex":999,"width":277,"height":49,"style":{"width":277,"height":49},"resizing":false,"positionAbsolute":{"x":-293.8927038801816,"y":1823.9451464851736},"dragging":false,"selectable":true,"focusable":true},{"id":"i-T6GTqS0FZ_Llt5v4SvR","type":"subtopic","position":{"x":-456.65690513478063,"y":1823.9451464851736},"selected":true,"data":{"label":"Lottie","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"w0i5Dxp40XS2HnF5nXeZI"},"zIndex":999,"width":116,"height":50,"style":{"width":116,"height":50},"resizing":false,"positionAbsolute":{"x":-456.65690513478063,"y":1823.9451464851736},"dragging":false,"selectable":true,"focusable":true},{"id":"z8PqfFgpZnl4lCSvmwIsN","type":"paragraph","position":{"x":-438.1460183370648,"y":2013.9433758682362},"selected":true,"data":{"label":"Design Architecture","style":{"fontSize":20,"justifyContent":"flex-start","textAlign":"left"},"oldId":"ZGnWzU8SwucATFNOwfCO6"},"zIndex":999,"width":219,"height":66,"positionAbsolute":{"x":-438.1460183370648,"y":2013.9433758682362},"dragging":false,"style":{"width":219,"height":66},"resizing":false,"selectable":true,"focusable":true},{"id":"knDbJw2PEIMyr0TpZLsLM","type":"section","position":{"x":-490.1460183370646,"y":2184.3165077459803},"selected":true,"data":{"label":"","style":{"width":150,"height":100,"fontSize":17}},"zIndex":-999,"width":323,"height":213,"style":{"width":323,"height":213},"positionAbsolute":{"x":-490.1460183370646,"y":2184.3165077459803},"dragging":false,"resizing":false,"focusable":true,"selectable":true},{"id":"a-QDI7Ei-B5BRHbicFcfG","type":"subtopic","position":{"x":-477.9907015857107,"y":2230.7231399014654},"selected":true,"data":{"label":"MVC","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"NhC0SBZgUFGjMLNICvbTI"},"zIndex":999,"width":154,"height":49,"style":{"width":154,"height":49},"resizing":false,"positionAbsolute":{"x":-477.9907015857107,"y":2230.7231399014654},"dragging":false,"selectable":true,"focusable":true},{"id":"lVNrnUK6p4eifKRVSnOje","type":"subtopic","position":{"x":-318.66112650248095,"y":2230.7231399014654},"selected":true,"data":{"label":"MVP","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"taTxZw2c3xS18JOwgkNHM"},"zIndex":999,"width":141,"height":49,"style":{"width":141,"height":49},"resizing":false,"positionAbsolute":{"x":-318.66112650248095,"y":2230.7231399014654},"dragging":false,"selectable":true,"focusable":true},{"id":"taTxZw2c3xS18JOwgkNHM","type":"subtopic","position":{"x":-477.9907015857107,"y":2283.651720204365},"selected":true,"data":{"label":"MVVM","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"FoqlB7xBIrV4yUp4ReBkw"},"zIndex":999,"width":154,"height":49,"style":{"width":154,"height":49},"resizing":false,"positionAbsolute":{"x":-477.9907015857107,"y":2283.651720204365},"dragging":false,"selectable":true,"focusable":true},{"id":"iLT2jAkQg-Ex0zSLquNfl","type":"subtopic","position":{"x":-318.66112650248095,"y":2283.651720204365},"selected":true,"data":{"label":"MVVM-C","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"MIuTOvy_E4lZOOzNE-H-B"},"zIndex":999,"width":141,"height":49,"style":{"width":141,"height":49},"resizing":false,"positionAbsolute":{"x":-318.66112650248095,"y":2283.651720204365},"dragging":false,"selectable":true,"focusable":true},{"id":"mTdnDPGYSDupM9VBNdXRg","type":"subtopic","position":{"x":-318.66112650248095,"y":2336.875750712745},"selected":true,"data":{"label":"VIPER","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"NhC0SBZgUFGjMLNICvbTI"},"zIndex":999,"width":141,"height":49,"style":{"width":141,"height":49},"resizing":false,"positionAbsolute":{"x":-318.66112650248095,"y":2336.875750712745},"dragging":false,"selectable":true,"focusable":true},{"id":"NhC0SBZgUFGjMLNICvbTI","type":"subtopic","position":{"x":-478.56227159622,"y":2336.875750712745},"selected":true,"data":{"label":"TCA","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"taTxZw2c3xS18JOwgkNHM"},"zIndex":999,"width":154,"height":49,"style":{"width":154,"height":49},"resizing":false,"positionAbsolute":{"x":-478.56227159622,"y":2336.875750712745},"dragging":false,"selectable":true,"focusable":true},{"id":"ajPGMwoaFb1UFWTtpi5kd","type":"topic","position":{"x":-490.1460183370646,"y":2170.3867999680488},"selected":true,"data":{"label":"Architectural Patterns","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"aALIiAxKz4f7B_EYyhBCi"},"zIndex":999,"width":323,"height":49,"style":{"width":323,"height":49},"resizing":false,"positionAbsolute":{"x":-490.1460183370646,"y":2170.3867999680488},"dragging":false,"selectable":true,"focusable":true},{"id":"q51gMZ7ng7JtcXwMVmL0L","type":"paragraph","position":{"x":337.5235851135475,"y":714.4044639907162},"selected":true,"data":{"label":"— UI Kit Basics — ","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"left"}},"zIndex":999,"width":175,"height":56,"positionAbsolute":{"x":337.5235851135475,"y":714.4044639907162},"dragging":false,"focusable":true,"style":{"width":175,"height":56},"resizing":false,"selectable":true},{"id":"AZJH9qnI4kUVA5ZdMxL5I","type":"paragraph","position":{"x":465.4595680403212,"y":1000.5569944255924},"selected":true,"data":{"label":"— Building Simple UIs — ","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"left"},"oldId":"q51gMZ7ng7JtcXwMVmL0L"},"zIndex":999,"width":226,"height":49,"positionAbsolute":{"x":465.4595680403212,"y":1000.5569944255924},"dragging":false,"focusable":true,"style":{"width":226,"height":49},"resizing":false,"selectable":true},{"id":"28HMXXBJWd3n-ZPgeQRDa","type":"topic","position":{"x":-25.120095360031655,"y":2398.3033373404855},"selected":true,"data":{"label":"Reactive Programming","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"ajPGMwoaFb1UFWTtpi5kd"},"zIndex":999,"width":228,"height":49,"style":{"width":228,"height":49},"resizing":false,"positionAbsolute":{"x":-25.120095360031655,"y":2398.3033373404855},"dragging":false,"selectable":true,"focusable":true},{"id":"W6gdCIkqSFo70guQ6cKCT","type":"section","position":{"x":337.9381597711065,"y":2185.1257839564832},"selected":true,"data":{"label":"","style":{"width":150,"height":100,"fontSize":17},"oldId":"_TdwE3ffeJqxaR5nu2i4T"},"zIndex":-999,"width":344,"height":230,"style":{"width":344,"height":230},"positionAbsolute":{"x":337.9381597711065,"y":2185.1257839564832},"dragging":false,"resizing":false,"selectable":true,"focusable":true},{"id":"UzpdLLPs226N00c6weWRv","type":"subtopic","position":{"x":337.9381597711065,"y":2182.963687783696},"selected":true,"data":{"label":"Combine","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"TLm70PlTI0K3Odn1iYxWX"},"zIndex":999,"width":344,"height":49,"style":{"width":344,"height":49},"resizing":false,"positionAbsolute":{"x":337.9381597711065,"y":2182.963687783696},"dragging":false,"selectable":true,"focusable":true},{"id":"noBaDV_PvCTzqPyw9eO4H","type":"subtopic","position":{"x":352.2106167581876,"y":2242.6257839564832},"selected":true,"data":{"label":"Publishers / Subscribers","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"IBr2P7dknWTnZ2a-fFCqN"},"zIndex":999,"width":315,"height":49,"style":{"width":315,"height":49},"resizing":false,"positionAbsolute":{"x":352.2106167581876,"y":2242.6257839564832},"dragging":false,"selectable":true,"focusable":true},{"id":"GAn12SsVR_mPxOaOVckdz","type":"subtopic","position":{"x":352.2106167581876,"y":2296.6257839564832},"selected":true,"data":{"label":"Operators & Pipelines","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"my77jLU2qxU7bQ7_Fx2iH"},"zIndex":999,"width":315,"height":49,"style":{"width":315,"height":49},"resizing":false,"positionAbsolute":{"x":352.2106167581876,"y":2296.6257839564832},"dragging":false,"selectable":true,"focusable":true},{"id":"pY_zaMcFpeFDLgVk2W0Vy","type":"subtopic","position":{"x":352.2106167581876,"y":2349.3033373404855},"selected":true,"data":{"label":"Combine and MVVM","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"4pmjLa7WvwV7D3RZlM6Hp"},"zIndex":999,"width":315,"height":49,"style":{"width":315,"height":49},"resizing":false,"positionAbsolute":{"x":352.2106167581876,"y":2349.3033373404855},"dragging":false,"selectable":true,"focusable":true},{"id":"WaoIITgpj3XEyqDKw6cG_","type":"section","position":{"x":337.4082393741711,"y":2425.279758346645},"selected":true,"data":{"label":"","style":{"width":150,"height":100,"fontSize":17},"oldId":"W6gdCIkqSFo70guQ6cKCT"},"zIndex":-999,"width":344,"height":230,"style":{"width":344,"height":230},"positionAbsolute":{"x":337.4082393741711,"y":2425.279758346645},"dragging":false,"resizing":false,"selectable":true,"focusable":true},{"id":"0xwoWj9jek36p1AwU3WkK","type":"subtopic","position":{"x":337.4082393741711,"y":2423.1176621738578},"selected":true,"data":{"label":"RxSwift","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"UzpdLLPs226N00c6weWRv"},"zIndex":999,"width":344,"height":49,"style":{"width":344,"height":49},"resizing":false,"positionAbsolute":{"x":337.4082393741711,"y":2423.1176621738578},"dragging":false,"selectable":true,"focusable":true},{"id":"k232wKg7XCb_ngjZ5Mwsy","type":"subtopic","position":{"x":351.6806963612522,"y":2482.779758346645},"selected":true,"data":{"label":"Observables & observers","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"noBaDV_PvCTzqPyw9eO4H"},"zIndex":999,"width":315,"height":49,"style":{"width":315,"height":49},"resizing":false,"positionAbsolute":{"x":351.6806963612522,"y":2482.779758346645},"dragging":false,"selectable":true,"focusable":true},{"id":"1xYZdnlI6JSJzNvmz4-0v","type":"subtopic","position":{"x":351.6806963612522,"y":2536.779758346645},"selected":true,"data":{"label":"Subjects","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"GAn12SsVR_mPxOaOVckdz"},"zIndex":999,"width":100,"height":49,"style":{"width":100,"height":49},"resizing":false,"positionAbsolute":{"x":351.6806963612522,"y":2536.779758346645},"dragging":false,"selectable":true,"focusable":true},{"id":"g_1f5a6tIB5V_36NjgtL5","type":"subtopic","position":{"x":351.6806963612522,"y":2589.4573117306472},"selected":true,"data":{"label":"RxSwift with MVVM","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"pY_zaMcFpeFDLgVk2W0Vy"},"zIndex":999,"width":315,"height":49,"style":{"width":315,"height":49},"resizing":false,"positionAbsolute":{"x":351.6806963612522,"y":2589.4573117306472},"dragging":false,"selectable":true,"focusable":true},{"id":"t7IYTY8tVjC_xzM1n8wts","type":"subtopic","position":{"x":455.6806963612522,"y":2536.779758346645},"selected":true,"data":{"label":"Operators","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"1xYZdnlI6JSJzNvmz4-0v"},"zIndex":999,"width":100,"height":49,"style":{"width":100,"height":49},"resizing":false,"positionAbsolute":{"x":455.6806963612522,"y":2536.779758346645},"dragging":false,"selectable":true,"focusable":true},{"id":"UqA01PT86_w_JzN6KZBku","type":"subtopic","position":{"x":559.6806963612522,"y":2536.779758346645},"selected":true,"data":{"label":"Schedulers","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"t7IYTY8tVjC_xzM1n8wts"},"zIndex":999,"width":107,"height":49,"style":{"width":107,"height":49},"resizing":false,"positionAbsolute":{"x":559.6806963612522,"y":2536.779758346645},"dragging":false,"selectable":true,"focusable":true},{"id":"OfwGqSMcV0noepKIjQbx1","type":"paragraph","position":{"x":-41.71010223307604,"y":2570.4573117306472},"selected":true,"data":{"label":"Patterns and Techniques","style":{"fontSize":20,"justifyContent":"flex-start","textAlign":"left"},"oldId":"z8PqfFgpZnl4lCSvmwIsN"},"zIndex":999,"width":265,"height":68,"positionAbsolute":{"x":-41.71010223307604,"y":2570.4573117306472},"dragging":false,"style":{"width":265,"height":68},"resizing":false,"selectable":true,"focusable":true},{"id":"BtPYKd7RedHOLRATDKkpg","type":"topic","position":{"x":-324.66112650248095,"y":2579.9573117306472},"selected":true,"data":{"label":"Delegate Pattern","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"28HMXXBJWd3n-ZPgeQRDa"},"zIndex":999,"width":178,"height":49,"style":{"width":178,"height":49},"resizing":false,"positionAbsolute":{"x":-324.66112650248095,"y":2579.9573117306472},"dragging":false,"selectable":true,"focusable":true},{"id":"z3AUN9u7EEqeKOqvLxf7D","type":"subtopic","position":{"x":-362.16112650248095,"y":2482.779758346645},"selected":true,"data":{"label":"Implementing Delegates","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"lVNrnUK6p4eifKRVSnOje"},"zIndex":999,"width":253,"height":49,"style":{"width":253,"height":49},"resizing":false,"positionAbsolute":{"x":-362.16112650248095,"y":2482.779758346645},"dragging":false,"selectable":true,"focusable":true},{"id":"qJEd7KU52xL_GRG3IQqhM","type":"topic","position":{"x":-490.1460183370646,"y":2666.3482817607282},"selected":true,"data":{"label":"Callbacks","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"BtPYKd7RedHOLRATDKkpg"},"zIndex":999,"width":187,"height":49,"style":{"width":187,"height":49},"resizing":false,"positionAbsolute":{"x":-490.1460183370646,"y":2666.3482817607282},"dragging":false,"selectable":true,"focusable":true},{"id":"hinNObLi-5tbZFuY8U3i6","type":"section","position":{"x":-259.3084016544434,"y":2668.5103779335154},"selected":true,"data":{"label":"","style":{"width":150,"height":100,"fontSize":17},"oldId":"W6gdCIkqSFo70guQ6cKCT"},"zIndex":-999,"width":344,"height":230,"style":{"width":344,"height":230},"positionAbsolute":{"x":-259.3084016544434,"y":2668.5103779335154},"dragging":false,"resizing":false,"selectable":true,"focusable":true},{"id":"M9UlalPL47GoqhcyGsAPV","type":"subtopic","position":{"x":-259.3084016544434,"y":2666.3482817607282},"selected":true,"data":{"label":"Closures","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"UzpdLLPs226N00c6weWRv"},"zIndex":999,"width":344,"height":49,"style":{"width":344,"height":49},"resizing":false,"positionAbsolute":{"x":-259.3084016544434,"y":2666.3482817607282},"dragging":false,"selectable":true,"focusable":true},{"id":"5V7nxQKmmHWSMSBCRxkaF","type":"subtopic","position":{"x":-245.0359446673623,"y":2726.0103779335154},"selected":true,"data":{"label":"Understanding and using Closures","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"noBaDV_PvCTzqPyw9eO4H"},"zIndex":999,"width":315,"height":49,"style":{"width":315,"height":49},"resizing":false,"positionAbsolute":{"x":-245.0359446673623,"y":2726.0103779335154},"dragging":false,"selectable":true,"focusable":true},{"id":"S-D-PnHA7COd2Dp6U2XO4","type":"subtopic","position":{"x":-245.0359446673623,"y":2780.0103779335154},"selected":true,"data":{"label":"Capturing Values & Memory Mgmt.","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"GAn12SsVR_mPxOaOVckdz"},"zIndex":999,"width":315,"height":49,"style":{"width":315,"height":49},"resizing":false,"positionAbsolute":{"x":-245.0359446673623,"y":2780.0103779335154},"dragging":false,"selectable":true,"focusable":true},{"id":"WhOpzFvv21QQV3aS6XbXr","type":"subtopic","position":{"x":-245.0359446673623,"y":2832.6879313175177},"selected":true,"data":{"label":"Callback Hell","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"pY_zaMcFpeFDLgVk2W0Vy"},"zIndex":999,"width":315,"height":49,"style":{"width":315,"height":49},"resizing":false,"positionAbsolute":{"x":-245.0359446673623,"y":2832.6879313175177},"dragging":false,"selectable":true,"focusable":true},{"id":"ysaBCl_TtWqelirptQp7P","type":"topic","position":{"x":-485.6460183370646,"y":2951.373778518592},"selected":true,"data":{"label":"Async / Await","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"qJEd7KU52xL_GRG3IQqhM"},"zIndex":999,"width":178,"height":49,"style":{"width":178,"height":49},"resizing":false,"positionAbsolute":{"x":-485.6460183370646,"y":2951.373778518592},"dragging":false,"selectable":true,"focusable":true},{"id":"-aLGB3cDXZHIhVU3t-Ve4","type":"subtopic","position":{"x":-486.49430452021335,"y":3025.4740320108986},"selected":true,"data":{"label":"Concurrency","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"M9UlalPL47GoqhcyGsAPV"},"zIndex":999,"width":178,"height":49,"style":{"width":178,"height":49},"resizing":false,"positionAbsolute":{"x":-486.49430452021335,"y":3025.4740320108986},"dragging":false,"selectable":true,"focusable":true},{"id":"6gfqFy3H6SLt06oJ1kt5A","type":"topic","position":{"x":151.47857612108493,"y":2788.9840797917414},"selected":true,"data":{"label":"Data Persistence","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"ysaBCl_TtWqelirptQp7P"},"zIndex":999,"width":184,"height":49,"style":{"width":184,"height":49},"resizing":false,"positionAbsolute":{"x":151.47857612108493,"y":2788.9840797917414},"dragging":false,"selectable":true,"focusable":true},{"id":"H4-Dp2WTA6HAZiFRQdLjx","type":"subtopic","position":{"x":497.86082709848984,"y":2680.9840797917414},"selected":true,"data":{"label":"Core Data","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"-aLGB3cDXZHIhVU3t-Ve4"},"zIndex":999,"width":178,"height":49,"style":{"width":178,"height":49},"resizing":false,"positionAbsolute":{"x":497.86082709848984,"y":2680.9840797917414},"dragging":false,"selectable":true,"focusable":true},{"id":"ImS1FqVicQImMw-y1ze7y","type":"subtopic","position":{"x":497.86082709848984,"y":2734.9840797917414},"selected":true,"data":{"label":"User Defaults","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"H4-Dp2WTA6HAZiFRQdLjx"},"zIndex":999,"width":178,"height":49,"style":{"width":178,"height":49},"resizing":false,"positionAbsolute":{"x":497.86082709848984,"y":2734.9840797917414},"dragging":false,"selectable":true,"focusable":true},{"id":"8v_eP0j85TnB33XyYAzrT","type":"subtopic","position":{"x":497.86082709848984,"y":2788.9840797917414},"selected":true,"data":{"label":"Keychain","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"ImS1FqVicQImMw-y1ze7y"},"zIndex":999,"width":178,"height":49,"style":{"width":178,"height":49},"resizing":false,"positionAbsolute":{"x":497.86082709848984,"y":2788.9840797917414},"dragging":false,"selectable":true,"focusable":true},{"id":"_bkRbqVXKNCnRvEFCM6mN","type":"subtopic","position":{"x":497.86082709848984,"y":2842.9840797917414},"selected":true,"data":{"label":"File System","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"8v_eP0j85TnB33XyYAzrT"},"zIndex":999,"width":178,"height":49,"style":{"width":178,"height":49},"resizing":false,"positionAbsolute":{"x":497.86082709848984,"y":2842.9840797917414},"dragging":false,"selectable":true,"focusable":true},{"id":"3qjQbrCUchJn1bJTBWrQF","type":"subtopic","position":{"x":497.86082709848984,"y":2896.9840797917414},"selected":true,"data":{"label":"SQLite","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"_bkRbqVXKNCnRvEFCM6mN"},"zIndex":999,"width":178,"height":49,"style":{"width":178,"height":49},"resizing":false,"positionAbsolute":{"x":497.86082709848984,"y":2896.9840797917414},"dragging":false,"selectable":true,"focusable":true},{"id":"WYV4YG_sLvC4S5ptFFdrF","type":"topic","position":{"x":257.37947885298604,"y":2985.373778518592},"selected":true,"data":{"label":"JSON / XML","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"6gfqFy3H6SLt06oJ1kt5A"},"zIndex":999,"width":159,"height":49,"style":{"width":159,"height":49},"resizing":false,"positionAbsolute":{"x":257.37947885298604,"y":2985.373778518592},"dragging":false,"selectable":true,"focusable":true},{"id":"UTVh1RHRWb5eA-S7ayLp8","type":"subtopic","position":{"x":257.37947885298604,"y":3085.8972064310155},"selected":true,"data":{"label":"Parsing","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"5V7nxQKmmHWSMSBCRxkaF"},"zIndex":999,"width":159,"height":49,"style":{"width":159,"height":49},"resizing":false,"positionAbsolute":{"x":257.37947885298604,"y":3085.8972064310155},"dragging":false,"selectable":true,"focusable":true},{"id":"8rYjSCgRiJMHTNxOU6vgG","type":"subtopic","position":{"x":257.37947885298604,"y":3140.7912124800087},"selected":true,"data":{"label":"Serializing","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"UTVh1RHRWb5eA-S7ayLp8"},"zIndex":999,"width":159,"height":49,"style":{"width":159,"height":49},"resizing":false,"positionAbsolute":{"x":257.37947885298604,"y":3140.7912124800087},"dragging":false,"selectable":true,"focusable":true},{"id":"JoNoM-utp8MaL1H0oXDta","type":"topic","position":{"x":494.5235851135475,"y":3224.734312830552},"selected":true,"data":{"label":"Networking","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"WYV4YG_sLvC4S5ptFFdrF"},"zIndex":999,"width":173,"height":51,"style":{"width":173,"height":51},"resizing":false,"positionAbsolute":{"x":494.5235851135475,"y":3224.734312830552},"dragging":false,"selectable":true,"focusable":true},{"id":"GjY5qCU1rjB0D58qHQtAR","type":"subtopic","position":{"x":494.5235851135475,"y":3310.5797000100943},"selected":true,"data":{"label":"HTTP / HTTPs","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"H4-Dp2WTA6HAZiFRQdLjx"},"zIndex":999,"width":173,"height":49,"style":{"width":173,"height":49},"resizing":false,"positionAbsolute":{"x":494.5235851135475,"y":3310.5797000100943},"dragging":false,"selectable":true,"focusable":true},{"id":"3Qw-qmy5iAE61mPbIY4Q2","type":"subtopic","position":{"x":494.5235851135475,"y":3361.748969778141},"selected":true,"data":{"label":"REST","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"GjY5qCU1rjB0D58qHQtAR"},"zIndex":999,"width":173,"height":49,"style":{"width":173,"height":49},"resizing":false,"positionAbsolute":{"x":494.5235851135475,"y":3361.748969778141},"dragging":false,"selectable":true,"focusable":true},{"id":"9o7d3aN0YFfNNUeVoJrhs","type":"subtopic","position":{"x":494.5235851135475,"y":3412.918239546188},"selected":true,"data":{"label":"GraphQL","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"3Qw-qmy5iAE61mPbIY4Q2"},"zIndex":999,"width":173,"height":49,"style":{"width":173,"height":49},"resizing":false,"positionAbsolute":{"x":494.5235851135475,"y":3412.918239546188},"dragging":false,"selectable":true,"focusable":true},{"id":"WPJACNeI6jX9GGB1roeTp","type":"subtopic","position":{"x":494.5235851135475,"y":3464.087509314235},"selected":true,"data":{"label":"URLSession","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"9o7d3aN0YFfNNUeVoJrhs"},"zIndex":999,"width":173,"height":49,"style":{"width":173,"height":49},"resizing":false,"positionAbsolute":{"x":494.5235851135475,"y":3464.087509314235},"dragging":false,"selectable":true,"focusable":true},{"id":"nJeBisdKtN43ntkXnPCVF","type":"subtopic","position":{"x":494.5235851135475,"y":3515.256779082282},"selected":true,"data":{"label":"Alamofire","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"WPJACNeI6jX9GGB1roeTp"},"zIndex":999,"width":173,"height":49,"style":{"width":173,"height":49},"resizing":false,"positionAbsolute":{"x":494.5235851135475,"y":3515.256779082282},"dragging":false,"selectable":true,"focusable":true},{"id":"YzJVkZbOzgp5w9N0IQBN_","type":"paragraph","position":{"x":246.15193584006727,"y":3216.234312830552},"selected":true,"data":{"label":"Asynchronism","style":{"fontSize":20,"justifyContent":"flex-start","textAlign":"left"},"oldId":"FZnpJdb7tdXkmThId2bs_"},"zIndex":999,"width":164,"height":68,"positionAbsolute":{"x":246.15193584006727,"y":3216.234312830552},"dragging":false,"style":{"width":164,"height":68},"resizing":false,"selectable":true,"focusable":true},{"id":"KSKHW-WnjVch-04wYJBsA","type":"paragraph","position":{"x":-109.16112650248095,"y":2942.373778518592},"selected":true,"data":{"label":"Storage","style":{"fontSize":20,"justifyContent":"flex-start","textAlign":"left"}},"zIndex":999,"width":108,"height":67,"positionAbsolute":{"x":-109.16112650248095,"y":2942.373778518592},"dragging":false,"focusable":true,"selectable":true},{"id":"fbloF-u4XwdHLmBS9flZm","type":"topic","position":{"x":-146.66112650248095,"y":3225.734312830552},"selected":true,"data":{"label":"Concurrency and Multithreading","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"JoNoM-utp8MaL1H0oXDta"},"zIndex":999,"width":294,"height":49,"style":{"width":294,"height":49},"resizing":false,"positionAbsolute":{"x":-146.66112650248095,"y":3225.734312830552},"dragging":false,"selectable":true,"focusable":true},{"id":"aROcI1RucAyu-gHn-tVnj","type":"subtopic","position":{"x":-110.12009536003166,"y":3036.373778518592},"selected":true,"data":{"label":"GCD","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"UTVh1RHRWb5eA-S7ayLp8"},"zIndex":999,"width":221,"height":49,"style":{"width":221,"height":49},"resizing":false,"positionAbsolute":{"x":-110.12009536003166,"y":3036.373778518592},"dragging":false,"selectable":true,"focusable":true},{"id":"mdAV4JlF08q-ZQpb5C3q6","type":"subtopic","position":{"x":-108.12009536003166,"y":3088.8972064310155},"selected":true,"data":{"label":"Operation Queues","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"aROcI1RucAyu-gHn-tVnj"},"zIndex":999,"width":217,"height":49,"style":{"width":217,"height":49},"resizing":false,"positionAbsolute":{"x":-108.12009536003166,"y":3088.8972064310155},"dragging":false,"selectable":true,"focusable":true},{"id":"3GtrUXvLgvXK3G8cXRb-P","type":"subtopic","position":{"x":-108.12009536003166,"y":3142.7912124800087},"selected":true,"data":{"label":"async / await in Swift","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"mdAV4JlF08q-ZQpb5C3q6"},"zIndex":999,"width":217,"height":49,"style":{"width":217,"height":49},"resizing":false,"positionAbsolute":{"x":-108.12009536003166,"y":3142.7912124800087},"dragging":false,"selectable":true,"focusable":true},{"id":"Tv8-WUcKiZMLHuunQwise","type":"topic","position":{"x":-478.9940790252072,"y":3295.734312830552},"selected":true,"data":{"label":"Dependency Manager","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"fbloF-u4XwdHLmBS9flZm"},"zIndex":999,"width":233,"height":49,"style":{"width":233,"height":49},"resizing":false,"positionAbsolute":{"x":-478.9940790252072,"y":3295.734312830552},"dragging":false,"selectable":true,"focusable":true},{"id":"epr1sOEZIAOwlgb8bre7r","type":"subtopic","position":{"x":-480.4940790252072,"y":3170.8972064310155},"selected":true,"data":{"label":"CocoaPods","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"aROcI1RucAyu-gHn-tVnj"},"zIndex":999,"width":121,"height":49,"style":{"width":121,"height":49},"resizing":false,"positionAbsolute":{"x":-480.4940790252072,"y":3170.8972064310155},"dragging":false,"selectable":true,"focusable":true},{"id":"tIHjjNTXJWcNgkO6TB9ea","type":"subtopic","position":{"x":-355.16112650248095,"y":3170.8972064310155},"selected":true,"data":{"label":"Carthage","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"epr1sOEZIAOwlgb8bre7r"},"zIndex":999,"width":110,"height":49,"style":{"width":110,"height":49},"resizing":false,"positionAbsolute":{"x":-355.16112650248095,"y":3170.8972064310155},"dragging":false,"selectable":true,"focusable":true},{"id":"KFkX8_Hv9SCFeCtZMZIQM","type":"subtopic","position":{"x":-478.9940790252072,"y":3224.8972064310155},"selected":true,"data":{"label":"Swift Package Manager","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"epr1sOEZIAOwlgb8bre7r"},"zIndex":999,"width":233,"height":49,"style":{"width":233,"height":49},"resizing":false,"positionAbsolute":{"x":-478.9940790252072,"y":3224.8972064310155},"dragging":false,"selectable":true,"focusable":true},{"id":"pZVPsgvCpP3zUgBM4i0CF","type":"topic","position":{"x":-146.66112650248095,"y":3363.918239546188},"selected":true,"data":{"label":"Frameworks & Library","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"Tv8-WUcKiZMLHuunQwise"},"zIndex":999,"width":217,"height":51,"style":{"width":217,"height":51},"resizing":false,"positionAbsolute":{"x":-146.66112650248095,"y":3363.918239546188},"dragging":false,"selectable":true,"focusable":true},{"id":"MaHtZSIPxDzrnB33_9OdV","type":"subtopic","position":{"x":-146.66112650248095,"y":3464.7912124800087},"selected":true,"data":{"label":"XCFramework","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"3GtrUXvLgvXK3G8cXRb-P"},"zIndex":999,"width":217,"height":49,"style":{"width":217,"height":49},"resizing":false,"positionAbsolute":{"x":-146.66112650248095,"y":3464.7912124800087},"dragging":false,"selectable":true,"focusable":true},{"id":"RuXuHQhMt2nywk43LgGeJ","type":"subtopic","position":{"x":-146.66112650248095,"y":3518.7912124800087},"selected":true,"data":{"label":"Static Library","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"MaHtZSIPxDzrnB33_9OdV"},"zIndex":999,"width":217,"height":49,"style":{"width":217,"height":49},"resizing":false,"positionAbsolute":{"x":-146.66112650248095,"y":3518.7912124800087},"dragging":false,"selectable":true,"focusable":true},{"id":"Lrb4HZYrZU7SJlbedZp7U","type":"subtopic","position":{"x":-146.66112650248095,"y":3572.7912124800087},"selected":true,"data":{"label":"Dynamic Library","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"RuXuHQhMt2nywk43LgGeJ"},"zIndex":999,"width":217,"height":49,"style":{"width":217,"height":49},"resizing":false,"positionAbsolute":{"x":-146.66112650248095,"y":3572.7912124800087},"dragging":false,"selectable":true,"focusable":true},{"id":"1DZYPqvgY6GtwMCS7N2y-","type":"topic","position":{"x":229.87947885298604,"y":3518.7912124800087},"selected":true,"data":{"label":"Accessibility","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"pZVPsgvCpP3zUgBM4i0CF"},"zIndex":999,"width":166,"height":51,"style":{"width":166,"height":51},"resizing":false,"positionAbsolute":{"x":229.87947885298604,"y":3518.7912124800087},"dragging":false,"selectable":true,"focusable":true},{"id":"h34LaYQ3JYN2AZPMDqpmO","type":"subtopic","position":{"x":204.37947885298604,"y":3315.7912124800087},"selected":true,"data":{"label":"Accessibility Inspector","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"MaHtZSIPxDzrnB33_9OdV"},"zIndex":999,"width":217,"height":49,"style":{"width":217,"height":49},"resizing":false,"positionAbsolute":{"x":204.37947885298604,"y":3315.7912124800087},"dragging":false,"selectable":true,"focusable":true},{"id":"trAMZVA4tDB7b_qAgiWNW","type":"subtopic","position":{"x":204.37947885298604,"y":3369.7912124800087},"selected":true,"data":{"label":"Voice Over","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"RuXuHQhMt2nywk43LgGeJ"},"zIndex":999,"width":217,"height":49,"style":{"width":217,"height":49},"resizing":false,"positionAbsolute":{"x":204.37947885298604,"y":3369.7912124800087},"dragging":false,"selectable":true,"focusable":true},{"id":"0nei6iwP4Pgi_j4vVi_Qt","type":"subtopic","position":{"x":204.37947885298604,"y":3423.7912124800087},"selected":true,"data":{"label":"Dynamic Type","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"Lrb4HZYrZU7SJlbedZp7U"},"zIndex":999,"width":217,"height":49,"style":{"width":217,"height":49},"resizing":false,"positionAbsolute":{"x":204.37947885298604,"y":3423.7912124800087},"dragging":false,"selectable":true,"focusable":true},{"id":"S2XZJv3TAnEJcTcHA3e62","type":"paragraph","position":{"x":207.87947885298604,"y":3644.9741149111323},"selected":true,"data":{"label":"Common Services","style":{"fontSize":20,"justifyContent":"flex-start","textAlign":"left"},"oldId":"YzJVkZbOzgp5w9N0IQBN_"},"zIndex":999,"width":210,"height":70,"positionAbsolute":{"x":207.87947885298604,"y":3644.9741149111323},"dragging":false,"style":{"width":210,"height":70},"resizing":false,"selectable":true,"focusable":true},{"id":"tRGa3-KBDwc7pCZi7Bdh0","type":"section","position":{"x":493.87947885298604,"y":3658.4741149111323},"selected":true,"data":{"label":"","style":{"width":150,"height":100,"fontSize":17},"oldId":"tBybxRQEnlt6VuyTyCJD7"},"zIndex":-999,"width":174,"height":336,"style":{"width":174,"height":336},"positionAbsolute":{"x":493.87947885298604,"y":3658.4741149111323},"dragging":false,"resizing":false,"selectable":true,"focusable":true},{"id":"PdzCQXZIivw3zCYPtokJV","type":"subtopic","position":{"x":493.87947885298604,"y":3655.4741149111323},"selected":true,"data":{"label":"Frameworks","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"mUMDZsgzCB6cs_K6pfUY1"},"zIndex":999,"width":174,"height":49,"style":{"width":174,"height":49},"resizing":false,"positionAbsolute":{"x":493.87947885298604,"y":3655.4741149111323},"dragging":false,"selectable":true,"focusable":true},{"id":"k3uHcF0CsyHr6PK95UwR1","type":"subtopic","position":{"x":503.87947885298604,"y":3715.9741149111323},"selected":true,"data":{"label":"ARKit","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"gqd6zjxP_qFj4Ru-6LARo"},"zIndex":999,"width":154,"height":49,"style":{"width":154,"height":49},"resizing":false,"positionAbsolute":{"x":503.87947885298604,"y":3715.9741149111323},"dragging":false,"selectable":true,"focusable":true},{"id":"Jsu5f6QASpuvpky_W5q-O","type":"subtopic","position":{"x":503.87947885298604,"y":3769.9741149111323},"selected":true,"data":{"label":"HealthKit","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"jb89kQxDhZND3vQo0EH7r"},"zIndex":999,"width":154,"height":49,"style":{"width":154,"height":49},"resizing":false,"positionAbsolute":{"x":503.87947885298604,"y":3769.9741149111323},"dragging":false,"selectable":true,"focusable":true},{"id":"H5F9P5xeQiHhWhS6jEzp5","type":"subtopic","position":{"x":503.87947885298604,"y":3823.9741149111323},"selected":true,"data":{"label":"GameKit","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"Jsu5f6QASpuvpky_W5q-O"},"zIndex":999,"width":154,"height":49,"style":{"width":154,"height":49},"resizing":false,"positionAbsolute":{"x":503.87947885298604,"y":3823.9741149111323},"dragging":false,"selectable":true,"focusable":true},{"id":"XOXsjaQ-YyuAMpVCqH8KG","type":"subtopic","position":{"x":503.87947885298604,"y":3877.9741149111323},"selected":true,"data":{"label":"MapKit","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"H5F9P5xeQiHhWhS6jEzp5"},"zIndex":999,"width":154,"height":49,"style":{"width":154,"height":49},"resizing":false,"positionAbsolute":{"x":503.87947885298604,"y":3877.9741149111323},"dragging":false,"selectable":true,"focusable":true},{"id":"7s9Elv80TbZX_-NZpyutj","type":"subtopic","position":{"x":503.87947885298604,"y":3932.4741149111323},"selected":true,"data":{"label":"Core ML","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"XOXsjaQ-YyuAMpVCqH8KG"},"zIndex":999,"width":154,"height":49,"style":{"width":154,"height":49},"resizing":false,"positionAbsolute":{"x":503.87947885298604,"y":3932.4741149111323},"dragging":false,"selectable":true,"focusable":true},{"id":"loxQ6vCyDimwNFKqj4ZUg","type":"paragraph","position":{"x":-32.120095360031655,"y":3644.9741149111323},"selected":true,"data":{"label":"Linting","style":{"fontSize":20,"justifyContent":"flex-start","textAlign":"left"},"oldId":"S2XZJv3TAnEJcTcHA3e62"},"zIndex":999,"width":100,"height":69,"positionAbsolute":{"x":-32.120095360031655,"y":3644.9741149111323},"dragging":false,"style":{"width":100,"height":69},"resizing":false,"selectable":true,"focusable":true},{"id":"DVe8S6TjKcQ8LT5G-aMVa","type":"topic","position":{"x":-475.9940790252072,"y":3654.4741149111323},"selected":true,"data":{"label":"Code Quality Tools","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"pZVPsgvCpP3zUgBM4i0CF"},"zIndex":999,"width":217,"height":51,"style":{"width":217,"height":51},"resizing":false,"positionAbsolute":{"x":-475.9940790252072,"y":3654.4741149111323},"dragging":false,"selectable":true,"focusable":true},{"id":"NnTC3R8goZQTXHmfHKHbM","type":"subtopic","position":{"x":-475.9940790252072,"y":3427.7912124800087},"selected":true,"data":{"label":"SwiftLint","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"MaHtZSIPxDzrnB33_9OdV"},"zIndex":999,"width":217,"height":49,"style":{"width":217,"height":49},"resizing":false,"positionAbsolute":{"x":-475.9940790252072,"y":3427.7912124800087},"dragging":false,"selectable":true,"focusable":true},{"id":"F5796wzm5Ar6sQt-1y8vH","type":"subtopic","position":{"x":-475.9940790252072,"y":3481.7912124800087},"selected":true,"data":{"label":"Tailor","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"RuXuHQhMt2nywk43LgGeJ"},"zIndex":999,"width":217,"height":49,"style":{"width":217,"height":49},"resizing":false,"positionAbsolute":{"x":-475.9940790252072,"y":3481.7912124800087},"dragging":false,"selectable":true,"focusable":true},{"id":"TMFvfwG45Z00PzrzZIVhT","type":"subtopic","position":{"x":-475.9940790252072,"y":3535.7912124800087},"selected":true,"data":{"label":"SwiftFormat","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"Lrb4HZYrZU7SJlbedZp7U"},"zIndex":999,"width":217,"height":49,"style":{"width":217,"height":49},"resizing":false,"positionAbsolute":{"x":-475.9940790252072,"y":3535.7912124800087},"dragging":false,"selectable":true,"focusable":true},{"id":"hLkexoRp0CjR8BW6xNDgy","type":"paragraph","position":{"x":-435.9940790252072,"y":3755.4741149111323},"selected":true,"data":{"label":"Debugging","style":{"fontSize":20,"justifyContent":"flex-start","textAlign":"left"},"oldId":"loxQ6vCyDimwNFKqj4ZUg"},"zIndex":999,"width":137,"height":69,"positionAbsolute":{"x":-435.9940790252072,"y":3755.4741149111323},"dragging":false,"style":{"width":137,"height":69},"resizing":false,"selectable":true,"focusable":true},{"id":"OZZ3UnWN2gFflbM_WaJ8H","type":"topic","position":{"x":-181.02142387891507,"y":3764.4741149111323},"selected":true,"data":{"label":"Debugging Techniques","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"DVe8S6TjKcQ8LT5G-aMVa"},"zIndex":999,"width":222,"height":51,"style":{"width":222,"height":51},"resizing":false,"positionAbsolute":{"x":-181.02142387891507,"y":3764.4741149111323},"dragging":false,"selectable":true,"focusable":true},{"id":"WxshXCloVDkVkQV0JvI1w","type":"subtopic","position":{"x":-173.52142387891507,"y":3848.7912124800087},"selected":true,"data":{"label":"XCode Debugger","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"NnTC3R8goZQTXHmfHKHbM"},"zIndex":999,"width":207,"height":49,"style":{"width":207,"height":49},"resizing":false,"positionAbsolute":{"x":-173.52142387891507,"y":3848.7912124800087},"dragging":false,"selectable":true,"focusable":true},{"id":"Y24WWPej0C7-FiBeXpvl3","type":"subtopic","position":{"x":-172.52142387891507,"y":3902.7912124800087},"selected":true,"data":{"label":"Profiling Instruments","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"F5796wzm5Ar6sQt-1y8vH"},"zIndex":999,"width":205,"height":49,"style":{"width":205,"height":49},"resizing":false,"positionAbsolute":{"x":-172.52142387891507,"y":3902.7912124800087},"dragging":false,"selectable":true,"focusable":true},{"id":"GtK5YThTHPSetosY0WMRw","type":"paragraph","position":{"x":277.15193584006727,"y":4073.7912124800087},"selected":true,"data":{"label":"Testing","style":{"fontSize":20,"justifyContent":"flex-start","textAlign":"left"},"oldId":"hLkexoRp0CjR8BW6xNDgy"},"zIndex":999,"width":103,"height":66,"positionAbsolute":{"x":277.15193584006727,"y":4073.7912124800087},"dragging":false,"style":{"width":103,"height":66},"resizing":false,"selectable":true,"focusable":true},{"id":"zcKDSUL7_3D-eN-rtu9Cm","type":"section","position":{"x":222.15193584006727,"y":3765.0741149111323},"selected":true,"data":{"label":"","style":{"width":150,"height":100,"fontSize":17},"oldId":"tRGa3-KBDwc7pCZi7Bdh0"},"zIndex":-999,"width":212,"height":171,"style":{"width":212,"height":171},"positionAbsolute":{"x":222.15193584006727,"y":3765.0741149111323},"dragging":false,"resizing":false,"selectable":true,"focusable":true},{"id":"5589B1DKaCd-9l9DfKH3o","type":"subtopic","position":{"x":222.15193584006727,"y":3762.0741149111323},"selected":true,"data":{"label":"Unit & UI Testing","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"PdzCQXZIivw3zCYPtokJV"},"zIndex":999,"width":212,"height":49,"style":{"width":212,"height":49},"resizing":false,"positionAbsolute":{"x":222.15193584006727,"y":3762.0741149111323},"dragging":false,"selectable":true,"focusable":true},{"id":"xZmBJVq5FHNdm1BDuZbbS","type":"subtopic","position":{"x":232.15193584006727,"y":3822.5741149111323},"selected":true,"data":{"label":"XCTest","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"k3uHcF0CsyHr6PK95UwR1"},"zIndex":999,"width":192,"height":49,"style":{"width":192,"height":49},"resizing":false,"positionAbsolute":{"x":232.15193584006727,"y":3822.5741149111323},"dragging":false,"selectable":true,"focusable":true},{"id":"ZQSUKPbXZl5yKra2ap8JR","type":"subtopic","position":{"x":231.65193584006727,"y":3876.5741149111323},"selected":true,"data":{"label":"XCUITest","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"Jsu5f6QASpuvpky_W5q-O"},"zIndex":999,"width":193,"height":49,"style":{"width":193,"height":49},"resizing":false,"positionAbsolute":{"x":231.65193584006727,"y":3876.5741149111323},"dragging":false,"selectable":true,"focusable":true},{"id":"uczkyc30K_qqcarZCGTdF","type":"subtopic","position":{"x":222.15193584006727,"y":3944.0741149111323},"selected":true,"data":{"label":"Test Plan & Coverage","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"5589B1DKaCd-9l9DfKH3o"},"zIndex":999,"width":212,"height":49,"style":{"width":212,"height":49},"resizing":false,"positionAbsolute":{"x":222.15193584006727,"y":3944.0741149111323},"dragging":false,"selectable":true,"focusable":true},{"id":"IX_c1JTc1jVpPUhYRtEfg","type":"paragraph","position":{"x":484.6806963612522,"y":4074.7912124800087},"selected":true,"data":{"label":"App Distribution","style":{"fontSize":20,"justifyContent":"flex-start","textAlign":"left"},"oldId":"GtK5YThTHPSetosY0WMRw"},"zIndex":999,"width":182,"height":64,"positionAbsolute":{"x":484.6806963612522,"y":4074.7912124800087},"dragging":false,"style":{"width":182,"height":64},"resizing":false,"selectable":true,"focusable":true},{"id":"iZAXQKLe2LaIIifVFtFOL","type":"topic","position":{"x":257.37947885298604,"y":4184.29121248001},"selected":true,"data":{"label":"App Store Distribution","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"OZZ3UnWN2gFflbM_WaJ8H"},"zIndex":999,"width":230,"height":51,"style":{"width":230,"height":51},"resizing":false,"positionAbsolute":{"x":257.37947885298604,"y":4184.29121248001},"dragging":false,"selectable":true,"focusable":true},{"id":"KCJgCjMJGxIcf13XSEclO","type":"topic","position":{"x":66.53089825044697,"y":4184.29121248001},"selected":true,"data":{"label":"TestFlight","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"iZAXQKLe2LaIIifVFtFOL"},"zIndex":999,"width":134,"height":49,"style":{"width":134,"height":49},"resizing":false,"positionAbsolute":{"x":66.53089825044697,"y":4184.29121248001},"dragging":false,"selectable":true,"focusable":true},{"id":"_W3vb0b14FrWB2fH7DHC7","type":"topic","position":{"x":-133.02142387891507,"y":4184.29121248001},"selected":true,"data":{"label":"FastLane","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"KCJgCjMJGxIcf13XSEclO"},"zIndex":999,"width":134,"height":49,"style":{"width":134,"height":49},"resizing":false,"positionAbsolute":{"x":-133.02142387891507,"y":4184.29121248001},"dragging":false,"selectable":true,"focusable":true},{"id":"U4xE1enkZxUME0j0gutae","type":"topic","position":{"x":-133.02142387891507,"y":4019.7912124800096},"selected":true,"data":{"label":"CI / CD","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"_W3vb0b14FrWB2fH7DHC7"},"zIndex":999,"width":134,"height":49,"style":{"width":134,"height":49},"resizing":false,"positionAbsolute":{"x":-133.02142387891507,"y":4019.7912124800096},"dragging":false,"selectable":true,"focusable":true},{"id":"TrblGyy81Oep2CBxoZkaf","type":"subtopic","position":{"x":-470.0214238789151,"y":3911.7912124800087},"selected":true,"data":{"label":"Jenkins","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"WxshXCloVDkVkQV0JvI1w"},"zIndex":999,"width":230,"height":49,"style":{"width":230,"height":49},"resizing":false,"positionAbsolute":{"x":-470.0214238789151,"y":3911.7912124800087},"dragging":false,"selectable":true,"focusable":true},{"id":"tWxuFh0xDugdplnHt_G0e","type":"subtopic","position":{"x":-470.0214238789151,"y":3965.7912124800087},"selected":true,"data":{"label":"Circle CI","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"Y24WWPej0C7-FiBeXpvl3"},"zIndex":999,"width":230,"height":49,"style":{"width":230,"height":49},"resizing":false,"positionAbsolute":{"x":-470.0214238789151,"y":3965.7912124800087},"dragging":false,"selectable":true,"focusable":true},{"id":"LltERZaHsI-R_3O_3twpk","type":"subtopic","position":{"x":-472.0214238789151,"y":4019.7912124800087},"selected":true,"data":{"label":"GitHub Actions","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"TrblGyy81Oep2CBxoZkaf"},"zIndex":999,"width":230,"height":49,"style":{"width":230,"height":49},"resizing":false,"positionAbsolute":{"x":-472.0214238789151,"y":4019.7912124800087},"dragging":false,"selectable":true,"focusable":true},{"id":"VylaBSDAVFzveVfytI1Fz","type":"subtopic","position":{"x":-472.0214238789151,"y":4073.7912124800087},"selected":true,"data":{"label":"GitLab","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"tWxuFh0xDugdplnHt_G0e"},"zIndex":999,"width":230,"height":49,"style":{"width":230,"height":49},"resizing":false,"positionAbsolute":{"x":-472.0214238789151,"y":4073.7912124800087},"dragging":false,"selectable":true,"focusable":true},{"id":"r3fNx1Hk_TGlQSDtRnXqF","type":"subtopic","position":{"x":-472.0214238789151,"y":4127.791212480009},"selected":true,"data":{"label":"Azure","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"VylaBSDAVFzveVfytI1Fz"},"zIndex":999,"width":230,"height":49,"style":{"width":230,"height":49},"resizing":false,"positionAbsolute":{"x":-472.0214238789151,"y":4127.791212480009},"dragging":false,"selectable":true,"focusable":true},{"id":"jZpH-T2hW-XBdprVqemGi","type":"topic","position":{"x":-404.4940790252072,"y":4322.29121248001},"selected":true,"data":{"label":"App Store Optimization (ASO)","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"_W3vb0b14FrWB2fH7DHC7"},"zIndex":999,"width":274,"height":49,"style":{"width":274,"height":49},"resizing":false,"positionAbsolute":{"x":-404.4940790252072,"y":4322.29121248001},"dragging":false,"selectable":true,"focusable":true},{"id":"lse0W6_nPrjGJGW2bVFfM","type":"paragraph","position":{"x":-46.02142387891507,"y":4313.79121248001},"selected":true,"data":{"label":"Continuous Learning","style":{"fontSize":20,"justifyContent":"flex-start","textAlign":"left"},"oldId":"IX_c1JTc1jVpPUhYRtEfg"},"zIndex":999,"width":227,"height":66,"positionAbsolute":{"x":-46.02142387891507,"y":4313.79121248001},"dragging":false,"style":{"width":227,"height":66},"resizing":false,"selectable":true,"focusable":true},{"id":"fOOQurIL1w3PwH5Mep9x1","type":"topic","position":{"x":389.5235851135475,"y":4322.29121248001},"selected":true,"data":{"label":"Keeping Updated with WWDC","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"jZpH-T2hW-XBdprVqemGi"},"zIndex":999,"width":292,"height":49,"style":{"width":292,"height":49},"resizing":false,"positionAbsolute":{"x":389.5235851135475,"y":4322.29121248001},"dragging":false,"selectable":true,"focusable":true},{"id":"e7qVpQeu2iQL0c9MOMCVe","type":"subtopic","position":{"x":389.5235851135475,"y":4416.29121248001},"selected":true,"data":{"label":"Latest Swift Version","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"7s9Elv80TbZX_-NZpyutj"},"zIndex":999,"width":292,"height":49,"style":{"width":292,"height":49},"resizing":false,"positionAbsolute":{"x":389.5235851135475,"y":4416.29121248001},"dragging":false,"selectable":true,"focusable":true},{"id":"SBlLNfyWzzhdFNtNtkLet","type":"subtopic","position":{"x":389.5235851135475,"y":4470.29121248001},"selected":true,"data":{"label":"Latest iOS SDK","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"e7qVpQeu2iQL0c9MOMCVe"},"zIndex":999,"width":292,"height":49,"style":{"width":292,"height":49},"resizing":false,"positionAbsolute":{"x":389.5235851135475,"y":4470.29121248001},"dragging":false,"selectable":true,"focusable":true},{"id":"0dbdUmWvTIJ0fkUuLp9gR","type":"subtopic","position":{"x":389.5235851135475,"y":4524.29121248001},"selected":true,"data":{"label":"New Feature Announcements","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center"},"oldId":"SBlLNfyWzzhdFNtNtkLet"},"zIndex":999,"width":292,"height":49,"style":{"width":292,"height":49},"resizing":false,"positionAbsolute":{"x":389.5235851135475,"y":4524.29121248001},"dragging":false,"selectable":true,"focusable":true},{"id":"XzXLGjJr2F8Ln7gP0e5N8","type":"paragraph","position":{"x":-131.52142387891513,"y":4457.871616221306},"selected":true,"data":{"label":"Have a look at the following relevant tracks","style":{"fontSize":17,"justifyContent":"flex-start","textAlign":"center","borderColor":"#000000"},"oldId":"jXtqI8k4Abz-vr01IcpWL"},"zIndex":999,"width":401,"height":113,"positionAbsolute":{"x":-131.52142387891513,"y":4457.871616221306},"dragging":false,"style":{"width":401,"height":113},"resizing":false,"selectable":true,"focusable":true},{"id":"4fauwiq2CJnzDA7Z9Pmeo","type":"button","position":{"x":-119.18102870413122,"y":4511.679985574316},"selected":true,"data":{"label":"Android","href":"https://roadmap.sh/android","color":"#ffffff","backgroundColor":"#2a79e4","style":{"fontSize":17},"oldId":"eYziHRN-gsg9qr8Yddu2K"},"zIndex":999,"width":119,"height":49,"positionAbsolute":{"x":-119.18102870413122,"y":4511.679985574316},"dragging":false,"selectable":true,"focusable":true,"style":{"width":119,"height":49},"resizing":false},{"id":"eYziHRN-gsg9qr8Yddu2K","type":"button","position":{"x":4.958673919434659,"y":4511.679985574316},"selected":true,"data":{"label":"Flutter","href":"https://roadmap.sh/flutter","color":"#ffffff","backgroundColor":"#2a79e4","style":{"fontSize":17}},"zIndex":999,"width":103,"height":49,"positionAbsolute":{"x":4.958673919434659,"y":4511.679985574316},"dragging":false,"selectable":true,"focusable":true,"style":{"width":103,"height":49},"resizing":false},{"id":"kcOaZuvgtQ1ptjTvKfd2l","type":"button","position":{"x":113.09837654300054,"y":4511.679985574316},"selected":true,"data":{"label":"React Native","href":"https://roadmap.sh/flutter","color":"#ffffff","backgroundColor":"#2a79e4","style":{"fontSize":17},"oldId":"eYziHRN-gsg9qr8Yddu2K"},"zIndex":999,"width":146,"height":49,"positionAbsolute":{"x":113.09837654300054,"y":4511.679985574316},"dragging":false,"selectable":true,"focusable":true,"style":{"width":146,"height":49},"resizing":false}],"edges":[{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"iogwMmOvub2ZF4zgg6WyF","sourceHandle":"x2","target":"_hYN0gEi9BL24nptEtXWU","targetHandle":"w1","data":{"edgeStyle":"solid"},"id":"XX0I26JoVMVXIe_7bVMix","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"_hYN0gEi9BL24nptEtXWU","sourceHandle":"z2","target":"idLHBxhvcIqZTqmh_E8Az","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"dFn6kGOoJ-0BzJJEb9DSG","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"_hYN0gEi9BL24nptEtXWU","sourceHandle":"z2","target":"os3Pa6W9SSNEzgmlBbglQ","targetHandle":"y2","data":{"edgeStyle":"dashed"},"id":"arkF7QJJRbCBYWp0crqa2","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"_hYN0gEi9BL24nptEtXWU","sourceHandle":"z2","target":"3oInpqvTSSC5_K6i7j8N7","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"HNVw8OboycWKLEtEbG2bn","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"_hYN0gEi9BL24nptEtXWU","sourceHandle":"z2","target":"YKhuRbcUFzo0hTvuTq-Yl","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"auB7Png72XjmhcLr3IJA7","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"jZ67HhVRelJaxjsCckSSI","sourceHandle":"x2","target":"hWA7RtuqltMTmHdcCnmES","targetHandle":"y1","data":{"edgeStyle":"solid"},"id":"2aoDIr80lXSJLW1hIGUkb","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"sourceHandle":"z2","target":"NMznG9mo2wzNFnjhg990f","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"m-_y7nLeYFkUKGiacxWA0","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"sourceHandle":"z2","target":"gc_7cuIO2_joKlQRAPDfX","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"G7pXuJfkyt2nWAOHU8yV0","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"rrrvATyhXqRgJGWI3z0WF","sourceHandle":"x2","target":"AvbMQ5vY3ip1oX_6Yq4ie","targetHandle":"w2","data":{"edgeStyle":"dashed"},"id":"2_6Yz3-Agx9_rEN5xW86c","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"hWA7RtuqltMTmHdcCnmES","sourceHandle":"w2","target":"1AJv95mTLpR7L8KBoGym8","targetHandle":"x1","data":{"edgeStyle":"dashed"},"id":"kgMI98fg2-mKMgUs0wnjD","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"hWA7RtuqltMTmHdcCnmES","sourceHandle":"y2","target":"0etAs56EeBfh_0IlAaSra","targetHandle":"w1","data":{"edgeStyle":"solid"},"selected":true,"id":"ts38Q2ceHs60TJscUBZVE","focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"jZ67HhVRelJaxjsCckSSI","sourceHandle":"y2","target":"h6ceO0kiBIxNRkPzN3hBY","targetHandle":"z1","data":{"edgeStyle":"dashed"},"id":"ZiMV7umyPdhy3JJDcopR-","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"jZ67HhVRelJaxjsCckSSI","sourceHandle":"y2","target":"_JlT9oKQ6Yu4UX6l19G8P","targetHandle":"z2","data":{"edgeStyle":"dashed"},"id":"WI-MhbxrehFcVwyGJ5CQJ","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"_hYN0gEi9BL24nptEtXWU","sourceHandle":"x2","target":"jZ67HhVRelJaxjsCckSSI","targetHandle":"w1","data":{"edgeStyle":"solid"},"id":"qUrLBzvXvJOg53HBfjrOI","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"nGCG74_Xp_Ngt0u7PZnZl","sourceHandle":"x2","target":"nGCG74_Xp_Ngt0u7PZnZl","targetHandle":"x1","data":{"edgeStyle":"dashed"},"selected":true,"focusable":true,"selectable":true,"id":"reactflow__edge-nGCG74_Xp_Ngt0u7PZnZlx2-nGCG74_Xp_Ngt0u7PZnZlx1"},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"mk02yV7_XHkgp2xdNIxaU","sourceHandle":"z2","target":"FoqlB7xBIrV4yUp4ReBkw","targetHandle":"y2","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-mk02yV7_XHkgp2xdNIxaUz2-FoqlB7xBIrV4yUp4ReBkwy2","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"mk02yV7_XHkgp2xdNIxaU","sourceHandle":"z2","target":"Pj-hqRZUmwx1WhmTbLoFD","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-mk02yV7_XHkgp2xdNIxaUz2-Pj-hqRZUmwx1WhmTbLoFDy1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"mk02yV7_XHkgp2xdNIxaU","sourceHandle":"z2","target":"tqbg8mBJfjuXacdMlIB_L","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-mk02yV7_XHkgp2xdNIxaUz2-tqbg8mBJfjuXacdMlIB_Ly1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"mk02yV7_XHkgp2xdNIxaU","sourceHandle":"z2","target":"DZaY060-5D6PbfryOZH9H","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-mk02yV7_XHkgp2xdNIxaUz2-DZaY060-5D6PbfryOZH9Hy1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"mk02yV7_XHkgp2xdNIxaU","sourceHandle":"z2","target":"N5ojp6bqgH074MPKYjCHV","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-mk02yV7_XHkgp2xdNIxaUz2-N5ojp6bqgH074MPKYjCHVy1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"mk02yV7_XHkgp2xdNIxaU","sourceHandle":"z2","target":"aALIiAxKz4f7B_EYyhBCi","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-mk02yV7_XHkgp2xdNIxaUz2-aALIiAxKz4f7B_EYyhBCiy1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"-PDYmhSQlGbLLFBJQ-Fo3","sourceHandle":"x2","target":"MrdIb9F-wSEbUz7KRnH3t","targetHandle":"w1","data":{"edgeStyle":"solid"},"id":"reactflow__edge--PDYmhSQlGbLLFBJQ-Fo3x2-MrdIb9F-wSEbUz7KRnH3tw1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"MrdIb9F-wSEbUz7KRnH3t","sourceHandle":"z2","target":"oOaMz9A5DZvrjxovMztXz","targetHandle":"y2","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-MrdIb9F-wSEbUz7KRnH3tz2-oOaMz9A5DZvrjxovMztXzy2","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"MrdIb9F-wSEbUz7KRnH3t","sourceHandle":"z2","target":"KJ7fM-V0_azY_lzmhjJAN","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-MrdIb9F-wSEbUz7KRnH3tz2-KJ7fM-V0_azY_lzmhjJANy1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"MrdIb9F-wSEbUz7KRnH3t","sourceHandle":"x2","target":"F2JD1zBrfcbWxlWkyE7aZ","targetHandle":"w2","data":{"edgeStyle":"solid"},"id":"reactflow__edge-MrdIb9F-wSEbUz7KRnH3tx2-F2JD1zBrfcbWxlWkyE7aZw2","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"F2JD1zBrfcbWxlWkyE7aZ","sourceHandle":"y2","target":"IduGSdUa2Fi7VFMLKgmsS","targetHandle":"z1","data":{"edgeStyle":"solid"},"selected":true,"id":"reactflow__edge-F2JD1zBrfcbWxlWkyE7aZy2-IduGSdUa2Fi7VFMLKgmsSz1","selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"IduGSdUa2Fi7VFMLKgmsS","sourceHandle":"w2","target":"leozxW-5fAOfkKbQM4FD1","targetHandle":"x1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-IduGSdUa2Fi7VFMLKgmsSw2-leozxW-5fAOfkKbQM4FD1x1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"IduGSdUa2Fi7VFMLKgmsS","sourceHandle":"x2","target":"nGCG74_Xp_Ngt0u7PZnZl","targetHandle":"w1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-IduGSdUa2Fi7VFMLKgmsSx2-nGCG74_Xp_Ngt0u7PZnZlw1","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"oOaMz9A5DZvrjxovMztXz","sourceHandle":"w2","target":"0BSX80W1TJ_Ia_Zh2zKyK","targetHandle":"x2","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-oOaMz9A5DZvrjxovMztXzw2-0BSX80W1TJ_Ia_Zh2zKyKx2","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"KJ7fM-V0_azY_lzmhjJAN","sourceHandle":"x2","target":"z4-1Gc95JKYAn2RPFc7hw","targetHandle":"w2","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-KJ7fM-V0_azY_lzmhjJANx2-z4-1Gc95JKYAn2RPFc7hww2","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"F2JD1zBrfcbWxlWkyE7aZ","sourceHandle":"x2","target":"mk02yV7_XHkgp2xdNIxaU","targetHandle":"w1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-F2JD1zBrfcbWxlWkyE7aZx2-mk02yV7_XHkgp2xdNIxaUw1","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"mk02yV7_XHkgp2xdNIxaU","sourceHandle":"x2","target":"sGnDm2xuJxqfU3pwmlY7H","targetHandle":"w2","data":{"edgeStyle":"solid"},"selected":true,"focusable":true,"selectable":true,"id":"reactflow__edge-mk02yV7_XHkgp2xdNIxaUx2-sGnDm2xuJxqfU3pwmlY7Hw2"},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"sGnDm2xuJxqfU3pwmlY7H","sourceHandle":"y2","target":"U_xXGSFF5iibQ4VkzPAWf","targetHandle":"z1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-sGnDm2xuJxqfU3pwmlY7Hy2-U_xXGSFF5iibQ4VkzPAWfz1","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"sGnDm2xuJxqfU3pwmlY7H","sourceHandle":"x2","target":"1AtH8yhL6W4S9eYZBaCHL","targetHandle":"w1","data":{"edgeStyle":"solid"},"selected":true,"selectable":true,"focusable":true,"id":"reactflow__edge-sGnDm2xuJxqfU3pwmlY7Hx2-1AtH8yhL6W4S9eYZBaCHLw1"},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"1AtH8yhL6W4S9eYZBaCHL","sourceHandle":"y2","target":"la5M4VoH79bhnN8qj5Izp","targetHandle":"z1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-1AtH8yhL6W4S9eYZBaCHLy2-la5M4VoH79bhnN8qj5Izpz1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"la5M4VoH79bhnN8qj5Izp","sourceHandle":"w2","target":"OMk0bZJacEbjIzspe6Xew","targetHandle":"x1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-la5M4VoH79bhnN8qj5Izpw2-OMk0bZJacEbjIzspe6Xewx1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"OMk0bZJacEbjIzspe6Xew","sourceHandle":"z2","target":"R8LdFpfyS0MFYJuMLk8RG","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-OMk0bZJacEbjIzspe6Xewz2-R8LdFpfyS0MFYJuMLk8RGy1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"OMk0bZJacEbjIzspe6Xew","sourceHandle":"z2","target":"SeGfULWFR7ufdv4U9Db3F","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-OMk0bZJacEbjIzspe6Xewz2-SeGfULWFR7ufdv4U9Db3Fy1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"OMk0bZJacEbjIzspe6Xew","sourceHandle":"z2","target":"BJgoAgH85U6S3RtXq7hHV","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-OMk0bZJacEbjIzspe6Xewz2-BJgoAgH85U6S3RtXq7hHVy1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"la5M4VoH79bhnN8qj5Izp","sourceHandle":"x2","target":"eSLBtgpPec2Jz_Sjn6f5x","targetHandle":"w1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-la5M4VoH79bhnN8qj5Izpx2-eSLBtgpPec2Jz_Sjn6f5xw1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"eSLBtgpPec2Jz_Sjn6f5x","sourceHandle":"z2","target":"FwwqAchMC6qdnXbqg45he","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-eSLBtgpPec2Jz_Sjn6f5xz2-FwwqAchMC6qdnXbqg45hey1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"eSLBtgpPec2Jz_Sjn6f5x","sourceHandle":"z2","target":"AxQ5gCjk136kXsbBFTUNp","targetHandle":"y2","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-eSLBtgpPec2Jz_Sjn6f5xz2-AxQ5gCjk136kXsbBFTUNpy2","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"eSLBtgpPec2Jz_Sjn6f5x","sourceHandle":"z2","target":"odKZx4SUULF1y4gmiJZdu","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-eSLBtgpPec2Jz_Sjn6f5xz2-odKZx4SUULF1y4gmiJZduy1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"eSLBtgpPec2Jz_Sjn6f5x","sourceHandle":"z2","target":"-4q7MFXaTmpR_39PTeWD8","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-eSLBtgpPec2Jz_Sjn6f5xz2--4q7MFXaTmpR_39PTeWD8y1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"eSLBtgpPec2Jz_Sjn6f5x","sourceHandle":"z2","target":"YytdlQl41yrHSwlV-G3Pd","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-eSLBtgpPec2Jz_Sjn6f5xz2-YytdlQl41yrHSwlV-G3Pdy1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"eSLBtgpPec2Jz_Sjn6f5x","sourceHandle":"z2","target":"42sfiLKrVCcnMMjR7TFn1","targetHandle":"y2","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-eSLBtgpPec2Jz_Sjn6f5xz2-42sfiLKrVCcnMMjR7TFn1y2","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"eSLBtgpPec2Jz_Sjn6f5x","sourceHandle":"x2","target":"QrpJVLpZAREAPOC29fAYy","targetHandle":"w1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-eSLBtgpPec2Jz_Sjn6f5xx2-QrpJVLpZAREAPOC29fAYyw1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"QrpJVLpZAREAPOC29fAYy","sourceHandle":"z2","target":"X0QavvwPVJU6sulafPVUK","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-QrpJVLpZAREAPOC29fAYyz2-X0QavvwPVJU6sulafPVUKy1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"QrpJVLpZAREAPOC29fAYy","sourceHandle":"z2","target":"VuWUsg05WmOoP_RJ5AXJO","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-QrpJVLpZAREAPOC29fAYyz2-VuWUsg05WmOoP_RJ5AXJOy1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"QrpJVLpZAREAPOC29fAYy","sourceHandle":"z2","target":"hUHxlNa6iJJbDGdFNhynB","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-QrpJVLpZAREAPOC29fAYyz2-hUHxlNa6iJJbDGdFNhynBy1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"QrpJVLpZAREAPOC29fAYy","sourceHandle":"x2","target":"FAwW_a0smJ8HGlU3960jE","targetHandle":"w1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-QrpJVLpZAREAPOC29fAYyx2-FAwW_a0smJ8HGlU3960jEw1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"FAwW_a0smJ8HGlU3960jE","sourceHandle":"z2","target":"iMzYd8KUFnk6zqr4KecgX","targetHandle":"y2","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-FAwW_a0smJ8HGlU3960jEz2-iMzYd8KUFnk6zqr4KecgXy2","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"FAwW_a0smJ8HGlU3960jE","sourceHandle":"z2","target":"tuUuLInq0p-nhehe2AqPg","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-FAwW_a0smJ8HGlU3960jEz2-tuUuLInq0p-nhehe2AqPgy1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"FAwW_a0smJ8HGlU3960jE","sourceHandle":"z2","target":"FspN4yiBF9aEN7_SlXUe1","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-FAwW_a0smJ8HGlU3960jEz2-FspN4yiBF9aEN7_SlXUe1y1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"FAwW_a0smJ8HGlU3960jE","sourceHandle":"z2","target":"j2BL0sf3WjnJZZWa7cCjy","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-FAwW_a0smJ8HGlU3960jEz2-j2BL0sf3WjnJZZWa7cCjyy1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"-7OW2IgiMk1eot1PaYd7m","sourceHandle":"x2","target":"kAIKsDcDzwI1E0wSnC_uo","targetHandle":"z2","data":{"edgeStyle":"solid"},"selected":true,"id":"reactflow__edge--7OW2IgiMk1eot1PaYd7mx2-kAIKsDcDzwI1E0wSnC_uoz2","selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"kAIKsDcDzwI1E0wSnC_uo","sourceHandle":"w2","target":"dREH4cc39Y1bdc3LWj3kP","targetHandle":"x2","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-kAIKsDcDzwI1E0wSnC_uow2-dREH4cc39Y1bdc3LWj3kPx2","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"dREH4cc39Y1bdc3LWj3kP","sourceHandle":"w2","target":"yR94uHs0SiSScU4gPBzfr","targetHandle":"x1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-dREH4cc39Y1bdc3LWj3kPw2-yR94uHs0SiSScU4gPBzfrx1","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"kAIKsDcDzwI1E0wSnC_uo","sourceHandle":"x2","target":"INYUFVZ-_4htveLZ6EvRu","targetHandle":"w1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-kAIKsDcDzwI1E0wSnC_uox2-INYUFVZ-_4htveLZ6EvRuw1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"INYUFVZ-_4htveLZ6EvRu","sourceHandle":"x2","target":"YvuYJceeNNfLBpq2-3iiL","targetHandle":"w1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-INYUFVZ-_4htveLZ6EvRux2-YvuYJceeNNfLBpq2-3iiLw1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"kAIKsDcDzwI1E0wSnC_uo","sourceHandle":"z2","target":"ZGnWzU8SwucATFNOwfCO6","targetHandle":"y1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-kAIKsDcDzwI1E0wSnC_uoz2-ZGnWzU8SwucATFNOwfCO6y1","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"ZGnWzU8SwucATFNOwfCO6","sourceHandle":"x2","target":"4fPgpGwNXmVoZoruBRb_B","targetHandle":"w1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-ZGnWzU8SwucATFNOwfCO6x2-4fPgpGwNXmVoZoruBRb_Bw1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"4fPgpGwNXmVoZoruBRb_B","sourceHandle":"y2","target":"1I5eFKqFVBxWLAXfpgNXO","targetHandle":"z2","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-4fPgpGwNXmVoZoruBRb_By2-1I5eFKqFVBxWLAXfpgNXOz2","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"pNEE5C1E1wAjH_nTlzH6N","sourceHandle":"x2","target":"XX5rCd_yTHvOfYif4Kpbl","targetHandle":"w1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-pNEE5C1E1wAjH_nTlzH6Nx2-XX5rCd_yTHvOfYif4Kpblw1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"pNEE5C1E1wAjH_nTlzH6N","sourceHandle":"y2","target":"PvFp6aY7EUrYHn87RZAGj","targetHandle":"z1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-pNEE5C1E1wAjH_nTlzH6Ny2-PvFp6aY7EUrYHn87RZAGjz1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"PvFp6aY7EUrYHn87RZAGj","sourceHandle":"x2","target":"TLm70PlTI0K3Odn1iYxWX","targetHandle":"w1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-PvFp6aY7EUrYHn87RZAGjx2-TLm70PlTI0K3Odn1iYxWXw1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"KpcmuLWX0xAjz6ty4ebtB","sourceHandle":"w2","target":"w0i5Dxp40XS2HnF5nXeZI","targetHandle":"x1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-KpcmuLWX0xAjz6ty4ebtBw2-w0i5Dxp40XS2HnF5nXeZIx1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"w0i5Dxp40XS2HnF5nXeZI","sourceHandle":"y2","target":"i-T6GTqS0FZ_Llt5v4SvR","targetHandle":"z1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-w0i5Dxp40XS2HnF5nXeZIy2-i-T6GTqS0FZ_Llt5v4SvRz1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"z8PqfFgpZnl4lCSvmwIsN","sourceHandle":"x2","target":"ajPGMwoaFb1UFWTtpi5kd","targetHandle":"w2","data":{"edgeStyle":"solid"},"id":"reactflow__edge-z8PqfFgpZnl4lCSvmwIsNx2-ajPGMwoaFb1UFWTtpi5kdw2","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"1AtH8yhL6W4S9eYZBaCHL","sourceHandle":"z2","target":"-7OW2IgiMk1eot1PaYd7m","targetHandle":"w1","data":{"edgeStyle":"solid"},"selected":true,"selectable":true,"focusable":true,"id":"reactflow__edge-1AtH8yhL6W4S9eYZBaCHLz2--7OW2IgiMk1eot1PaYd7mw1"},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"-7OW2IgiMk1eot1PaYd7m","sourceHandle":"z2","target":"RwvC4Pi18_1phcrJL-9iu","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge--7OW2IgiMk1eot1PaYd7mz2-RwvC4Pi18_1phcrJL-9iuy1","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"-7OW2IgiMk1eot1PaYd7m","sourceHandle":"w2","target":"GKuxilB0AwjcTgCSk3FeU","targetHandle":"x1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge--7OW2IgiMk1eot1PaYd7mw2-GKuxilB0AwjcTgCSk3FeUx1","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"4fPgpGwNXmVoZoruBRb_B","sourceHandle":"x2","target":"pNEE5C1E1wAjH_nTlzH6N","targetHandle":"w1","data":{"edgeStyle":"solid"},"selected":true,"selectable":true,"focusable":true,"id":"reactflow__edge-4fPgpGwNXmVoZoruBRb_Bx2-pNEE5C1E1wAjH_nTlzH6Nw1"},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"PvFp6aY7EUrYHn87RZAGj","sourceHandle":"y2","target":"KpcmuLWX0xAjz6ty4ebtB","targetHandle":"z2","data":{"edgeStyle":"solid"},"selected":true,"selectable":true,"focusable":true,"id":"reactflow__edge-PvFp6aY7EUrYHn87RZAGjy2-KpcmuLWX0xAjz6ty4ebtBz2"},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"KpcmuLWX0xAjz6ty4ebtB","sourceHandle":"y2","target":"z8PqfFgpZnl4lCSvmwIsN","targetHandle":"w1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-KpcmuLWX0xAjz6ty4ebtBy2-z8PqfFgpZnl4lCSvmwIsNw1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"sourceHandle":"x2","target":"UzpdLLPs226N00c6weWRv","targetHandle":"w1","data":{"edgeStyle":"dashed"},"id":"B1DmR10bex-DVutd6mjns","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"sourceHandle":"x2","target":"0xwoWj9jek36p1AwU3WkK","targetHandle":"w1","data":{"edgeStyle":"dashed"},"id":"apc3cgMdfQY3zL7AmL5ai","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"28HMXXBJWd3n-ZPgeQRDa","sourceHandle":"z2","target":"W6gdCIkqSFo70guQ6cKCT","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-28HMXXBJWd3n-ZPgeQRDaz2-W6gdCIkqSFo70guQ6cKCTy1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"28HMXXBJWd3n-ZPgeQRDa","sourceHandle":"z2","target":"WaoIITgpj3XEyqDKw6cG_","targetHandle":"y2","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-28HMXXBJWd3n-ZPgeQRDaz2-WaoIITgpj3XEyqDKw6cG_y2","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"knDbJw2PEIMyr0TpZLsLM","sourceHandle":"z2","target":"28HMXXBJWd3n-ZPgeQRDa","targetHandle":"y1","data":{"edgeStyle":"solid"},"selected":true,"selectable":true,"focusable":true,"id":"reactflow__edge-knDbJw2PEIMyr0TpZLsLMz2-28HMXXBJWd3n-ZPgeQRDay1"},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"28HMXXBJWd3n-ZPgeQRDa","sourceHandle":"x2","target":"OfwGqSMcV0noepKIjQbx1","targetHandle":"w1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-28HMXXBJWd3n-ZPgeQRDax2-OfwGqSMcV0noepKIjQbx1w1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"OfwGqSMcV0noepKIjQbx1","sourceHandle":"y2","target":"BtPYKd7RedHOLRATDKkpg","targetHandle":"z1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-OfwGqSMcV0noepKIjQbx1y2-BtPYKd7RedHOLRATDKkpgz1","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"BtPYKd7RedHOLRATDKkpg","sourceHandle":"w2","target":"z3AUN9u7EEqeKOqvLxf7D","targetHandle":"x2","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-BtPYKd7RedHOLRATDKkpgw2-z3AUN9u7EEqeKOqvLxf7Dx2","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"BtPYKd7RedHOLRATDKkpg","sourceHandle":"y2","target":"qJEd7KU52xL_GRG3IQqhM","targetHandle":"w1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-BtPYKd7RedHOLRATDKkpgy2-qJEd7KU52xL_GRG3IQqhMw1","selected":true,"type":"simplebezier","focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"sourceHandle":"x2","target":"M9UlalPL47GoqhcyGsAPV","targetHandle":"w1","data":{"edgeStyle":"dashed"},"id":"4cWO8voeSULdXPlaEm3Ue","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"sourceHandle":"z2","target":"hinNObLi-5tbZFuY8U3i6","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"kWaIUH-qNU3mcLbTcxVAn","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"qJEd7KU52xL_GRG3IQqhM","sourceHandle":"z2","target":"M9UlalPL47GoqhcyGsAPV","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-qJEd7KU52xL_GRG3IQqhMz2-M9UlalPL47GoqhcyGsAPVy1","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"qJEd7KU52xL_GRG3IQqhM","sourceHandle":"x2","target":"ysaBCl_TtWqelirptQp7P","targetHandle":"w2","data":{"edgeStyle":"solid"},"id":"reactflow__edge-qJEd7KU52xL_GRG3IQqhMx2-ysaBCl_TtWqelirptQp7Pw2","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"ysaBCl_TtWqelirptQp7P","sourceHandle":"x2","target":"-aLGB3cDXZHIhVU3t-Ve4","targetHandle":"w1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-ysaBCl_TtWqelirptQp7Px2--aLGB3cDXZHIhVU3t-Ve4w1","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"6gfqFy3H6SLt06oJ1kt5A","sourceHandle":"z2","target":"H4-Dp2WTA6HAZiFRQdLjx","targetHandle":"y2","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-6gfqFy3H6SLt06oJ1kt5Az2-H4-Dp2WTA6HAZiFRQdLjxy2","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"6gfqFy3H6SLt06oJ1kt5A","sourceHandle":"z2","target":"ImS1FqVicQImMw-y1ze7y","targetHandle":"y2","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-6gfqFy3H6SLt06oJ1kt5Az2-ImS1FqVicQImMw-y1ze7yy2","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"6gfqFy3H6SLt06oJ1kt5A","sourceHandle":"z2","target":"8v_eP0j85TnB33XyYAzrT","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-6gfqFy3H6SLt06oJ1kt5Az2-8v_eP0j85TnB33XyYAzrTy1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"6gfqFy3H6SLt06oJ1kt5A","sourceHandle":"z2","target":"_bkRbqVXKNCnRvEFCM6mN","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-6gfqFy3H6SLt06oJ1kt5Az2-_bkRbqVXKNCnRvEFCM6mNy1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"6gfqFy3H6SLt06oJ1kt5A","sourceHandle":"z2","target":"3qjQbrCUchJn1bJTBWrQF","targetHandle":"y1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-6gfqFy3H6SLt06oJ1kt5Az2-3qjQbrCUchJn1bJTBWrQFy1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"6gfqFy3H6SLt06oJ1kt5A","sourceHandle":"x2","target":"WYV4YG_sLvC4S5ptFFdrF","targetHandle":"w1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-6gfqFy3H6SLt06oJ1kt5Ax2-WYV4YG_sLvC4S5ptFFdrFw1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"WYV4YG_sLvC4S5ptFFdrF","sourceHandle":"x2","target":"UTVh1RHRWb5eA-S7ayLp8","targetHandle":"w2","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-WYV4YG_sLvC4S5ptFFdrFx2-UTVh1RHRWb5eA-S7ayLp8w2","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"WYV4YG_sLvC4S5ptFFdrF","sourceHandle":"z2","target":"JoNoM-utp8MaL1H0oXDta","targetHandle":"w1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-WYV4YG_sLvC4S5ptFFdrFz2-JoNoM-utp8MaL1H0oXDtaw1","selected":true,"type":"step","selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"JoNoM-utp8MaL1H0oXDta","sourceHandle":"x2","target":"GjY5qCU1rjB0D58qHQtAR","targetHandle":"w2","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-JoNoM-utp8MaL1H0oXDtax2-GjY5qCU1rjB0D58qHQtARw2","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"JoNoM-utp8MaL1H0oXDta","sourceHandle":"y2","target":"YzJVkZbOzgp5w9N0IQBN_","targetHandle":"z1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-JoNoM-utp8MaL1H0oXDtay2-YzJVkZbOzgp5w9N0IQBN_z1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"ysaBCl_TtWqelirptQp7P","sourceHandle":"z2","target":"KSKHW-WnjVch-04wYJBsA","targetHandle":"y1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-ysaBCl_TtWqelirptQp7Pz2-KSKHW-WnjVch-04wYJBsAy1","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"KSKHW-WnjVch-04wYJBsA","sourceHandle":"z2","target":"6gfqFy3H6SLt06oJ1kt5A","targetHandle":"x1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-KSKHW-WnjVch-04wYJBsAz2-6gfqFy3H6SLt06oJ1kt5Ax1","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"YzJVkZbOzgp5w9N0IQBN_","sourceHandle":"y2","target":"fbloF-u4XwdHLmBS9flZm","targetHandle":"z2","data":{"edgeStyle":"solid"},"id":"reactflow__edge-YzJVkZbOzgp5w9N0IQBN_y2-fbloF-u4XwdHLmBS9flZmz2","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"fbloF-u4XwdHLmBS9flZm","sourceHandle":"w2","target":"3GtrUXvLgvXK3G8cXRb-P","targetHandle":"x1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-fbloF-u4XwdHLmBS9flZmw2-3GtrUXvLgvXK3G8cXRb-Px1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"fbloF-u4XwdHLmBS9flZm","sourceHandle":"y2","target":"Tv8-WUcKiZMLHuunQwise","targetHandle":"z1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-fbloF-u4XwdHLmBS9flZmy2-Tv8-WUcKiZMLHuunQwisez1","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"Tv8-WUcKiZMLHuunQwise","sourceHandle":"w2","target":"KFkX8_Hv9SCFeCtZMZIQM","targetHandle":"x1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-Tv8-WUcKiZMLHuunQwisew2-KFkX8_Hv9SCFeCtZMZIQMx1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"Tv8-WUcKiZMLHuunQwise","sourceHandle":"z2","target":"pZVPsgvCpP3zUgBM4i0CF","targetHandle":"y1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-Tv8-WUcKiZMLHuunQwisez2-pZVPsgvCpP3zUgBM4i0CFy1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"pZVPsgvCpP3zUgBM4i0CF","sourceHandle":"x2","target":"MaHtZSIPxDzrnB33_9OdV","targetHandle":"w2","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-pZVPsgvCpP3zUgBM4i0CFx2-MaHtZSIPxDzrnB33_9OdVw2","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"pZVPsgvCpP3zUgBM4i0CF","sourceHandle":"z2","target":"1DZYPqvgY6GtwMCS7N2y-","targetHandle":"y1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-pZVPsgvCpP3zUgBM4i0CFz2-1DZYPqvgY6GtwMCS7N2y-y1","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"1DZYPqvgY6GtwMCS7N2y-","sourceHandle":"w2","target":"0nei6iwP4Pgi_j4vVi_Qt","targetHandle":"x2","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-1DZYPqvgY6GtwMCS7N2y-w2-0nei6iwP4Pgi_j4vVi_Qtx2","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"1DZYPqvgY6GtwMCS7N2y-","sourceHandle":"x2","target":"S2XZJv3TAnEJcTcHA3e62","targetHandle":"w2","data":{"edgeStyle":"solid"},"id":"reactflow__edge-1DZYPqvgY6GtwMCS7N2y-x2-S2XZJv3TAnEJcTcHA3e62w2","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"S2XZJv3TAnEJcTcHA3e62","sourceHandle":"z2","target":"PdzCQXZIivw3zCYPtokJV","targetHandle":"y1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-S2XZJv3TAnEJcTcHA3e62z2-PdzCQXZIivw3zCYPtokJVy1","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"S2XZJv3TAnEJcTcHA3e62","sourceHandle":"y2","target":"loxQ6vCyDimwNFKqj4ZUg","targetHandle":"z2","data":{"edgeStyle":"solid"},"id":"reactflow__edge-S2XZJv3TAnEJcTcHA3e62y2-loxQ6vCyDimwNFKqj4ZUgz2","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"loxQ6vCyDimwNFKqj4ZUg","sourceHandle":"y2","target":"DVe8S6TjKcQ8LT5G-aMVa","targetHandle":"z1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-loxQ6vCyDimwNFKqj4ZUgy2-DVe8S6TjKcQ8LT5G-aMVaz1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"DVe8S6TjKcQ8LT5G-aMVa","sourceHandle":"w2","target":"TMFvfwG45Z00PzrzZIVhT","targetHandle":"x1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-DVe8S6TjKcQ8LT5G-aMVaw2-TMFvfwG45Z00PzrzZIVhTx1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"DVe8S6TjKcQ8LT5G-aMVa","sourceHandle":"x2","target":"hLkexoRp0CjR8BW6xNDgy","targetHandle":"w1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-DVe8S6TjKcQ8LT5G-aMVax2-hLkexoRp0CjR8BW6xNDgyw1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"hLkexoRp0CjR8BW6xNDgy","sourceHandle":"z2","target":"OZZ3UnWN2gFflbM_WaJ8H","targetHandle":"y1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-hLkexoRp0CjR8BW6xNDgyz2-OZZ3UnWN2gFflbM_WaJ8Hy1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"OZZ3UnWN2gFflbM_WaJ8H","sourceHandle":"x2","target":"WxshXCloVDkVkQV0JvI1w","targetHandle":"w1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-OZZ3UnWN2gFflbM_WaJ8Hx2-WxshXCloVDkVkQV0JvI1ww1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"OZZ3UnWN2gFflbM_WaJ8H","sourceHandle":"z2","target":"GtK5YThTHPSetosY0WMRw","targetHandle":"y1","data":{"edgeStyle":"solid"},"selected":true,"id":"reactflow__edge-OZZ3UnWN2gFflbM_WaJ8Hz2-GtK5YThTHPSetosY0WMRwy1","selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"sourceHandle":"z2","target":"5589B1DKaCd-9l9DfKH3o","targetHandle":"y1","data":{"edgeStyle":"solid"},"id":"nXQqYA5GcUmdoVl410uUe","selected":true,"focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"GtK5YThTHPSetosY0WMRw","sourceHandle":"w2","target":"uczkyc30K_qqcarZCGTdF","targetHandle":"x2","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-GtK5YThTHPSetosY0WMRww2-uczkyc30K_qqcarZCGTdFx2","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"GtK5YThTHPSetosY0WMRw","sourceHandle":"z2","target":"IX_c1JTc1jVpPUhYRtEfg","targetHandle":"y1","data":{"edgeStyle":"solid"},"selected":true,"id":"reactflow__edge-GtK5YThTHPSetosY0WMRwz2-IX_c1JTc1jVpPUhYRtEfgy1","selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"IX_c1JTc1jVpPUhYRtEfg","sourceHandle":"x2","target":"iZAXQKLe2LaIIifVFtFOL","targetHandle":"z1","data":{"edgeStyle":"solid"},"selected":true,"id":"reactflow__edge-IX_c1JTc1jVpPUhYRtEfgx2-iZAXQKLe2LaIIifVFtFOLz1","type":"step","selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"iZAXQKLe2LaIIifVFtFOL","sourceHandle":"y2","target":"KCJgCjMJGxIcf13XSEclO","targetHandle":"z2","data":{"edgeStyle":"solid"},"id":"reactflow__edge-iZAXQKLe2LaIIifVFtFOLy2-KCJgCjMJGxIcf13XSEclOz2","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"KCJgCjMJGxIcf13XSEclO","sourceHandle":"y2","target":"_W3vb0b14FrWB2fH7DHC7","targetHandle":"z1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-KCJgCjMJGxIcf13XSEclOy2-_W3vb0b14FrWB2fH7DHC7z1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"_W3vb0b14FrWB2fH7DHC7","sourceHandle":"w2","target":"U4xE1enkZxUME0j0gutae","targetHandle":"x1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-_W3vb0b14FrWB2fH7DHC7w2-U4xE1enkZxUME0j0gutaex1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"U4xE1enkZxUME0j0gutae","sourceHandle":"y2","target":"TrblGyy81Oep2CBxoZkaf","targetHandle":"z1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-U4xE1enkZxUME0j0gutaey2-TrblGyy81Oep2CBxoZkafz1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"U4xE1enkZxUME0j0gutae","sourceHandle":"y2","target":"tWxuFh0xDugdplnHt_G0e","targetHandle":"z1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-U4xE1enkZxUME0j0gutaey2-tWxuFh0xDugdplnHt_G0ez1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"U4xE1enkZxUME0j0gutae","sourceHandle":"y2","target":"LltERZaHsI-R_3O_3twpk","targetHandle":"z1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-U4xE1enkZxUME0j0gutaey2-LltERZaHsI-R_3O_3twpkz1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"U4xE1enkZxUME0j0gutae","sourceHandle":"y2","target":"VylaBSDAVFzveVfytI1Fz","targetHandle":"z1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-U4xE1enkZxUME0j0gutaey2-VylaBSDAVFzveVfytI1Fzz1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"U4xE1enkZxUME0j0gutae","sourceHandle":"y2","target":"r3fNx1Hk_TGlQSDtRnXqF","targetHandle":"z1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-U4xE1enkZxUME0j0gutaey2-r3fNx1Hk_TGlQSDtRnXqFz1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"_W3vb0b14FrWB2fH7DHC7","sourceHandle":"y2","target":"jZpH-T2hW-XBdprVqemGi","targetHandle":"w1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-_W3vb0b14FrWB2fH7DHC7y2-jZpH-T2hW-XBdprVqemGiw1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"jZpH-T2hW-XBdprVqemGi","sourceHandle":"z2","target":"lse0W6_nPrjGJGW2bVFfM","targetHandle":"y1","data":{"edgeStyle":"solid"},"id":"reactflow__edge-jZpH-T2hW-XBdprVqemGiz2-lse0W6_nPrjGJGW2bVFfMy1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"lse0W6_nPrjGJGW2bVFfM","sourceHandle":"z2","target":"fOOQurIL1w3PwH5Mep9x1","targetHandle":"y2","data":{"edgeStyle":"solid"},"id":"reactflow__edge-lse0W6_nPrjGJGW2bVFfMz2-fOOQurIL1w3PwH5Mep9x1y2","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"fOOQurIL1w3PwH5Mep9x1","sourceHandle":"x2","target":"e7qVpQeu2iQL0c9MOMCVe","targetHandle":"w1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-fOOQurIL1w3PwH5Mep9x1x2-e7qVpQeu2iQL0c9MOMCVew1","selected":true,"selectable":true,"focusable":true},{"style":{"strokeDasharray":"0","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"yvdfoly5WHHTq2Puss355","sourceHandle":"z2","target":"XzXLGjJr2F8Ln7gP0e5N8","targetHandle":"w2","data":{"edgeStyle":"solid"},"id":"reactflow__edge-yvdfoly5WHHTq2Puss355z2-XzXLGjJr2F8Ln7gP0e5N8w2","selected":true,"type":"step","focusable":true,"selectable":true},{"style":{"strokeDasharray":"0.8 8","strokeLinecap":"round","strokeWidth":3.5,"stroke":"#2b78e4"},"source":"lse0W6_nPrjGJGW2bVFfM","sourceHandle":"x2","target":"XzXLGjJr2F8Ln7gP0e5N8","targetHandle":"w1","data":{"edgeStyle":"dashed"},"id":"reactflow__edge-lse0W6_nPrjGJGW2bVFfMx2-XzXLGjJr2F8Ln7gP0e5N8w1","selected":true,"focusable":true,"selectable":true}]} \ No newline at end of file diff --git a/src/data/roadmaps/ios/ios.md b/src/data/roadmaps/ios/ios.md new file mode 100644 index 000000000000..c0208577db8c --- /dev/null +++ b/src/data/roadmaps/ios/ios.md @@ -0,0 +1,45 @@ +--- +pdfUrl: '/pdfs/roadmaps/ios.pdf' +order: 5 +briefTitle: 'iOS' +briefDescription: 'Step by step guide to becoming an iOS Developer in 2024' +title: 'iOS Developer' +description: 'Step by step guide to becoming an iOS developer in 2024' +hasTopics: true +isNew: true +dimensions: + width: 968 + height: 3990 +schema: + headline: 'iOS Developer Roadmap' + description: 'Learn how to become a iOS Developer with this interactive step by step guide in 2024. We also have resources and short descriptions attached to the roadmap items so you can get everything you want to learn in one place.' + imageUrl: 'https://roadmap.sh/roadmaps/ios.png' + datePublished: '2023-01-24' + dateModified: '2023-10-24' +seo: + title: 'iOS Developer Roadmap: Learn to become an iOS developer' + description: 'Community driven, articles, resources, guides, interview questions, quizzes for ios development. Learn to become a modern iOS developer by following the steps, skills, resources and guides listed in this roadmap.' + keywords: + - 'guide to becoming an ios developer' + - 'ios developer roadmap' + - 'ios roadmap' + - 'become ios developer' + - 'ios developer skills' + - 'ios skills test' + - 'skills for ios development' + - 'learn ios development' + - 'what is ios' + - 'ios quiz' + - 'ios interview questions' +relatedRoadmaps: + - 'react-native' + - 'flutter' +sitemap: + priority: 1 + changefreq: 'monthly' +tags: + - 'roadmap' + - 'main-sitemap' + - 'role-roadmap' +renderer: 'editor' +--- \ No newline at end of file diff --git a/src/data/roadmaps/rust/content/100-introduction/104-ides-and-rust.md b/src/data/roadmaps/rust/content/100-introduction/104-ides-and-rust.md index 53039407303e..f6e33403fb16 100644 --- a/src/data/roadmaps/rust/content/100-introduction/104-ides-and-rust.md +++ b/src/data/roadmaps/rust/content/100-introduction/104-ides-and-rust.md @@ -1,3 +1,3 @@ # IDEs and Rust Toolchains -For the Rust Programming Language, several Integrated Development Environments (IDEs) and editors provide great support. [Visual Studio Code](https://code.visualstudio.com) is highly preferred among Rust developers due to its support for Rust via the "Rust Language Server" or "rust-analyzer" plugins. [IntelliJ-based IDEs](https://www.jetbrains.com/idea/) also support Rust through their plugin. Additionally, [Sublime Text](https://www.sublimetext.com) and [Atom](https://atom.io) with respective Rust-enhancement plugins are also used. For a more terminal-centric approach, [Vim](https://www.vim.org) and [Emacs](https://www.gnu.org/software/emacs/) are equipped with Rust modes. These IDEs and editors offer various features like auto-completion, syntax highlighting, and tools for debugging which prove useful for Rust programming. \ No newline at end of file +For the Rust Programming Language, several Integrated Development Environments (IDEs) and editors provide great support. [Visual Studio Code](https://code.visualstudio.com) is highly preferred among Rust developers due to its support for Rust via the "Rust Language Server" or "rust-analyzer" plugins. Another popular choice is [RustRover](https://www.jetbrains.com/rust/), a dedicated IDE for Rust development by JetBrains. Additionally, [Sublime Text](https://www.sublimetext.com) and [Atom](https://atom.io) with respective Rust-enhancement plugins are also used. For a more terminal-centric approach, [Vim](https://www.vim.org) and [Emacs](https://www.gnu.org/software/emacs/) are equipped with Rust modes. These IDEs and editors offer various features like auto-completion, syntax highlighting, and tools for debugging which prove useful for Rust programming. diff --git a/src/data/roadmaps/rust/content/108-web-development/100-rocket.md b/src/data/roadmaps/rust/content/108-web-development/100-rocket.md index 358ac89100c5..3a58f32685ff 100644 --- a/src/data/roadmaps/rust/content/108-web-development/100-rocket.md +++ b/src/data/roadmaps/rust/content/108-web-development/100-rocket.md @@ -1,3 +1,7 @@ # Rocket -"Rocket" is a web framework for the Rust programming language that makes it simple to write fast, secure web applications without sacrificing flexibility, usability, or type safety. It provides a significant amount of functionality out-of-the-box, such as request routing, template rendering, form validation, and more. Rocket's philosophy revolves around usability and intuitiveness; it emphasizes clear and expressive syntax, detailed error messages, and powerful abstractions. Despite these aids, Rocket doesn't shield you from the complexities of web programming, but instead offers tools and interfaces to make these complexities manageable. \ No newline at end of file +"Rocket" is a web framework for the Rust programming language that makes it simple to write fast, secure web applications without sacrificing flexibility, usability, or type safety. It provides a significant amount of functionality out-of-the-box, such as request routing, template rendering, form validation, and more. Rocket's philosophy revolves around usability and intuitiveness; it emphasizes clear and expressive syntax, detailed error messages, and powerful abstractions. Despite these aids, Rocket doesn't shield you from the complexities of web programming, but instead offers tools and interfaces to make these complexities manageable. + +Visit the following resources to learn more: + +- [Rocket](https://rocket.rs/) diff --git a/src/data/roadmaps/rust/content/108-web-development/101-warp.md b/src/data/roadmaps/rust/content/108-web-development/101-warp.md index 81da974ffd79..8ee08ea009bc 100644 --- a/src/data/roadmaps/rust/content/108-web-development/101-warp.md +++ b/src/data/roadmaps/rust/content/108-web-development/101-warp.md @@ -1,3 +1,7 @@ # Warp -Warp is a web server framework for Rust that focuses on composability and safety. It's built on top of `hyper`, a low-level HTTP library, but Warp adds a user-friendly layer on top of that, allowing developers to build custom routing logic with ease. Warp's primary concept is the "Filter", which can be combined and nested to create complex HTTP servers. Despite this abstraction, it manages to maintain a high level of performance thanks to Rust's zero-cost abstractions. Another feature of Warp is its capability to handle websockets, streaming bodies, and multipart forms. \ No newline at end of file +Warp is a web server framework for Rust that focuses on composability and safety. It's built on top of `hyper`, a low-level HTTP library, but Warp adds a user-friendly layer on top of that, allowing developers to build custom routing logic with ease. Warp's primary concept is the "Filter", which can be combined and nested to create complex HTTP servers. Despite this abstraction, it manages to maintain a high level of performance thanks to Rust's zero-cost abstractions. Another feature of Warp is its capability to handle websockets, streaming bodies, and multipart forms. + +Visit the following resources to learn more: + +- [Docs.rs: Warp](https://docs.rs/warp/latest/warp/) diff --git a/src/data/roadmaps/rust/content/108-web-development/102-actix.md b/src/data/roadmaps/rust/content/108-web-development/102-actix.md index 8bb9ad8e8b9d..d9446104646c 100644 --- a/src/data/roadmaps/rust/content/108-web-development/102-actix.md +++ b/src/data/roadmaps/rust/content/108-web-development/102-actix.md @@ -1,3 +1,7 @@ # Actix -Actix is a powerful, pragmatic, and extremely fast web framework for Rust. It is based on Actix actor's framework, built around a small and simple API focused on making the creation of web applications straightforward and efficient. Its capable middleware system allows for highly customizable processing of web requests, making it versatile for a wide range of web development tasks. With support for WebSockets and server-sent events included, integration of real-time communication is quite seamless in Actix. Despite its high-level abstractions and ease of use, Actix does not compromise on performance, delivering some of the fastest processing times among Rust web frameworks. \ No newline at end of file +Actix is a powerful, pragmatic, and extremely fast web framework for Rust. It is based on Actix actor's framework, built around a small and simple API focused on making the creation of web applications straightforward and efficient. Its capable middleware system allows for highly customizable processing of web requests, making it versatile for a wide range of web development tasks. With support for WebSockets and server-sent events included, integration of real-time communication is quite seamless in Actix. Despite its high-level abstractions and ease of use, Actix does not compromise on performance, delivering some of the fastest processing times among Rust web frameworks. + +Visit the following resources to learn more: + +- [Actix](https://actix.rs/) diff --git a/src/data/roadmaps/rust/content/108-web-development/103-yew.md b/src/data/roadmaps/rust/content/108-web-development/103-yew.md index 3e6baee24b9c..72a53fcc8a91 100644 --- a/src/data/roadmaps/rust/content/108-web-development/103-yew.md +++ b/src/data/roadmaps/rust/content/108-web-development/103-yew.md @@ -1,3 +1,7 @@ # Yew -"Yew" is a modern Rust framework for creating multi-threaded front-end web apps with WebAssembly. It features a component-based framework similar to React and Elm, and supports JavaScript interoperability, allowing the execution of JS code from Rust and vice versa. Yew is able to tap into Rust's powerful ecosystem, providing high-speed rendering and packing a punch when it comes to building rich, high-performing user experiences on the web. \ No newline at end of file +"Yew" is a modern Rust framework for creating multi-threaded front-end web apps with WebAssembly. It features a component-based framework similar to React and Elm, and supports JavaScript interoperability, allowing the execution of JS code from Rust and vice versa. Yew is able to tap into Rust's powerful ecosystem, providing high-speed rendering and packing a punch when it comes to building rich, high-performing user experiences on the web. + +Visit the following resources to learn more: + +- [Yew](https://yew.rs/) diff --git a/src/data/roadmaps/rust/content/111-serialization/100-serde.md b/src/data/roadmaps/rust/content/111-serialization/100-serde.md index 2aa2083547d4..2ee64d3a1567 100644 --- a/src/data/roadmaps/rust/content/111-serialization/100-serde.md +++ b/src/data/roadmaps/rust/content/111-serialization/100-serde.md @@ -1,3 +1,8 @@ # Serde -"Serde" is a framework in Rust that enables the serialization and deserialization of data structures. It provides a way to convert your data structures from Rust into a format that can be stored or sent over the network, and vice versa, in a flexible and straightforward manner. Despite its convenience, Serde avoids compromising on speed, and it is super-efficient. The library supports a variety of data formats, like JSON, Bincode, TOML, YAML, and more. Serde's design allows you to customize serialization and deserialization in intricate ways if the default behavior doesn't suit your application's needs. \ No newline at end of file +"Serde" is a framework in Rust that enables the serialization and deserialization of data structures. It provides a way to convert your data structures from Rust into a format that can be stored or sent over the network, and vice versa, in a flexible and straightforward manner. Despite its convenience, Serde avoids compromising on speed, and it is super-efficient. The library supports a variety of data formats, like JSON, Bincode, TOML, YAML, and more. Serde's design allows you to customize serialization and deserialization in intricate ways if the default behavior doesn't suit your application's needs. + +Visit the following resources to learn more: + +- [Official Website](https://serde.rs/) +- [Docs.rs: Serde](https://docs.rs/serde/latest/serde/) diff --git a/src/data/roadmaps/rust/content/111-serialization/101-json-rust.md b/src/data/roadmaps/rust/content/111-serialization/101-json-rust.md index 32f20eb7ce17..6e0dc1752046 100644 --- a/src/data/roadmaps/rust/content/111-serialization/101-json-rust.md +++ b/src/data/roadmaps/rust/content/111-serialization/101-json-rust.md @@ -1,3 +1,7 @@ # json-rust -`JSON` (JavaScript Object Notation) is a lightweight data-interchange format that is used to store and exchange data. In `Rust`, you can work with `JSON` data using the `serde` and `serde_json` libraries. The `serde` library provides a way for high-performance serialization, and `serde_json` is a `serde` format for handling `JSON` data. The library provides mechanisms for converting between `Rust` data structures and `JSON`. This includes the ability to parse `JSON` data from strings or files, serialize `Rust` data structures to `JSON`, and manipulate `JSON` values directly. \ No newline at end of file +`JSON` (JavaScript Object Notation) is a lightweight data-interchange format that is used to store and exchange data. In `Rust`, you can work with `JSON` data using the `serde` and `serde_json` libraries. The `serde` library provides a way for high-performance serialization, and `serde_json` is a `serde` format for handling `JSON` data. The library provides mechanisms for converting between `Rust` data structures and `JSON`. This includes the ability to parse `JSON` data from strings or files, serialize `Rust` data structures to `JSON`, and manipulate `JSON` values directly. + +Visit the following resources to learn more: + +- [Docs.rs: JSON](https://docs.rs/json/latest/json/) diff --git a/src/data/roadmaps/rust/content/111-serialization/102-toml-rs.md b/src/data/roadmaps/rust/content/111-serialization/102-toml-rs.md index c9e217c05643..df7d56397a4d 100644 --- a/src/data/roadmaps/rust/content/111-serialization/102-toml-rs.md +++ b/src/data/roadmaps/rust/content/111-serialization/102-toml-rs.md @@ -1,3 +1,7 @@ # toml-rs -`toml-rs` is a library in Rust designed to parse and serialize TOML documents. TOML, which stands for Tom's Obvious, Minimal Language, is a straightforward and easy-to-read format often used for configuration files. The `toml-rs` library provides functionalities to convert between TOML documents and Rust structures. It heavily uses Rust's powerful trait system and type inference, to parse a TOML document into Rust's static types for further manipulation. Moreover, by making use of the 'serde' library, it enables automatic serialization and deserialization between TOML and Rust types. \ No newline at end of file +`toml-rs` is a library in Rust designed to parse and serialize TOML documents. TOML, which stands for Tom's Obvious, Minimal Language, is a straightforward and easy-to-read format often used for configuration files. The `toml-rs` library provides functionalities to convert between TOML documents and Rust structures. It heavily uses Rust's powerful trait system and type inference, to parse a TOML document into Rust's static types for further manipulation. Moreover, by making use of the 'serde' library, it enables automatic serialization and deserialization between TOML and Rust types. + +Visit the following resources to learn more: + +- [Docs.rs: TOML](https://docs.rs/toml/latest/toml/) diff --git a/src/data/roadmaps/sql/sql.md b/src/data/roadmaps/sql/sql.md index f816f87a4201..c66b327e36f0 100644 --- a/src/data/roadmaps/sql/sql.md +++ b/src/data/roadmaps/sql/sql.md @@ -6,7 +6,7 @@ briefTitle: 'SQL' briefDescription: 'Step by step guide to learning SQL in 2024' title: 'SQL Roadmap' description: 'Step by step guide to learning SQL in 2024' -isNew: true +isNew: false hasTopics: true dimensions: width: 968 diff --git a/src/pages/get-started.astro b/src/pages/get-started.astro index bbe30936849c..e2780053488c 100644 --- a/src/pages/get-started.astro +++ b/src/pages/get-started.astro @@ -308,6 +308,13 @@ import { TipItem } from '../components/GetStarted/TipItem'; description='Learn all you need to know to become an Android Developer.' /> + + - - ))