Horizontal scrolling page indicator SwiftUI in 10 minutes 2020
>> YOUR LINK HERE: ___ http://youtube.com/watch?v=nE2pHSvLxNc
SwiftUI doesn't come with a page indicator out of the box. When building interfaces it may be useful to have items scroll through horizontally while indicating how many items there are and which item the user is currently seeing. Making a simple page indicator can make the UI much more user-friendly. • Using Xcode 11.4","styleRuns":[{"startIndex":0,"length":320,"styleRunExtensions":{"styleRunColorMapExtension":{"colorMap":[{"key":"USER_INTERFACE_THEME_DARK","value":4294967295},{"key":"USER_INTERFACE_THEME_LIGHT","value":4279440147}]}},"fontFamilyName":"Roboto"}]},"headerRuns":[{"startIndex":0,"length":320,"headerMapping":"ATTRIBUTED_STRING_HEADER_MAPPING_UNSPECIFIED"}]}},{"itemSectionRenderer":{"contents":[{"continuationItemRenderer":{"trigger":"CONTINUATION_TRIGGER_ON_ITEM_SHOWN","continuationEndpoint":{"clickTrackingParams":"CO4BELsvGAIiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/next"}},"continuationCommand":{"token":"Eg0SC25FMnBIU3ZMeE5jGAYyJSIRIgtuRTJwSFN2THhOYzAAeAJCEGNvbW1lbnRzLXNlY3Rpb24%3D","request":"CONTINUATION_REQUEST_TYPE_WATCH_NEXT"}}}}],"trackingParams":"CO4BELsvGAIiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","sectionIdentifier":"comment-item-section","targetId":"comments-section"}}],"trackingParams":"CO0BELovIhMI_M7Np6_LiwMVeXB6BR28Lwf6"}},"secondaryResults":{"secondaryResults":{"results":[{"compactVideoRenderer":{"videoId":"0OaHzM3F9es","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/0OaHzM3F9es/hqdefault.jpg?sqp=-oaymwEiCKgBEF5IWvKriqkDFQgBFQAAAAAYASUAAMhCPQCAokN4AQ== rs=AOn4CLDX9FMETvyrRDic_NeLJR8gqM7uYQ","width":168,"height":94},{"url":"https://i.ytimg.com/vi/0OaHzM3F9es/hqdefault.jpg?sqp=-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE= rs=AOn4CLBjrOECwzyt96hs3q12Y80Kvvv4bw","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"SwiftUI Page View | Onboard Flow by Sean Allen 20,606 views 3 years ago 5 minutes, 40 seconds"}},"simpleText":"SwiftUI Page View | Onboard Flow"},"longBylineText":{"runs":[{"text":"Sean Allen","navigationEndpoint":{"clickTrackingParams":"COcBEKQwGAAiEwj8zs2nr8uLAxV5cHoFHbwvB_oyB3JlbGF0ZWQ=","commandMetadata":{"webCommandMetadata":{"url":"/@seanallen","webPageType":"WEB_PAGE_TYPE_CHANNEL","rootVe":3611,"apiUrl":"/youtubei/v1/browse"}},"browseEndpoint":{"browseId":"UCbTw29mcP12YlTt1EpUaVJw","canonicalBaseUrl":"/@seanallen"}}}]},"publishedTimeText":{"simpleText":"3 years ago"},"viewCountText":{"simpleText":"20,606 views"},"lengthText":{"accessibility":{"accessibilityData":{"label":"5 minutes, 40 seconds"}},"simpleText":"5:40"},"navigationEndpoint":{"clickTrackingParams":"COcBEKQwGAAiEwj8zs2nr8uLAxV5cHoFHbwvB_oyB3JlbGF0ZWRI14mv3tKj6qacAZoBBQgBEPgd","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=0OaHzM3F9es","webPageType":"WEB_PAGE_TYPE_WATCH","rootVe":3832}},"watchEndpoint":{"videoId":"0OaHzM3F9es","nofollow":true,"watchEndpointSupportedOnesieConfig":{"html5PlaybackOnesieConfig":{"commonConfig":{"url":"https://rr2---sn-uxaxiv0nxx5q-nv4l.googlevideo.com/initplayback?source=youtube oeis=1 c=WEB oad=3200 ovd=3200 oaad=11000 oavd=11000 ocs=700 oewis=1 oputc=1 ofpcc=1 msp=1 odepv=1 id=d0e687cccdc5f5eb ip=2a02%3A27aa%3A0%3A0%3A0%3A0%3A0%3Ad49 initcwndbps=1086250 mt=1739817660 oweuc="}}}}},"shortBylineText":{"runs":[{"text":"Sean Allen","navigationEndpoint":{"clickTrackingParams":"COcBEKQwGAAiEwj8zs2nr8uLAxV5cHoFHbwvB_oyB3JlbGF0ZWQ=","commandMetadata":{"webCommandMetadata":{"url":"/@seanallen","webPageType":"WEB_PAGE_TYPE_CHANNEL","rootVe":3611,"apiUrl":"/youtubei/v1/browse"}},"browseEndpoint":{"browseId":"UCbTw29mcP12YlTt1EpUaVJw","canonicalBaseUrl":"/@seanallen"}}}]},"channelThumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/wujHpEJt-XOr1fjzQW0-f9ko4eCFnlXqjhM5ecMtDzMi-3ezCor-UQ9OsydWOp_Z9dy5DdyX_Q=s68-c-k-c0x00ffffff-no-rj","width":68,"height":68}]},"trackingParams":"COcBEKQwGAAiEwj8zs2nr8uLAxV5cHoFHbwvB_pA6-uX7sz5ofPQAQ==","shortViewCountText":{"accessibility":{"accessibilityData":{"label":"20K views"}},"simpleText":"20K views"},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Add to queue"}]},"icon":{"iconType":"ADD_TO_QUEUE_TAIL"},"serviceEndpoint":{"clickTrackingParams":"COsBEP6YBBgFIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"clickTrackingParams":"COsBEP6YBBgFIhMI_M7Np6_LiwMVeXB6BR28Lwf6","addToPlaylistCommand":{"openMiniplayer":false,"openListPanel":true,"videoId":"0OaHzM3F9es","listType":"PLAYLIST_EDIT_LIST_TYPE_QUEUE","onCreateListCommand":{"clickTrackingParams":"COsBEP6YBBgFIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/playlist/create"}},"createPlaylistServiceEndpoint":{"videoIds":["0OaHzM3F9es"],"params":"CAQ%3D"}},"videoIds":["0OaHzM3F9es"]}},{"clickTrackingParams":"COsBEP6YBBgFIhMI_M7Np6_LiwMVeXB6BR28Lwf6","openPopupAction":{"popup":{"notificationActionRenderer":{"responseText":{"simpleText":"Added to queue"},"trackingParams":"COwBELlqIhMI_M7Np6_LiwMVeXB6BR28Lwf6"}},"popupType":"TOAST"}}]}},"trackingParams":"COsBEP6YBBgFIhMI_M7Np6_LiwMVeXB6BR28Lwf6"}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Share"}]},"icon":{"iconType":"SHARE"},"serviceEndpoint":{"clickTrackingParams":"COcBEKQwGAAiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/share/get_share_panel"}},"shareEntityServiceEndpoint":{"serializedShareEntity":"CgswT2FIek0zRjllcw%3D%3D","commands":[{"clickTrackingParams":"COcBEKQwGAAiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","openPopupAction":{"popup":{"unifiedSharePanelRenderer":{"trackingParams":"COoBEI5iIhMI_M7Np6_LiwMVeXB6BR28Lwf6","showLoadingSpinner":true}},"popupType":"DIALOG","beReused":true}}]}},"trackingParams":"COcBEKQwGAAiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","hasSeparator":true}}],"trackingParams":"COcBEKQwGAAiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","accessibility":{"accessibilityData":{"label":"Action menu"}},"targetId":"watch-related-menu-button"}},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"5 minutes, 40 seconds"}},"simpleText":"5:40"},"style":"DEFAULT"}},{"thumbnailOverlayToggleButtonRenderer":{"isToggled":false,"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"untoggledTooltip":"Watch later","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"COkBEPnnAxgBIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/browse/edit_playlist"}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"0OaHzM3F9es","action":"ACTION_ADD_VIDEO"}]}},"toggledServiceEndpoint":{"clickTrackingParams":"COkBEPnnAxgBIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/browse/edit_playlist"}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID","removedVideoId":"0OaHzM3F9es"}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}},"trackingParams":"COkBEPnnAxgBIhMI_M7Np6_LiwMVeXB6BR28Lwf6"}},{"thumbnailOverlayToggleButtonRenderer":{"untoggledIcon":{"iconType":"ADD_TO_QUEUE_TAIL"},"toggledIcon":{"iconType":"PLAYLIST_ADD_CHECK"},"untoggledTooltip":"Add to queue","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"COgBEMfsBBgCIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"clickTrackingParams":"COgBEMfsBBgCIhMI_M7Np6_LiwMVeXB6BR28Lwf6","addToPlaylistCommand":{"openMiniplayer":false,"openListPanel":true,"videoId":"0OaHzM3F9es","listType":"PLAYLIST_EDIT_LIST_TYPE_QUEUE","onCreateListCommand":{"clickTrackingParams":"COgBEMfsBBgCIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/playlist/create"}},"createPlaylistServiceEndpoint":{"videoIds":["0OaHzM3F9es"],"params":"CAQ%3D"}},"videoIds":["0OaHzM3F9es"]}}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Add to queue"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}},"trackingParams":"COgBEMfsBBgCIhMI_M7Np6_LiwMVeXB6BR28Lwf6"}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"accessibility":{"accessibilityData":{"label":"SwiftUI Page View | Onboard Flow - 5 minutes, 40 seconds - Go to channel - Sean Allen - 20K views - 3 years ago - play video"}}}},{"compactVideoRenderer":{"videoId":"x7fdvXdVd98","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/x7fdvXdVd98/hqdefault.jpg?sqp=-oaymwEiCKgBEF5IWvKriqkDFQgBFQAAAAAYASUAAMhCPQCAokN4AQ== rs=AOn4CLB4FZ6TX41rsZXLn_JZhDpkR0mbzQ","width":168,"height":94},{"url":"https://i.ytimg.com/vi/x7fdvXdVd98/hqdefault.jpg?sqp=-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE= rs=AOn4CLCfH37NGAASkHChDC92GaYNtu4nSw","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"How to synchronize animations from one view to another with matchedGeometryEffect() – SwiftUI by Paul Hudson 14,803 views 4 years ago 8 minutes, 6 seconds"}},"simpleText":"How to synchronize animations from one view to another with matchedGeometryEffect() – SwiftUI"},"longBylineText":{"runs":[{"text":"Paul Hudson","navigationEndpoint":{"clickTrackingParams":"COEBEKQwGAEiEwj8zs2nr8uLAxV5cHoFHbwvB_oyB3JlbGF0ZWQ=","commandMetadata":{"webCommandMetadata":{"url":"/@twostraws","webPageType":"WEB_PAGE_TYPE_CHANNEL","rootVe":3611,"apiUrl":"/youtubei/v1/browse"}},"browseEndpoint":{"browseId":"UCmJi5RdDLgzvkl3Ly0DRMlQ","canonicalBaseUrl":"/@twostraws"}}}]},"publishedTimeText":{"simpleText":"4 years ago"},"viewCountText":{"simpleText":"14,803 views"},"lengthText":{"accessibility":{"accessibilityData":{"label":"8 minutes, 6 seconds"}},"simpleText":"8:06"},"navigationEndpoint":{"clickTrackingParams":"COEBEKQwGAEiEwj8zs2nr8uLAxV5cHoFHbwvB_oyB3JlbGF0ZWRI14mv3tKj6qacAZoBBQgBEPgd","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=x7fdvXdVd98","webPageType":"WEB_PAGE_TYPE_WATCH","rootVe":3832}},"watchEndpoint":{"videoId":"x7fdvXdVd98","nofollow":true,"watchEndpointSupportedOnesieConfig":{"html5PlaybackOnesieConfig":{"commonConfig":{"url":"https://rr2---sn-nv47lnsy.googlevideo.com/initplayback?source=youtube oeis=1 c=WEB oad=3200 ovd=3200 oaad=11000 oavd=11000 ocs=700 oewis=1 oputc=1 ofpcc=1 msp=1 odepv=1 id=c7b7ddbd775577df ip=2a02%3A27aa%3A0%3A0%3A0%3A0%3A0%3Ad49 initcwndbps=1331250 mt=1739817660 oweuc="}}}}},"shortBylineText":{"runs":[{"text":"Paul Hudson","navigationEndpoint":{"clickTrackingParams":"COEBEKQwGAEiEwj8zs2nr8uLAxV5cHoFHbwvB_oyB3JlbGF0ZWQ=","commandMetadata":{"webCommandMetadata":{"url":"/@twostraws","webPageType":"WEB_PAGE_TYPE_CHANNEL","rootVe":3611,"apiUrl":"/youtubei/v1/browse"}},"browseEndpoint":{"browseId":"UCmJi5RdDLgzvkl3Ly0DRMlQ","canonicalBaseUrl":"/@twostraws"}}}]},"channelThumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/J5lcgDI1Ku5p4HRXwLKTeuKYWSkgRP6r4maoYSz_HtwdY1v0gHTtlULu1mjG_jk5Ou2joRL3pQ=s68-c-k-c0x00ffffff-no-rj","width":68,"height":68}]},"trackingParams":"COEBEKQwGAEiEwj8zs2nr8uLAxV5cHoFHbwvB_pA3-_Vute399vHAQ==","shortViewCountText":{"accessibility":{"accessibilityData":{"label":"14K views"}},"simpleText":"14K views"},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Add to queue"}]},"icon":{"iconType":"ADD_TO_QUEUE_TAIL"},"serviceEndpoint":{"clickTrackingParams":"COUBEP6YBBgFIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"clickTrackingParams":"COUBEP6YBBgFIhMI_M7Np6_LiwMVeXB6BR28Lwf6","addToPlaylistCommand":{"openMiniplayer":false,"openListPanel":true,"videoId":"x7fdvXdVd98","listType":"PLAYLIST_EDIT_LIST_TYPE_QUEUE","onCreateListCommand":{"clickTrackingParams":"COUBEP6YBBgFIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/playlist/create"}},"createPlaylistServiceEndpoint":{"videoIds":["x7fdvXdVd98"],"params":"CAQ%3D"}},"videoIds":["x7fdvXdVd98"]}},{"clickTrackingParams":"COUBEP6YBBgFIhMI_M7Np6_LiwMVeXB6BR28Lwf6","openPopupAction":{"popup":{"notificationActionRenderer":{"responseText":{"simpleText":"Added to queue"},"trackingParams":"COYBELlqIhMI_M7Np6_LiwMVeXB6BR28Lwf6"}},"popupType":"TOAST"}}]}},"trackingParams":"COUBEP6YBBgFIhMI_M7Np6_LiwMVeXB6BR28Lwf6"}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Share"}]},"icon":{"iconType":"SHARE"},"serviceEndpoint":{"clickTrackingParams":"COEBEKQwGAEiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/share/get_share_panel"}},"shareEntityServiceEndpoint":{"serializedShareEntity":"Cgt4N2ZkdlhkVmQ5OA%3D%3D","commands":[{"clickTrackingParams":"COEBEKQwGAEiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","openPopupAction":{"popup":{"unifiedSharePanelRenderer":{"trackingParams":"COQBEI5iIhMI_M7Np6_LiwMVeXB6BR28Lwf6","showLoadingSpinner":true}},"popupType":"DIALOG","beReused":true}}]}},"trackingParams":"COEBEKQwGAEiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","hasSeparator":true}}],"trackingParams":"COEBEKQwGAEiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","accessibility":{"accessibilityData":{"label":"Action menu"}}}},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"8 minutes, 6 seconds"}},"simpleText":"8:06"},"style":"DEFAULT"}},{"thumbnailOverlayToggleButtonRenderer":{"isToggled":false,"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"untoggledTooltip":"Watch later","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"COMBEPnnAxgBIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/browse/edit_playlist"}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"x7fdvXdVd98","action":"ACTION_ADD_VIDEO"}]}},"toggledServiceEndpoint":{"clickTrackingParams":"COMBEPnnAxgBIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/browse/edit_playlist"}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID","removedVideoId":"x7fdvXdVd98"}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}},"trackingParams":"COMBEPnnAxgBIhMI_M7Np6_LiwMVeXB6BR28Lwf6"}},{"thumbnailOverlayToggleButtonRenderer":{"untoggledIcon":{"iconType":"ADD_TO_QUEUE_TAIL"},"toggledIcon":{"iconType":"PLAYLIST_ADD_CHECK"},"untoggledTooltip":"Add to queue","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"COIBEMfsBBgCIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"clickTrackingParams":"COIBEMfsBBgCIhMI_M7Np6_LiwMVeXB6BR28Lwf6","addToPlaylistCommand":{"openMiniplayer":false,"openListPanel":true,"videoId":"x7fdvXdVd98","listType":"PLAYLIST_EDIT_LIST_TYPE_QUEUE","onCreateListCommand":{"clickTrackingParams":"COIBEMfsBBgCIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/playlist/create"}},"createPlaylistServiceEndpoint":{"videoIds":["x7fdvXdVd98"],"params":"CAQ%3D"}},"videoIds":["x7fdvXdVd98"]}}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Add to queue"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}},"trackingParams":"COIBEMfsBBgCIhMI_M7Np6_LiwMVeXB6BR28Lwf6"}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"accessibility":{"accessibilityData":{"label":"How to synchronize animations from one view to another with matchedGeometryEffect() – SwiftUI - 8 minutes, 6 seconds - Go to channel - Paul Hudson - 14K views - 4 years ago - play video"}}}},{"compactVideoRenderer":{"videoId":"MQl4DlDf_5k","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/MQl4DlDf_5k/hqdefault.jpg?sqp=-oaymwEiCKgBEF5IWvKriqkDFQgBFQAAAAAYASUAAMhCPQCAokN4AQ== rs=AOn4CLCxuuBTbETglXP6B4CBWh58F6XxOQ","width":168,"height":94},{"url":"https://i.ytimg.com/vi/MQl4DlDf_5k/hqdefault.jpg?sqp=-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE= rs=AOn4CLCfJMN5DN3VWHSD_v29P8xOKFetFg","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"How to create custom ViewModifiers in SwiftUI | Advanced Learning #1 by Swiftful Thinking 24,129 views 3 years ago 18 minutes"}},"simpleText":"How to create custom ViewModifiers in SwiftUI | Advanced Learning #1"},"longBylineText":{"runs":[{"text":"Swiftful Thinking","navigationEndpoint":{"clickTrackingParams":"CNsBEKQwGAIiEwj8zs2nr8uLAxV5cHoFHbwvB_oyB3JlbGF0ZWQ=","commandMetadata":{"webCommandMetadata":{"url":"/@SwiftfulThinking","webPageType":"WEB_PAGE_TYPE_CHANNEL","rootVe":3611,"apiUrl":"/youtubei/v1/browse"}},"browseEndpoint":{"browseId":"UCp25X4LzOLaksp5qY0YMUzg","canonicalBaseUrl":"/@SwiftfulThinking"}}}]},"publishedTimeText":{"simpleText":"3 years ago"},"viewCountText":{"simpleText":"24,129 views"},"lengthText":{"accessibility":{"accessibilityData":{"label":"18 minutes, 59 seconds"}},"simpleText":"18:59"},"navigationEndpoint":{"clickTrackingParams":"CNsBEKQwGAIiEwj8zs2nr8uLAxV5cHoFHbwvB_oyB3JlbGF0ZWRI14mv3tKj6qacAZoBBQgBEPgd","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=MQl4DlDf_5k","webPageType":"WEB_PAGE_TYPE_WATCH","rootVe":3832}},"watchEndpoint":{"videoId":"MQl4DlDf_5k","nofollow":true,"watchEndpointSupportedOnesieConfig":{"html5PlaybackOnesieConfig":{"commonConfig":{"url":"https://rr3---sn-nv47znee.googlevideo.com/initplayback?source=youtube oeis=1 c=WEB oad=3200 ovd=3200 oaad=11000 oavd=11000 ocs=700 oewis=1 oputc=1 ofpcc=1 msp=1 odepv=1 id=3109780e50dfff99 ip=2a02%3A27aa%3A0%3A0%3A0%3A0%3A0%3Ad49 initcwndbps=1331250 mt=1739817660 oweuc="}}}}},"shortBylineText":{"runs":[{"text":"Swiftful Thinking","navigationEndpoint":{"clickTrackingParams":"CNsBEKQwGAIiEwj8zs2nr8uLAxV5cHoFHbwvB_oyB3JlbGF0ZWQ=","commandMetadata":{"webCommandMetadata":{"url":"/@SwiftfulThinking","webPageType":"WEB_PAGE_TYPE_CHANNEL","rootVe":3611,"apiUrl":"/youtubei/v1/browse"}},"browseEndpoint":{"browseId":"UCp25X4LzOLaksp5qY0YMUzg","canonicalBaseUrl":"/@SwiftfulThinking"}}}]},"channelThumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/2P5WbzCC7NUgQTOBc8PjBQvUDI2cHfxec0AcK7JA0VRuTm5dl_IfUzg51bX-ophUiamxrpX3=s68-c-k-c0x00ffffff-no-rj","width":68,"height":68}]},"trackingParams":"CNsBEKQwGAIiEwj8zs2nr8uLAxV5cHoFHbwvB_pAmf__huWB3oQx","shortViewCountText":{"accessibility":{"accessibilityData":{"label":"24K views"}},"simpleText":"24K views"},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Add to queue"}]},"icon":{"iconType":"ADD_TO_QUEUE_TAIL"},"serviceEndpoint":{"clickTrackingParams":"CN8BEP6YBBgFIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"clickTrackingParams":"CN8BEP6YBBgFIhMI_M7Np6_LiwMVeXB6BR28Lwf6","addToPlaylistCommand":{"openMiniplayer":false,"openListPanel":true,"videoId":"MQl4DlDf_5k","listType":"PLAYLIST_EDIT_LIST_TYPE_QUEUE","onCreateListCommand":{"clickTrackingParams":"CN8BEP6YBBgFIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/playlist/create"}},"createPlaylistServiceEndpoint":{"videoIds":["MQl4DlDf_5k"],"params":"CAQ%3D"}},"videoIds":["MQl4DlDf_5k"]}},{"clickTrackingParams":"CN8BEP6YBBgFIhMI_M7Np6_LiwMVeXB6BR28Lwf6","openPopupAction":{"popup":{"notificationActionRenderer":{"responseText":{"simpleText":"Added to queue"},"trackingParams":"COABELlqIhMI_M7Np6_LiwMVeXB6BR28Lwf6"}},"popupType":"TOAST"}}]}},"trackingParams":"CN8BEP6YBBgFIhMI_M7Np6_LiwMVeXB6BR28Lwf6"}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Share"}]},"icon":{"iconType":"SHARE"},"serviceEndpoint":{"clickTrackingParams":"CNsBEKQwGAIiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/share/get_share_panel"}},"shareEntityServiceEndpoint":{"serializedShareEntity":"CgtNUWw0RGxEZl81aw%3D%3D","commands":[{"clickTrackingParams":"CNsBEKQwGAIiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","openPopupAction":{"popup":{"unifiedSharePanelRenderer":{"trackingParams":"CN4BEI5iIhMI_M7Np6_LiwMVeXB6BR28Lwf6","showLoadingSpinner":true}},"popupType":"DIALOG","beReused":true}}]}},"trackingParams":"CNsBEKQwGAIiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","hasSeparator":true}}],"trackingParams":"CNsBEKQwGAIiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","accessibility":{"accessibilityData":{"label":"Action menu"}}}},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"18 minutes, 59 seconds"}},"simpleText":"18:59"},"style":"DEFAULT"}},{"thumbnailOverlayToggleButtonRenderer":{"isToggled":false,"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"untoggledTooltip":"Watch later","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CN0BEPnnAxgBIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/browse/edit_playlist"}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"MQl4DlDf_5k","action":"ACTION_ADD_VIDEO"}]}},"toggledServiceEndpoint":{"clickTrackingParams":"CN0BEPnnAxgBIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/browse/edit_playlist"}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID","removedVideoId":"MQl4DlDf_5k"}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}},"trackingParams":"CN0BEPnnAxgBIhMI_M7Np6_LiwMVeXB6BR28Lwf6"}},{"thumbnailOverlayToggleButtonRenderer":{"untoggledIcon":{"iconType":"ADD_TO_QUEUE_TAIL"},"toggledIcon":{"iconType":"PLAYLIST_ADD_CHECK"},"untoggledTooltip":"Add to queue","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CNwBEMfsBBgCIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"clickTrackingParams":"CNwBEMfsBBgCIhMI_M7Np6_LiwMVeXB6BR28Lwf6","addToPlaylistCommand":{"openMiniplayer":false,"openListPanel":true,"videoId":"MQl4DlDf_5k","listType":"PLAYLIST_EDIT_LIST_TYPE_QUEUE","onCreateListCommand":{"clickTrackingParams":"CNwBEMfsBBgCIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/playlist/create"}},"createPlaylistServiceEndpoint":{"videoIds":["MQl4DlDf_5k"],"params":"CAQ%3D"}},"videoIds":["MQl4DlDf_5k"]}}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Add to queue"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}},"trackingParams":"CNwBEMfsBBgCIhMI_M7Np6_LiwMVeXB6BR28Lwf6"}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"accessibility":{"accessibilityData":{"label":"How to create custom ViewModifiers in SwiftUI | Advanced Learning #1 - 18 minutes - Go to channel - Swiftful Thinking - 24K views - 3 years ago - play video"}}}},{"compactVideoRenderer":{"videoId":"hxmolDruaKY","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/hxmolDruaKY/hqdefault.jpg?sqp=-oaymwEiCKgBEF5IWvKriqkDFQgBFQAAAAAYASUAAMhCPQCAokN4AQ== rs=AOn4CLDPT-otwVXiVGZAymkVByr_TBpKLw","width":168,"height":94},{"url":"https://i.ytimg.com/vi/hxmolDruaKY/hqdefault.jpg?sqp=-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE= rs=AOn4CLC0yo4hWz0mkIAMJV_XonHG8pRung","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"Drag Gesture | SwiftUI in 5 minutes | 2020 by Krass Iankov 2,834 views 4 years ago 5 minutes, 40 seconds"}},"simpleText":"Drag Gesture | SwiftUI in 5 minutes | 2020"},"longBylineText":{"runs":[{"text":"Krass Iankov","navigationEndpoint":{"clickTrackingParams":"CNUBEKQwGAMiEwj8zs2nr8uLAxV5cHoFHbwvB_oyB3JlbGF0ZWQ=","commandMetadata":{"webCommandMetadata":{"url":"/@KrassIankov","webPageType":"WEB_PAGE_TYPE_CHANNEL","rootVe":3611,"apiUrl":"/youtubei/v1/browse"}},"browseEndpoint":{"browseId":"UCSMxuZP6KUb_i9F-K1LAtrw","canonicalBaseUrl":"/@KrassIankov"}}}]},"publishedTimeText":{"simpleText":"4 years ago"},"viewCountText":{"simpleText":"2,834 views"},"lengthText":{"accessibility":{"accessibilityData":{"label":"5 minutes, 40 seconds"}},"simpleText":"5:40"},"navigationEndpoint":{"clickTrackingParams":"CNUBEKQwGAMiEwj8zs2nr8uLAxV5cHoFHbwvB_oyB3JlbGF0ZWRI14mv3tKj6qacAZoBBQgBEPgd","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=hxmolDruaKY","webPageType":"WEB_PAGE_TYPE_WATCH","rootVe":3832}},"watchEndpoint":{"videoId":"hxmolDruaKY","nofollow":true,"watchEndpointSupportedOnesieConfig":{"html5PlaybackOnesieConfig":{"commonConfig":{"url":"https://rr5---sn-nv47ln6e.googlevideo.com/initplayback?source=youtube oeis=1 c=WEB oad=3200 ovd=3200 oaad=11000 oavd=11000 ocs=700 oewis=1 oputc=1 ofpcc=1 msp=1 odepv=1 id=8719a8943aee68a6 ip=2a02%3A27aa%3A0%3A0%3A0%3A0%3A0%3Ad49 initcwndbps=1266250 mt=1739817660 oweuc="}}}}},"shortBylineText":{"runs":[{"text":"Krass Iankov","navigationEndpoint":{"clickTrackingParams":"CNUBEKQwGAMiEwj8zs2nr8uLAxV5cHoFHbwvB_oyB3JlbGF0ZWQ=","commandMetadata":{"webCommandMetadata":{"url":"/@KrassIankov","webPageType":"WEB_PAGE_TYPE_CHANNEL","rootVe":3611,"apiUrl":"/youtubei/v1/browse"}},"browseEndpoint":{"browseId":"UCSMxuZP6KUb_i9F-K1LAtrw","canonicalBaseUrl":"/@KrassIankov"}}}]},"channelThumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/ytc/AIdro_l19T4PZ4hQrRtF2f0BWg14QOfZ_V_fho4b9yDFnzzWkbE=s68-c-k-c0x00ffffff-no-rj","width":68,"height":68}]},"trackingParams":"CNUBEKQwGAMiEwj8zs2nr8uLAxV5cHoFHbwvB_pAptG518OS6oyHAQ==","shortViewCountText":{"accessibility":{"accessibilityData":{"label":"2.8K views"}},"simpleText":"2.8K views"},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Add to queue"}]},"icon":{"iconType":"ADD_TO_QUEUE_TAIL"},"serviceEndpoint":{"clickTrackingParams":"CNkBEP6YBBgFIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"clickTrackingParams":"CNkBEP6YBBgFIhMI_M7Np6_LiwMVeXB6BR28Lwf6","addToPlaylistCommand":{"openMiniplayer":false,"openListPanel":true,"videoId":"hxmolDruaKY","listType":"PLAYLIST_EDIT_LIST_TYPE_QUEUE","onCreateListCommand":{"clickTrackingParams":"CNkBEP6YBBgFIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/playlist/create"}},"createPlaylistServiceEndpoint":{"videoIds":["hxmolDruaKY"],"params":"CAQ%3D"}},"videoIds":["hxmolDruaKY"]}},{"clickTrackingParams":"CNkBEP6YBBgFIhMI_M7Np6_LiwMVeXB6BR28Lwf6","openPopupAction":{"popup":{"notificationActionRenderer":{"responseText":{"simpleText":"Added to queue"},"trackingParams":"CNoBELlqIhMI_M7Np6_LiwMVeXB6BR28Lwf6"}},"popupType":"TOAST"}}]}},"trackingParams":"CNkBEP6YBBgFIhMI_M7Np6_LiwMVeXB6BR28Lwf6"}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Share"}]},"icon":{"iconType":"SHARE"},"serviceEndpoint":{"clickTrackingParams":"CNUBEKQwGAMiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/share/get_share_panel"}},"shareEntityServiceEndpoint":{"serializedShareEntity":"CgtoeG1vbERydWFLWQ%3D%3D","commands":[{"clickTrackingParams":"CNUBEKQwGAMiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","openPopupAction":{"popup":{"unifiedSharePanelRenderer":{"trackingParams":"CNgBEI5iIhMI_M7Np6_LiwMVeXB6BR28Lwf6","showLoadingSpinner":true}},"popupType":"DIALOG","beReused":true}}]}},"trackingParams":"CNUBEKQwGAMiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","hasSeparator":true}}],"trackingParams":"CNUBEKQwGAMiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","accessibility":{"accessibilityData":{"label":"Action menu"}}}},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"5 minutes, 40 seconds"}},"simpleText":"5:40"},"style":"DEFAULT"}},{"thumbnailOverlayToggleButtonRenderer":{"isToggled":false,"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"untoggledTooltip":"Watch later","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CNcBEPnnAxgBIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/browse/edit_playlist"}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"hxmolDruaKY","action":"ACTION_ADD_VIDEO"}]}},"toggledServiceEndpoint":{"clickTrackingParams":"CNcBEPnnAxgBIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/browse/edit_playlist"}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID","removedVideoId":"hxmolDruaKY"}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}},"trackingParams":"CNcBEPnnAxgBIhMI_M7Np6_LiwMVeXB6BR28Lwf6"}},{"thumbnailOverlayToggleButtonRenderer":{"untoggledIcon":{"iconType":"ADD_TO_QUEUE_TAIL"},"toggledIcon":{"iconType":"PLAYLIST_ADD_CHECK"},"untoggledTooltip":"Add to queue","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CNYBEMfsBBgCIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"clickTrackingParams":"CNYBEMfsBBgCIhMI_M7Np6_LiwMVeXB6BR28Lwf6","addToPlaylistCommand":{"openMiniplayer":false,"openListPanel":true,"videoId":"hxmolDruaKY","listType":"PLAYLIST_EDIT_LIST_TYPE_QUEUE","onCreateListCommand":{"clickTrackingParams":"CNYBEMfsBBgCIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/playlist/create"}},"createPlaylistServiceEndpoint":{"videoIds":["hxmolDruaKY"],"params":"CAQ%3D"}},"videoIds":["hxmolDruaKY"]}}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Add to queue"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}},"trackingParams":"CNYBEMfsBBgCIhMI_M7Np6_LiwMVeXB6BR28Lwf6"}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"accessibility":{"accessibilityData":{"label":"Drag Gesture | SwiftUI in 5 minutes | 2020 - 5 minutes, 40 seconds - Go to channel - Krass Iankov - 2.8K views - 4 years ago - play video"}}}},{"compactVideoRenderer":{"videoId":"uo8gj7RT3H8","thumbnail":{"thumbnails":[{"url":"https://i.ytimg.com/vi/uo8gj7RT3H8/hqdefault.jpg?sqp=-oaymwEiCKgBEF5IWvKriqkDFQgBFQAAAAAYASUAAMhCPQCAokN4AQ== rs=AOn4CLAykDw2dBIrG4b0kszK4LppBFvPXA","width":168,"height":94},{"url":"https://i.ytimg.com/vi/uo8gj7RT3H8/hqdefault.jpg?sqp=-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE= rs=AOn4CLAS9PevSZgFuo97FM-YcW7SM3bu7g","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"SwiftUI 2.0 Custom Animated Indicator For Page Tab View - Custom Animations - SwiftUI Tutorials by Kavsoft 14,377 views 3 years ago 6 minutes, 3 seconds"}},"simpleText":"SwiftUI 2.0 Custom Animated Indicator For Page Tab View - Custom Animations - SwiftUI Tutorials"},"longBylineText":{"runs":[{"text":"Kavsoft","navigationEndpoint":{"clickTrackingParams":"CM8BEKQwGAQiEwj8zs2nr8uLAxV5cHoFHbwvB_oyB3JlbGF0ZWQ=","commandMetadata":{"webCommandMetadata":{"url":"/@Kavsoft","webPageType":"WEB_PAGE_TYPE_CHANNEL","rootVe":3611,"apiUrl":"/youtubei/v1/browse"}},"browseEndpoint":{"browseId":"UCsuV4MRk_aB291SrchUVb4w","canonicalBaseUrl":"/@Kavsoft"}}}]},"publishedTimeText":{"simpleText":"3 years ago"},"viewCountText":{"simpleText":"14,377 views"},"lengthText":{"accessibility":{"accessibilityData":{"label":"6 minutes, 3 seconds"}},"simpleText":"6:03"},"navigationEndpoint":{"clickTrackingParams":"CM8BEKQwGAQiEwj8zs2nr8uLAxV5cHoFHbwvB_oyB3JlbGF0ZWRI14mv3tKj6qacAZoBBQgBEPgd","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=uo8gj7RT3H8","webPageType":"WEB_PAGE_TYPE_WATCH","rootVe":3832}},"watchEndpoint":{"videoId":"uo8gj7RT3H8","nofollow":true,"watchEndpointSupportedOnesieConfig":{"html5PlaybackOnesieConfig":{"commonConfig":{"url":"https://rr1---sn-uxaxiv0nxx5q-nv4l.googlevideo.com/initplayback?source=youtube oeis=1 c=WEB oad=3200 ovd=3200 oaad=11000 oavd=11000 ocs=700 oewis=1 oputc=1 ofpcc=1 msp=1 odepv=1 id=ba8f208fb453dc7f ip=2a02%3A27aa%3A0%3A0%3A0%3A0%3A0%3Ad49 initcwndbps=1086250 mt=1739817660 oweuc="}}}}},"shortBylineText":{"runs":[{"text":"Kavsoft","navigationEndpoint":{"clickTrackingParams":"CM8BEKQwGAQiEwj8zs2nr8uLAxV5cHoFHbwvB_oyB3JlbGF0ZWQ=","commandMetadata":{"webCommandMetadata":{"url":"/@Kavsoft","webPageType":"WEB_PAGE_TYPE_CHANNEL","rootVe":3611,"apiUrl":"/youtubei/v1/browse"}},"browseEndpoint":{"browseId":"UCsuV4MRk_aB291SrchUVb4w","canonicalBaseUrl":"/@Kavsoft"}}}]},"channelThumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/dW7aSLTmj2PTF_laFRjZ904Vd0Q5qixMx0rjx68sAz16nq-1ZfURsH-JPQivFaMQSBLpw4CyKXU=s68-c-k-c0x00ffffff-no-rj","width":68,"height":68}]},"trackingParams":"CM8BEKQwGAQiEwj8zs2nr8uLAxV5cHoFHbwvB_pA_7jPovuRyMe6AQ==","shortViewCountText":{"accessibility":{"accessibilityData":{"label":"14K views"}},"simpleText":"14K views"},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Add to queue"}]},"icon":{"iconType":"ADD_TO_QUEUE_TAIL"},"serviceEndpoint":{"clickTrackingParams":"CNMBEP6YBBgFIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"clickTrackingParams":"CNMBEP6YBBgFIhMI_M7Np6_LiwMVeXB6BR28Lwf6","addToPlaylistCommand":{"openMiniplayer":false,"openListPanel":true,"videoId":"uo8gj7RT3H8","listType":"PLAYLIST_EDIT_LIST_TYPE_QUEUE","onCreateListCommand":{"clickTrackingParams":"CNMBEP6YBBgFIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/playlist/create"}},"createPlaylistServiceEndpoint":{"videoIds":["uo8gj7RT3H8"],"params":"CAQ%3D"}},"videoIds":["uo8gj7RT3H8"]}},{"clickTrackingParams":"CNMBEP6YBBgFIhMI_M7Np6_LiwMVeXB6BR28Lwf6","openPopupAction":{"popup":{"notificationActionRenderer":{"responseText":{"simpleText":"Added to queue"},"trackingParams":"CNQBELlqIhMI_M7Np6_LiwMVeXB6BR28Lwf6"}},"popupType":"TOAST"}}]}},"trackingParams":"CNMBEP6YBBgFIhMI_M7Np6_LiwMVeXB6BR28Lwf6"}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Share"}]},"icon":{"iconType":"SHARE"},"serviceEndpoint":{"clickTrackingParams":"CM8BEKQwGAQiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/share/get_share_panel"}},"shareEntityServiceEndpoint":{"serializedShareEntity":"Cgt1bzhnajdSVDNIOA%3D%3D","commands":[{"clickTrackingParams":"CM8BEKQwGAQiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","openPopupAction":{"popup":{"unifiedSharePanelRenderer":{"trackingParams":"CNIBEI5iIhMI_M7Np6_LiwMVeXB6BR28Lwf6","showLoadingSpinner":true}},"popupType":"DIALOG","beReused":true}}]}},"trackingParams":"CM8BEKQwGAQiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","hasSeparator":true}}],"trackingParams":"CM8BEKQwGAQiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","accessibility":{"accessibilityData":{"label":"Action menu"}}}},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"6 minutes, 3 seconds"}},"simpleText":"6:03"},"style":"DEFAULT"}},{"thumbnailOverlayToggleButtonRenderer":{"isToggled":false,"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"untoggledTooltip":"Watch later","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CNEBEPnnAxgBIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/browse/edit_playlist"}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"uo8gj7RT3H8","action":"ACTION_ADD_VIDEO"}]}},"toggledServiceEndpoint":{"clickTrackingParams":"CNEBEPnnAxgBIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/browse/edit_playlist"}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID","removedVideoId":"uo8gj7RT3H8"}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}},"trackingParams":"CNEBEPnnAxgBIhMI_M7Np6_LiwMVeXB6BR28Lwf6"}},{"thumbnailOverlayToggleButtonRenderer":{"untoggledIcon":{"iconType":"ADD_TO_QUEUE_TAIL"},"toggledIcon":{"iconType":"PLAYLIST_ADD_CHECK"},"untoggledTooltip":"Add to queue","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CNABEMfsBBgCIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"clickTrackingParams":"CNABEMfsBBgCIhMI_M7Np6_LiwMVeXB6BR28Lwf6","addToPlaylistCommand":{"openMiniplayer":false,"openListPanel":true,"videoId":"uo8gj7RT3H8","listType":"PLAYLIST_EDIT_LIST_TYPE_QUEUE","onCreateListCommand":{"clickTrackingParams":"CNABEMfsBBgCIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/playlist/create"}},"createPlaylistServiceEndpoint":{"videoIds":["uo8gj7RT3H8"],"params":"CAQ%3D"}},"videoIds":["uo8gj7RT3H8"]}}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Add to queue"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}},"trackingParams":"CNABEMfsBBgCIhMI_M7Np6_LiwMVeXB6BR28Lwf6"}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"accessibility":{"accessibilityData":{"label":"SwiftUI 2.0 Custom Animated Indicator For Page Tab View - Custom Animations - SwiftUI Tutorials - 6 minutes, 3 seconds - Go to channel - Kavsoft - 14K views - 3 years ago - play video"}}}},{"compactVideoRenderer":{"videoId":"P_fHJIYENdI","thumbnail":{"thumbnails":[{"url":"https://i9.ytimg.com/vi/P_fHJIYENdI/hqdefault_custom_2.jpg?sqp=CKyHzr0G-oaymwEiCKgBEF5IWvKriqkDFQgBFQAAAAAYASUAAMhCPQCAokN4AQ== rs=AOn4CLD7L5a2lMIiO0RSwWfWmmLiJL4eIQ","width":168,"height":94},{"url":"https://i9.ytimg.com/vi/P_fHJIYENdI/hqdefault_custom_2.jpg?sqp=CKyHzr0G-oaymwEjCNACELwBSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE= rs=AOn4CLD0PwYLfGnCrjXIWnLliaFPRN3brw","width":336,"height":188}]},"title":{"accessibility":{"accessibilityData":{"label":"The Most Useful Thing AI Has Ever Done by Veritasium 5,575,512 views 7 days ago 24 minutes"}},"simpleText":"The Most Useful Thing AI Has Ever Done"},"longBylineText":{"runs":[{"text":"Veritasium","navigationEndpoint":{"clickTrackingParams":"CMkBEKQwGAUiEwj8zs2nr8uLAxV5cHoFHbwvB_oyB3JlbGF0ZWQ=","commandMetadata":{"webCommandMetadata":{"url":"/@veritasium","webPageType":"WEB_PAGE_TYPE_CHANNEL","rootVe":3611,"apiUrl":"/youtubei/v1/browse"}},"browseEndpoint":{"browseId":"UCHnyfMqiRRG1u-2MsSQLbXA","canonicalBaseUrl":"/@veritasium"}}}]},"publishedTimeText":{"simpleText":"7 days ago"},"viewCountText":{"simpleText":"5,575,512 views"},"lengthText":{"accessibility":{"accessibilityData":{"label":"24 minutes, 52 seconds"}},"simpleText":"24:52"},"navigationEndpoint":{"clickTrackingParams":"CMkBEKQwGAUiEwj8zs2nr8uLAxV5cHoFHbwvB_oyB3JlbGF0ZWRI14mv3tKj6qacAZoBBQgBEPgd","commandMetadata":{"webCommandMetadata":{"url":"/watch?v=P_fHJIYENdI","webPageType":"WEB_PAGE_TYPE_WATCH","rootVe":3832}},"watchEndpoint":{"videoId":"P_fHJIYENdI","nofollow":true,"watchEndpointSupportedOnesieConfig":{"html5PlaybackOnesieConfig":{"commonConfig":{"url":"https://rr2---sn-nv47zn7y.googlevideo.com/initplayback?source=youtube oeis=1 c=WEB oad=3200 ovd=3200 oaad=11000 oavd=11000 ocs=700 oewis=1 oputc=1 ofpcc=1 msp=1 odepv=1 id=3ff7c724860435d2 ip=2a02%3A27aa%3A0%3A0%3A0%3A0%3A0%3Ad49 initcwndbps=1331250 mt=1739817660 oweuc="}}}}},"shortBylineText":{"runs":[{"text":"Veritasium","navigationEndpoint":{"clickTrackingParams":"CMkBEKQwGAUiEwj8zs2nr8uLAxV5cHoFHbwvB_oyB3JlbGF0ZWQ=","commandMetadata":{"webCommandMetadata":{"url":"/@veritasium","webPageType":"WEB_PAGE_TYPE_CHANNEL","rootVe":3611,"apiUrl":"/youtubei/v1/browse"}},"browseEndpoint":{"browseId":"UCHnyfMqiRRG1u-2MsSQLbXA","canonicalBaseUrl":"/@veritasium"}}}]},"channelThumbnail":{"thumbnails":[{"url":"https://yt3.ggpht.com/ytc/AIdro_nSatGjGLZG1_O1ztYxuKvRazCbk9A0kPhtt2NxEH4ZKfA=s68-c-k-c0x00ffffff-no-rj","width":68,"height":68}]},"ownerBadges":[{"metadataBadgeRenderer":{"icon":{"iconType":"CHECK_CIRCLE_THICK"},"style":"BADGE_STYLE_TYPE_VERIFIED","tooltip":"Verified","trackingParams":"CMkBEKQwGAUiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","accessibilityData":{"label":"Verified"}}}],"trackingParams":"CMkBEKQwGAUiEwj8zs2nr8uLAxV5cHoFHbwvB_pA0uuQsMjk8fs_","shortViewCountText":{"accessibility":{"accessibilityData":{"label":"5.5 million views"}},"simpleText":"5.5M views"},"menu":{"menuRenderer":{"items":[{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Add to queue"}]},"icon":{"iconType":"ADD_TO_QUEUE_TAIL"},"serviceEndpoint":{"clickTrackingParams":"CM0BEP6YBBgGIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"clickTrackingParams":"CM0BEP6YBBgGIhMI_M7Np6_LiwMVeXB6BR28Lwf6","addToPlaylistCommand":{"openMiniplayer":false,"openListPanel":true,"videoId":"P_fHJIYENdI","listType":"PLAYLIST_EDIT_LIST_TYPE_QUEUE","onCreateListCommand":{"clickTrackingParams":"CM0BEP6YBBgGIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/playlist/create"}},"createPlaylistServiceEndpoint":{"videoIds":["P_fHJIYENdI"],"params":"CAQ%3D"}},"videoIds":["P_fHJIYENdI"]}},{"clickTrackingParams":"CM0BEP6YBBgGIhMI_M7Np6_LiwMVeXB6BR28Lwf6","openPopupAction":{"popup":{"notificationActionRenderer":{"responseText":{"simpleText":"Added to queue"},"trackingParams":"CM4BELlqIhMI_M7Np6_LiwMVeXB6BR28Lwf6"}},"popupType":"TOAST"}}]}},"trackingParams":"CM0BEP6YBBgGIhMI_M7Np6_LiwMVeXB6BR28Lwf6"}},{"menuServiceItemRenderer":{"text":{"runs":[{"text":"Share"}]},"icon":{"iconType":"SHARE"},"serviceEndpoint":{"clickTrackingParams":"CMkBEKQwGAUiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/share/get_share_panel"}},"shareEntityServiceEndpoint":{"serializedShareEntity":"CgtQX2ZISklZRU5kSQ%3D%3D","commands":[{"clickTrackingParams":"CMkBEKQwGAUiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","openPopupAction":{"popup":{"unifiedSharePanelRenderer":{"trackingParams":"CMwBEI5iIhMI_M7Np6_LiwMVeXB6BR28Lwf6","showLoadingSpinner":true}},"popupType":"DIALOG","beReused":true}}]}},"trackingParams":"CMkBEKQwGAUiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","hasSeparator":true}}],"trackingParams":"CMkBEKQwGAUiEwj8zs2nr8uLAxV5cHoFHbwvB_o=","accessibility":{"accessibilityData":{"label":"Action menu"}}}},"thumbnailOverlays":[{"thumbnailOverlayTimeStatusRenderer":{"text":{"accessibility":{"accessibilityData":{"label":"24 minutes, 52 seconds"}},"simpleText":"24:52"},"style":"DEFAULT"}},{"thumbnailOverlayToggleButtonRenderer":{"isToggled":false,"untoggledIcon":{"iconType":"WATCH_LATER"},"toggledIcon":{"iconType":"CHECK"},"untoggledTooltip":"Watch later","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CMsBEPnnAxgCIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/browse/edit_playlist"}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"addedVideoId":"P_fHJIYENdI","action":"ACTION_ADD_VIDEO"}]}},"toggledServiceEndpoint":{"clickTrackingParams":"CMsBEPnnAxgCIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/browse/edit_playlist"}},"playlistEditEndpoint":{"playlistId":"WL","actions":[{"action":"ACTION_REMOVE_VIDEO_BY_VIDEO_ID","removedVideoId":"P_fHJIYENdI"}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Watch later"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}},"trackingParams":"CMsBEPnnAxgCIhMI_M7Np6_LiwMVeXB6BR28Lwf6"}},{"thumbnailOverlayToggleButtonRenderer":{"untoggledIcon":{"iconType":"ADD_TO_QUEUE_TAIL"},"toggledIcon":{"iconType":"PLAYLIST_ADD_CHECK"},"untoggledTooltip":"Add to queue","toggledTooltip":"Added","untoggledServiceEndpoint":{"clickTrackingParams":"CMoBEMfsBBgDIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true}},"signalServiceEndpoint":{"signal":"CLIENT_SIGNAL","actions":[{"clickTrackingParams":"CMoBEMfsBBgDIhMI_M7Np6_LiwMVeXB6BR28Lwf6","addToPlaylistCommand":{"openMiniplayer":false,"openListPanel":true,"videoId":"P_fHJIYENdI","listType":"PLAYLIST_EDIT_LIST_TYPE_QUEUE","onCreateListCommand":{"clickTrackingParams":"CMoBEMfsBBgDIhMI_M7Np6_LiwMVeXB6BR28Lwf6","commandMetadata":{"webCommandMetadata":{"sendPost":true,"apiUrl":"/youtubei/v1/playlist/create"}},"createPlaylistServiceEndpoint":{"videoIds":["P_fHJIYENdI"],"params":"CAQ%3D"}},"videoIds":["P_fHJIYENdI"]}}]}},"untoggledAccessibility":{"accessibilityData":{"label":"Add to queue"}},"toggledAccessibility":{"accessibilityData":{"label":"Added"}},"trackingParams":"CMoBEMfsBBgDIhMI_M7Np6_LiwMVeXB6BR28Lwf6"}},{"thumbnailOverlayNowPlayingRenderer":{"text":{"runs":[{"text":"Now playing"}]}}}],"accessibility":{"accessibilityData":{"label":"The Most Useful Thing AI Has Ever Done - 24 minutes - Go to channel - Veritasium - 5.5M views - 7 days ago - play video"}}}},{"lockupViewModel":{"contentImage":{"collectionThumbnailViewModel":{"primaryThumbnail":{"thumbnailViewModel":{"image":{"sources":[{"url":"https://i.ytimg.com/vi/jBvkFKhnYLI/hqdefault.jpg?sqp=-oaymwEWCKgBEF5IWvKriqkDCQgBFQAAiEIYAQ== rs=AOn4CLD67w8_WLR6zbaok4FNDMGDtCkcIA","width":168,"height":94},{"url":"https://i.ytimg.com/vi/jBvkFKhnYLI/hqdefault.jpg?sqp=-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE= rs=AOn4CLCvgbryLStX2VDeO0yUMAX0-oUWdg","width":336,"height":188}]},"overlays":[{"thumbnailOverlayBadgeViewModel":{"thumbnailBadges":[{"thumbnailBadgeViewModel":{"icon":{"sources":[{"clientResource":{"imageName":"PLAYLISTS"}}]},"text":"6 videos","badgeStyle":"THUMBNAIL_OVERLAY_BADGE_STYLE_DEFAULT","backgroundColor":{"lightTheme":3353644,"darkTheme":3353644}}}],"position":"THUMBNAIL_OVERLAY_BADGE_POSITION_BOTTOM_END"}},{"thumbnailHoverOverlayViewModel":{"icon":{"sources":[{"clientResource":{"imageName":"PLAY_ALL"}}]},"text":{"content":"Play all","styleRuns":[{"startIndex":0,"length":8}]},"style":"THUMBNAIL_HOVER_OVERLAY_STYLE_COVER"}}],"backgroundColor":{"lightTheme":4142903,"darkTheme":4142903}}},"stackColor":{"lightTheme":10061189,"darkTheme":9206394}}},"metadata":{"lockupMetadataViewModel":{"title":{"content":"SwiftUI Tutorials"},"metadata":{"contentMetadataViewModel":{"metadataRows":[{"metadataParts":[{"text":{"content":"Code With Cal
#############################
![](http://youtor.org/essay_main.png)