{"id":4791,"date":"2024-06-20T08:25:00","date_gmt":"2024-06-20T08:25:00","guid":{"rendered":"https:\/\/www.thecodehub.ie\/news\/?p=4791"},"modified":"2024-06-19T22:50:35","modified_gmt":"2024-06-19T22:50:35","slug":"creating-an-app-walk-through-for-the-playgrounds-app","status":"publish","type":"post","link":"https:\/\/www.thecodehub.ie\/news\/2024\/06\/20\/creating-an-app-walk-through-for-the-playgrounds-app\/","title":{"rendered":"Creating an App Walk-Through for the Playgrounds App"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"alignleft size-full is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"512\" height=\"512\" data-attachment-id=\"1659\" data-permalink=\"https:\/\/www.thecodehub.ie\/news\/2021\/12\/10\/prototyping-swift-playground-books\/swiftplaygroundsicon-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.thecodehub.ie\/news\/wp-content\/uploads\/2021\/12\/SwiftPlaygroundsIcon.png?fit=512%2C512&amp;ssl=1\" data-orig-size=\"512,512\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"SwiftPlaygroundsIcon\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.thecodehub.ie\/news\/wp-content\/uploads\/2021\/12\/SwiftPlaygroundsIcon.png?fit=512%2C512&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.thecodehub.ie\/news\/wp-content\/uploads\/2021\/12\/SwiftPlaygroundsIcon.png?resize=512%2C512&#038;ssl=1\" alt=\"Swift Playgrounds Icon\" class=\"wp-image-1659\" style=\"width:153px;height:auto\" srcset=\"https:\/\/i0.wp.com\/www.thecodehub.ie\/news\/wp-content\/uploads\/2021\/12\/SwiftPlaygroundsIcon.png?w=512&amp;ssl=1 512w, https:\/\/i0.wp.com\/www.thecodehub.ie\/news\/wp-content\/uploads\/2021\/12\/SwiftPlaygroundsIcon.png?resize=300%2C300&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.thecodehub.ie\/news\/wp-content\/uploads\/2021\/12\/SwiftPlaygroundsIcon.png?resize=150%2C150&amp;ssl=1 150w\" sizes=\"auto, (max-width: 512px) 85vw, 512px\" \/><\/figure>\n<\/div>\n\n\n<p>Creating a walk-through for Swift Playgrounds can sometimes feel like wrestling a bag of eels in a room with all the lights burnt out.<\/p>\n\n\n\n<p>Walk-throughs are a great way to set up content that learners can go through at their own pace as if they had a very patient senior software engineer sitting beside them, walking them through the code. I\u2019ve written a few on my Adventures feed (<a href=\"https:\/\/www.thecodehub.ie\/playgrounds\/\">https:\/\/www.thecodehub.ie\/playgrounds\/<\/a>) and they\u2019re such a good way to help focus on specific app development techniques or tools people may have been asking about, but I\u2019m not necessarily going to be there in the room with them.<\/p>\n\n\n\n<p>There is a great WWDC talk from 2022, when the app launched, walking you through how to create content, but it\u2019s not always so easy:<\/p>\n\n\n\n<p><strong>WWDC 22: Create engaging content for Swift Playgrounds:<\/strong> <a href=\"https:\/\/developer.apple.com\/wwdc22\/110349\">https:\/\/developer.apple.com\/wwdc22\/110349<\/a><\/p>\n\n\n\n<p>I&#8217;ve recorded a video of many of these steps, and a few troubleshooting notes down below, even, about some common things you might want in your walk-through.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\"  id=\"_ytid_38488\"  width=\"840\" height=\"630\"  data-origwidth=\"840\" data-origheight=\"630\" src=\"https:\/\/www.youtube.com\/embed\/kmiH5j75Q2g?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;rel=0&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;disablekb=0&#038;\" class=\"__youtube_prefs__  epyt-is-override  no-lazyload\" title=\"YouTube player\"  allow=\"fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen data-no-lazy=\"1\" data-skipgform_ajax_framebjll=\"\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Walk-Through Surgery<\/strong><\/h2>\n\n\n\n<p>First, you\u2019re going to be doing some surgery inside your app\u2019s folder structure, and they demo it using the Finder to create an App folder and they put everything in there, except for the Package.swift file, which is the file that tells the Swift compiler what the project should look like, how to build it, what to include, and all the rest. &nbsp;<\/p>\n\n\n\n<p>You should then create a Guide folder in the same folder that now contains the App folder (it\u2019s also called a module, if you listen to the video above).<\/p>\n\n\n\n<p>So your app looks like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>MyApp.swiftpm\/\n    App\/\n        MyApp.swift\n        ContentView.swift\n    Guide\/\n        Guide.tutorial\n    Package.swift<\/code><\/pre>\n\n\n\n<p>However, this isn\u2019t going to display a walk-through, just yet.<\/p>\n\n\n\n<p>In the Guide.tutorial file, you\u2019ll need something that looks like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@GuideBook(title: \"Get Started with App Walk-Throughs\", icon: title.png, background: background.png, firstFile: MyApp.swift) {\n&nbsp; &nbsp; @Guide {\n&nbsp; &nbsp; &nbsp; &nbsp; @Step(title: \"Get Started with App Walk-Throughs\") {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @ContentAndMedia {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Our first test step...\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }\n&nbsp; &nbsp; &nbsp; &nbsp; }\n&nbsp; &nbsp; }\n}<\/code><\/pre>\n\n\n\n<p>Even if you don\u2019t have the title.png or background.png files, you need to have those parameters in the GuideBook().<\/p>\n\n\n\n<p>This guide contents above is the bare minimum with which I\u2019ve been able to get a walk-through to appear. From there you can follow all the advice and tips in the WWDC video above, and you\u2019ll have a chance to build some amazing content.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Going Further&nbsp;<\/strong><\/h2>\n\n\n\n<p>Now, if you get to the stage where you want to add resources to your guide; images, localized strings, a glossary, you may run into some further issues getting that walk-through to display.<\/p>\n\n\n\n<p>If you try to add a folder in Playgrounds called \u2018Resources\u2019 you\u2019ll hit your first roadblock, because Playgrounds won\u2019t let you, because that\u2019s a reserved folder name.<\/p>\n\n\n\n<p>So over to the Mac we go.<\/p>\n\n\n\n<p>As I mentioned in a previous post, you can open Swift Playgrounds apps in Xcode on the Mac (<a href=\"https:\/\/www.thecodehub.ie\/news\/2024\/06\/19\/moving-your-app-from-swift-playgrounds-to-xcode\/\">https:\/\/www.thecodehub.ie\/news\/2024\/06\/19\/moving-your-app-from-swift-playgrounds-to-xcode\/<\/a>). We don\u2019t quite need to go that far, but there are some handy things Xcode will help you create if you want to build localized walk-throughs.<\/p>\n\n\n\n<p>On the Mac, right-click or use the action menu to show the package contents of your app.<\/p>\n\n\n\n<p>In the Guide folder, create another folder called Resources. Here we can drop images to display in the guide, like the title.png and background.png above.<\/p>\n\n\n\n<p>If you do want to take the next step and add a localized strings file, just a warning, you will have to dive into the Package.swift file and add a property to the top level:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&nbsp; &nbsp; defaultLocalization: \"en\",<\/code><\/pre>\n\n\n\n<p>(Or whatever your default localization will be.) Otherwise Playgrounds will complain that you need this key so it knows which strings to load for your walk-through.<\/p>\n\n\n\n<p>If you Show Package Contents on the app and then double-click the Package.swift file. It should open up in Xcode, if you have that installed, and you&#8217;ll add that line above just beneath the name: &#8220;MyApp&#8221;, line.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Troubleshooting<\/h2>\n\n\n\n<p>One of the things I always struggle with, when confronted with those &#8220;Failed to create&#8230; SPCGuideBook.Type&#8221; messages, is getting the welcome message to show. The thing I&#8217;ve found, to get a Welcome Message to show up properly, is that you need to pick a View file, I&#8217;m almost certain.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"840\" height=\"651\" data-attachment-id=\"4794\" data-permalink=\"https:\/\/www.thecodehub.ie\/news\/2024\/06\/20\/creating-an-app-walk-through-for-the-playgrounds-app\/image-5-10\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.thecodehub.ie\/news\/wp-content\/uploads\/2024\/06\/image-5.png?fit=2272%2C1760&amp;ssl=1\" data-orig-size=\"2272,1760\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image-5\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.thecodehub.ie\/news\/wp-content\/uploads\/2024\/06\/image-5.png?fit=840%2C651&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.thecodehub.ie\/news\/wp-content\/uploads\/2024\/06\/image-5.png?resize=840%2C651&#038;ssl=1\" alt=\"\" class=\"wp-image-4794\" srcset=\"https:\/\/i0.wp.com\/www.thecodehub.ie\/news\/wp-content\/uploads\/2024\/06\/image-5.png?resize=1024%2C793&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.thecodehub.ie\/news\/wp-content\/uploads\/2024\/06\/image-5.png?resize=300%2C232&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.thecodehub.ie\/news\/wp-content\/uploads\/2024\/06\/image-5.png?resize=768%2C595&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.thecodehub.ie\/news\/wp-content\/uploads\/2024\/06\/image-5.png?resize=1536%2C1190&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.thecodehub.ie\/news\/wp-content\/uploads\/2024\/06\/image-5.png?resize=2048%2C1586&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.thecodehub.ie\/news\/wp-content\/uploads\/2024\/06\/image-5.png?resize=1200%2C930&amp;ssl=1 1200w, https:\/\/i0.wp.com\/www.thecodehub.ie\/news\/wp-content\/uploads\/2024\/06\/image-5.png?w=1680&amp;ssl=1 1680w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/figure>\n\n\n\n<p>So if your tutorial file looks like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@GuideBook(title: \"Get Started with App Walk-Throughs\", icon: icon.png, background: background.png, firstFile: MyApp.swift) {\n    @WelcomeMessage(title: \"Get Started with App Walk-Throughs\") {\n        Welcome to the show\n    }\n    @Guide {\n        @Step(title: \"Get Started with App Walk-Throughs\") {\n            @ContentAndMedia {\n                Our first step...\n            }\n        }\n    }\n}<\/code><\/pre>\n\n\n\n<p>it&#8217;s likely you&#8217;ll see the error message about it not being able to be loaded.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"222\" data-attachment-id=\"4792\" data-permalink=\"https:\/\/www.thecodehub.ie\/news\/2024\/06\/20\/creating-an-app-walk-through-for-the-playgrounds-app\/image-4-10\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.thecodehub.ie\/news\/wp-content\/uploads\/2024\/06\/image-4.png?fit=800%2C222&amp;ssl=1\" data-orig-size=\"800,222\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image-4\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.thecodehub.ie\/news\/wp-content\/uploads\/2024\/06\/image-4.png?fit=800%2C222&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.thecodehub.ie\/news\/wp-content\/uploads\/2024\/06\/image-4.png?resize=800%2C222&#038;ssl=1\" alt=\"\" class=\"wp-image-4792\" style=\"width:448px;height:auto\" srcset=\"https:\/\/i0.wp.com\/www.thecodehub.ie\/news\/wp-content\/uploads\/2024\/06\/image-4.png?w=800&amp;ssl=1 800w, https:\/\/i0.wp.com\/www.thecodehub.ie\/news\/wp-content\/uploads\/2024\/06\/image-4.png?resize=300%2C83&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.thecodehub.ie\/news\/wp-content\/uploads\/2024\/06\/image-4.png?resize=768%2C213&amp;ssl=1 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/figure>\n<\/div>\n\n\n<p>So you might try changing your tutorial file to look like this, instead (note the change in <strong>bold<\/strong>):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@GuideBook(title: \"Get Started with App Walk-Throughs\", icon: icon.png, background: background.png, firstFile: <strong>ContentView.swift<\/strong>) {\n    @WelcomeMessage(title: \"Get Started with App Walk-Throughs\") {\n        Welcome to the show\n    }\n    @Guide {\n        @Step(title: \"Get Started with App Walk-Throughs\") {\n            @ContentAndMedia {\n                Our first step...\n            }\n        }\n    }\n}<\/code><\/pre>\n\n\n\n<p>Remember to close and reload your playground apps when you change the walk-through&#8230; that can be one of the biggest hassles about authoring app walk-throughs, but once you get a walk-through loaded it&#8217;s usually far, far easier to troubleshoot little missteps here and there.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Creating a walk-through for Swift Playgrounds can sometimes feel like wrestling a bag of eels in a room with all the lights burnt out. Walk-throughs are a great way to set up content that learners can go through at their own pace as if they had a very patient senior software engineer sitting beside them, &hellip; <a href=\"https:\/\/www.thecodehub.ie\/news\/2024\/06\/20\/creating-an-app-walk-through-for-the-playgrounds-app\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Creating an App Walk-Through for the Playgrounds App&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_price":"","_stock":"","_tribe_ticket_header":"","_tribe_default_ticket_provider":"","_tribe_ticket_capacity":"0","_ticket_start_date":"","_ticket_end_date":"","_tribe_ticket_show_description":"","_tribe_ticket_show_not_going":false,"_tribe_ticket_use_global_stock":"","_tribe_ticket_global_stock_level":"","_global_stock_mode":"","_global_stock_cap":"","_tribe_rsvp_for_event":"","_tribe_ticket_going_count":"","_tribe_ticket_not_going_count":"","_tribe_tickets_list":"[]","_tribe_ticket_has_attendee_info_fields":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[20,8],"tags":[],"class_list":["post-4791","post","type-post","status-publish","format-standard","hentry","category-develop-in-swift","category-swift-playgrounds"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Creating an App Walk-Through for the Playgrounds App &#060; The Code Hub<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.thecodehub.ie\/news\/2024\/06\/20\/creating-an-app-walk-through-for-the-playgrounds-app\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Creating an App Walk-Through for the Playgrounds App &#060; The Code Hub\" \/>\n<meta property=\"og:description\" content=\"Creating a walk-through for Swift Playgrounds can sometimes feel like wrestling a bag of eels in a room with all the lights burnt out. Walk-throughs are a great way to set up content that learners can go through at their own pace as if they had a very patient senior software engineer sitting beside them, &hellip; Continue reading &quot;Creating an App Walk-Through for the Playgrounds App&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.thecodehub.ie\/news\/2024\/06\/20\/creating-an-app-walk-through-for-the-playgrounds-app\/\" \/>\n<meta property=\"og:site_name\" content=\"The Code Hub\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/facebook.com\/thecodehub\" \/>\n<meta property=\"article:published_time\" content=\"2024-06-20T08:25:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.thecodehub.ie\/news\/wp-content\/uploads\/2021\/12\/SwiftPlaygroundsIcon.png\" \/>\n<meta name=\"author\" content=\"mhanlon\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@thecodehubIE\" \/>\n<meta name=\"twitter:site\" content=\"@thecodehubIE\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"mhanlon\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/2024\\\/06\\\/20\\\/creating-an-app-walk-through-for-the-playgrounds-app\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/2024\\\/06\\\/20\\\/creating-an-app-walk-through-for-the-playgrounds-app\\\/\"},\"author\":{\"name\":\"mhanlon\",\"@id\":\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/#\\\/schema\\\/person\\\/5a4e2bec3c92667356dda979a9f61fcd\"},\"headline\":\"Creating an App Walk-Through for the Playgrounds App\",\"datePublished\":\"2024-06-20T08:25:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/2024\\\/06\\\/20\\\/creating-an-app-walk-through-for-the-playgrounds-app\\\/\"},\"wordCount\":797,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/2024\\\/06\\\/20\\\/creating-an-app-walk-through-for-the-playgrounds-app\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/SwiftPlaygroundsIcon.png\",\"articleSection\":[\"Develop in Swift\",\"Swift Playgrounds\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/2024\\\/06\\\/20\\\/creating-an-app-walk-through-for-the-playgrounds-app\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/2024\\\/06\\\/20\\\/creating-an-app-walk-through-for-the-playgrounds-app\\\/\",\"url\":\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/2024\\\/06\\\/20\\\/creating-an-app-walk-through-for-the-playgrounds-app\\\/\",\"name\":\"Creating an App Walk-Through for the Playgrounds App &#060; The Code Hub\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/2024\\\/06\\\/20\\\/creating-an-app-walk-through-for-the-playgrounds-app\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/2024\\\/06\\\/20\\\/creating-an-app-walk-through-for-the-playgrounds-app\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/SwiftPlaygroundsIcon.png\",\"datePublished\":\"2024-06-20T08:25:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/2024\\\/06\\\/20\\\/creating-an-app-walk-through-for-the-playgrounds-app\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/2024\\\/06\\\/20\\\/creating-an-app-walk-through-for-the-playgrounds-app\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/2024\\\/06\\\/20\\\/creating-an-app-walk-through-for-the-playgrounds-app\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.thecodehub.ie\\\/news\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/SwiftPlaygroundsIcon.png?fit=512%2C512&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.thecodehub.ie\\\/news\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/SwiftPlaygroundsIcon.png?fit=512%2C512&ssl=1\",\"width\":512,\"height\":512,\"caption\":\"Swift Playgrounds Icon\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/2024\\\/06\\\/20\\\/creating-an-app-walk-through-for-the-playgrounds-app\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creating an App Walk-Through for the Playgrounds App\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/#website\",\"url\":\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/\",\"name\":\"The Code Hub\",\"description\":\"News from the Code Hub\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/#organization\",\"name\":\"The Code Hub\",\"url\":\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.thecodehub.ie\\\/news\\\/wp-content\\\/uploads\\\/2018\\\/02\\\/TheCodeHubLogo.001-copy.png?fit=226%2C264&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.thecodehub.ie\\\/news\\\/wp-content\\\/uploads\\\/2018\\\/02\\\/TheCodeHubLogo.001-copy.png?fit=226%2C264&ssl=1\",\"width\":226,\"height\":264,\"caption\":\"The Code Hub\"},\"image\":{\"@id\":\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"http:\\\/\\\/facebook.com\\\/thecodehub\",\"https:\\\/\\\/x.com\\\/thecodehubIE\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCx4bznoGDfjJRPfTa4LF9dA\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.thecodehub.ie\\\/news\\\/#\\\/schema\\\/person\\\/5a4e2bec3c92667356dda979a9f61fcd\",\"name\":\"mhanlon\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b9c657ee2e998340415a9b0faf3625ca2ae609c77433fb6c67b3e7f547e5ba1b?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b9c657ee2e998340415a9b0faf3625ca2ae609c77433fb6c67b3e7f547e5ba1b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b9c657ee2e998340415a9b0faf3625ca2ae609c77433fb6c67b3e7f547e5ba1b?s=96&d=mm&r=g\",\"caption\":\"mhanlon\"},\"sameAs\":[\"https:\\\/\\\/www.thecodehub.ie\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Creating an App Walk-Through for the Playgrounds App &#060; The Code Hub","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.thecodehub.ie\/news\/2024\/06\/20\/creating-an-app-walk-through-for-the-playgrounds-app\/","og_locale":"en_US","og_type":"article","og_title":"Creating an App Walk-Through for the Playgrounds App &#060; The Code Hub","og_description":"Creating a walk-through for Swift Playgrounds can sometimes feel like wrestling a bag of eels in a room with all the lights burnt out. Walk-throughs are a great way to set up content that learners can go through at their own pace as if they had a very patient senior software engineer sitting beside them, &hellip; Continue reading \"Creating an App Walk-Through for the Playgrounds App\"","og_url":"https:\/\/www.thecodehub.ie\/news\/2024\/06\/20\/creating-an-app-walk-through-for-the-playgrounds-app\/","og_site_name":"The Code Hub","article_publisher":"http:\/\/facebook.com\/thecodehub","article_published_time":"2024-06-20T08:25:00+00:00","og_image":[{"url":"https:\/\/www.thecodehub.ie\/news\/wp-content\/uploads\/2021\/12\/SwiftPlaygroundsIcon.png","type":"","width":"","height":""}],"author":"mhanlon","twitter_card":"summary_large_image","twitter_creator":"@thecodehubIE","twitter_site":"@thecodehubIE","twitter_misc":{"Written by":"mhanlon","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.thecodehub.ie\/news\/2024\/06\/20\/creating-an-app-walk-through-for-the-playgrounds-app\/#article","isPartOf":{"@id":"https:\/\/www.thecodehub.ie\/news\/2024\/06\/20\/creating-an-app-walk-through-for-the-playgrounds-app\/"},"author":{"name":"mhanlon","@id":"https:\/\/www.thecodehub.ie\/news\/#\/schema\/person\/5a4e2bec3c92667356dda979a9f61fcd"},"headline":"Creating an App Walk-Through for the Playgrounds App","datePublished":"2024-06-20T08:25:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.thecodehub.ie\/news\/2024\/06\/20\/creating-an-app-walk-through-for-the-playgrounds-app\/"},"wordCount":797,"commentCount":0,"publisher":{"@id":"https:\/\/www.thecodehub.ie\/news\/#organization"},"image":{"@id":"https:\/\/www.thecodehub.ie\/news\/2024\/06\/20\/creating-an-app-walk-through-for-the-playgrounds-app\/#primaryimage"},"thumbnailUrl":"https:\/\/www.thecodehub.ie\/news\/wp-content\/uploads\/2021\/12\/SwiftPlaygroundsIcon.png","articleSection":["Develop in Swift","Swift Playgrounds"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.thecodehub.ie\/news\/2024\/06\/20\/creating-an-app-walk-through-for-the-playgrounds-app\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.thecodehub.ie\/news\/2024\/06\/20\/creating-an-app-walk-through-for-the-playgrounds-app\/","url":"https:\/\/www.thecodehub.ie\/news\/2024\/06\/20\/creating-an-app-walk-through-for-the-playgrounds-app\/","name":"Creating an App Walk-Through for the Playgrounds App &#060; The Code Hub","isPartOf":{"@id":"https:\/\/www.thecodehub.ie\/news\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.thecodehub.ie\/news\/2024\/06\/20\/creating-an-app-walk-through-for-the-playgrounds-app\/#primaryimage"},"image":{"@id":"https:\/\/www.thecodehub.ie\/news\/2024\/06\/20\/creating-an-app-walk-through-for-the-playgrounds-app\/#primaryimage"},"thumbnailUrl":"https:\/\/www.thecodehub.ie\/news\/wp-content\/uploads\/2021\/12\/SwiftPlaygroundsIcon.png","datePublished":"2024-06-20T08:25:00+00:00","breadcrumb":{"@id":"https:\/\/www.thecodehub.ie\/news\/2024\/06\/20\/creating-an-app-walk-through-for-the-playgrounds-app\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.thecodehub.ie\/news\/2024\/06\/20\/creating-an-app-walk-through-for-the-playgrounds-app\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.thecodehub.ie\/news\/2024\/06\/20\/creating-an-app-walk-through-for-the-playgrounds-app\/#primaryimage","url":"https:\/\/i0.wp.com\/www.thecodehub.ie\/news\/wp-content\/uploads\/2021\/12\/SwiftPlaygroundsIcon.png?fit=512%2C512&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.thecodehub.ie\/news\/wp-content\/uploads\/2021\/12\/SwiftPlaygroundsIcon.png?fit=512%2C512&ssl=1","width":512,"height":512,"caption":"Swift Playgrounds Icon"},{"@type":"BreadcrumbList","@id":"https:\/\/www.thecodehub.ie\/news\/2024\/06\/20\/creating-an-app-walk-through-for-the-playgrounds-app\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.thecodehub.ie\/news\/"},{"@type":"ListItem","position":2,"name":"Creating an App Walk-Through for the Playgrounds App"}]},{"@type":"WebSite","@id":"https:\/\/www.thecodehub.ie\/news\/#website","url":"https:\/\/www.thecodehub.ie\/news\/","name":"The Code Hub","description":"News from the Code Hub","publisher":{"@id":"https:\/\/www.thecodehub.ie\/news\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.thecodehub.ie\/news\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.thecodehub.ie\/news\/#organization","name":"The Code Hub","url":"https:\/\/www.thecodehub.ie\/news\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.thecodehub.ie\/news\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/www.thecodehub.ie\/news\/wp-content\/uploads\/2018\/02\/TheCodeHubLogo.001-copy.png?fit=226%2C264&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.thecodehub.ie\/news\/wp-content\/uploads\/2018\/02\/TheCodeHubLogo.001-copy.png?fit=226%2C264&ssl=1","width":226,"height":264,"caption":"The Code Hub"},"image":{"@id":"https:\/\/www.thecodehub.ie\/news\/#\/schema\/logo\/image\/"},"sameAs":["http:\/\/facebook.com\/thecodehub","https:\/\/x.com\/thecodehubIE","https:\/\/www.youtube.com\/channel\/UCx4bznoGDfjJRPfTa4LF9dA"]},{"@type":"Person","@id":"https:\/\/www.thecodehub.ie\/news\/#\/schema\/person\/5a4e2bec3c92667356dda979a9f61fcd","name":"mhanlon","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/b9c657ee2e998340415a9b0faf3625ca2ae609c77433fb6c67b3e7f547e5ba1b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/b9c657ee2e998340415a9b0faf3625ca2ae609c77433fb6c67b3e7f547e5ba1b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b9c657ee2e998340415a9b0faf3625ca2ae609c77433fb6c67b3e7f547e5ba1b?s=96&d=mm&r=g","caption":"mhanlon"},"sameAs":["https:\/\/www.thecodehub.ie"]}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9ABLU-1fh","jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/www.thecodehub.ie\/news\/wp-json\/wp\/v2\/posts\/4791","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.thecodehub.ie\/news\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.thecodehub.ie\/news\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.thecodehub.ie\/news\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.thecodehub.ie\/news\/wp-json\/wp\/v2\/comments?post=4791"}],"version-history":[{"count":4,"href":"https:\/\/www.thecodehub.ie\/news\/wp-json\/wp\/v2\/posts\/4791\/revisions"}],"predecessor-version":[{"id":4799,"href":"https:\/\/www.thecodehub.ie\/news\/wp-json\/wp\/v2\/posts\/4791\/revisions\/4799"}],"wp:attachment":[{"href":"https:\/\/www.thecodehub.ie\/news\/wp-json\/wp\/v2\/media?parent=4791"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.thecodehub.ie\/news\/wp-json\/wp\/v2\/categories?post=4791"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.thecodehub.ie\/news\/wp-json\/wp\/v2\/tags?post=4791"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}