CINXE.COM
November 2024 - Hello - Apple Developer
<!DOCTYPE html> <html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta charset="utf-8" /> <meta name="Author" content="Apple Inc." /> <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" /> <link rel="shortcut icon" href="/favicon.ico" /> <link rel="icon" href="/favicon.ico" /> <link rel="mask-icon" href="/apple-logo.svg" color="#333333"> <link rel="stylesheet" href="/assets/styles/global.dist.css?01172423298" type="text/css" /> <link rel="stylesheet" href="/assets/styles/dark-mode.css?17182448067" type="text/css" media="(prefers-color-scheme: dark)" data-color-scheme="dark" /> <link rel="stylesheet" href="/assets/styles/localization.css?39172414191" type="text/css" /> <script src="/assets/scripts/lib/jquery/jquery-3.6.0.min.js?17182448067"></script> <script src="/assets/scripts/settings.js?17182448067"></script> <script src="/assets/scripts/language-locales.js?17182448067"></script> <script src="/assets/scripts/DeveloperBreadcrumbs.js?05182434080"></script> <script async src="/assets/scripts/lib/jquery/jquery.retinate.js?17182448067"></script> <script async src="/assets/scripts/global.js?17182448067"></script> <script async src="/assets/scripts/global-logout.js?17182448067"></script> <link rel="stylesheet" href="https://www.apple.com/wss/fonts?family=SF+Pro&v=2" type="text/css" /> <link rel="stylesheet" href="https://www.apple.com/wss/fonts?family=SF+Pro+Icons&v=1" type="text/css" /> <link rel="stylesheet" href="https://www.apple.com/wss/fonts?family=SF+Mono&v=2" type="text/css" /> <link rel="stylesheet" href="https://www.apple.com/wss/fonts?family=Apple+Icons&v=1" type="text/css" /> <title>November 2024 - Hello - Apple Developer</title> <meta name="omni_page" content="November 2024 - Hello - (English)" /> <meta name="Description" content="The Swift Pathway, new developer activities around the world, and an interview with the creator of recipe app Crouton." /> <link rel="alternate" href="https://developer.apple.com/hello/november24/" hreflang="en" /> <link rel="alternate" href="https://developer.apple.com/cn/hello/november24/" hreflang="zh-CN" /> <link rel="alternate" href="https://developer.apple.com/jp/hello/november24/" hreflang="ja-JP" /> <link rel="alternate" href="https://developer.apple.com/kr/hello/november24/" hreflang="ko-KR" /> <link rel="canonical" href="https://developer.apple.com/hello/november24/" /> <link rel='stylesheet' type='text/css' href='/hello/styles/normalize.css?19172417309">' /> <link rel='stylesheet' type='text/css' href='/hello/styles/light-mode.css?25162409284">' /> <style type="text/css"> .desktop-container, .mobile-container, td { font-size: 17px; font-weight: 400; line-height: 25px; font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif, "SF Pro Icons"; } .mobile-container, .mobile-container div { box-sizing: border-box; } .mobile-container .section, img { max-width: 100%; } .desktop-container, .mobile-container, .t-body, p, td { font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif, "SF Pro Icons"; } .eyebrow-text, .nowrap { white-space: nowrap; } * { -webkit-font-smoothing: antialiased; text-rendering: optimizelegibility; } .desktop-container, .mobile-container { width: 100% !important; } table { border-spacing: 0; } b { font-weight: 600; } .mobile-container { display: none; margin: 0 auto; max-width: 100%; width: 100%; } .mobile-container .eyebrow img, .mobile-container .headline img, img { display: block; } .mobile-container .section .secContent { max-width: 414px; margin: 0 auto; } .mobile-container .row { font-size: 0; line-height: 0; margin: 0 auto; } .mobile-container .col, .mobile-container .copy { font-size: 17px; line-height: 25px; } .mobile-container .nestedColumn { font-size: 0; line-height: 0; } .cta img, .eyebrow img, .headline img, .inline-content, .mobile-container .nestedColumn .col { display: inline-block; } .center-container, .keyline.align-center div, .section, div.nestedColumn.align-center { margin: 0 auto; } .align-center { text-align: center; } .align-center img, img.align-center { margin-left: auto; margin-right: auto; } .align-left { text-align: left; } .align-left img, div.nestedColumn.align-left { margin-left: 0; margin-right: auto; } .align-right { text-align: right; } .align-right img, .keyline.align-right div, div.nestedColumn.align-right { margin-left: auto; margin-right: 0; } .footer a, .m-footer a { border: 0; outline: 0; } .m-footer .row { font-size: 12px; line-height: 16px; } .dark, .dark h1, .dark h1 a, .dark h1 a:hover, .dark h1 a:visited, .dark h2, .dark h2 a, .dark h2 a:hover, .dark h2 a:visited, .dark h3, .dark h3 a, .dark h3 a:hover, .dark h3 a:visited, .dark h4, .dark h4 a, .dark h4 a:hover, .dark h4 a:visited, .m-cCF2601 a, .m-d402C9A a, .m-s183DE6 a, .m-sED46C3 a, .m-vE6DDD5 a, .m-wFB683E a { color: #f5f5f7; } .dark { border-color: #000; background-color: #000; } .dark a, .dark a:hover, .dark a:visited { color: #2997ff; } .dark.footer, .dark.m-footer { color: #6e6e73; background-color: #1d1d1f; } .dark.footer .cta, .dark.footer a, .dark.footer a.cta, .dark.m-footer .cta, .dark.m-footer a, .dark.m-footer a.cta { color: #a1a1a6; } .footer-tr .dark { color: #86868b; background-color: #1d1d1f; } .footer-dark .sfnav a, .footer-tr .dark .cta, .footer-tr .dark a, .footer-tr .dark a.cta, .footer-tr .dark a:hover, .footer-tr .dark a:visited { color: #d2d2d7; } .dark .keyline, .dark .keyline td, .dark .keyline>div, .dark td.keyline { border-color: #424245; color: #424245; } .t-body a, .t-body a:link, a, p a, p a:link { cursor: pointer; } .m-c46C86E, .m-r684B9F { padding-bottom: 12px; } .m-c46C86E, .m-r684B9F, .m-t2FC31D { padding-right: 4%; padding-left: 4%; } @media only screen and (max-device-width:2732px) { .sf-content-container a[href^="tel:"] { color: inherit !important; } } .mobile-container .copy p+* { margin-top: 9px !important; } a, a:link { text-decoration: none; word-spacing: 0 !important; } a:focus, a:hover, a:link:focus, a:link:hover { text-decoration: underline !important; } a:link[x-apple-data-detectors], a[x-apple-data-detectors] { text-decoration: none !important; } a:link[x-apple-data-detectors]:hover, a[x-apple-data-detectors]:hover { text-decoration: underline !important; } a.cta, a:link.cta { text-decoration: none; } a[x-apple-data-detectors], a[x-apple-data-detectors]:hover, a[x-apple-data-detectors]:link { color: inherit; text-decoration: underline; } p a, p a:link { text-decoration: underline; } p a.inline-cta, p a:link.inline-cta { text-decoration: none !important; } p a.inline-cta:focus, p a.inline-cta:hover, p a:link.inline-cta:focus, p a:link.inline-cta:hover { text-decoration: underline !important; } p .eyebrow-text a { color: inherit !important; text-decoration: none !important; } .cta+.vert, a img, h1, h2, h3, h4, h5, h6 { display: inline-block; } img.align-right { margin-right: 0; margin-left: auto; } img.align-left { margin-right: auto; margin-left: 0; } a img { border: 0; outline: 0; } .mobile-container .valign-top, .va-top { vertical-align: top; } .mobile-container .valign-middle, .va-middle { vertical-align: middle; } .mobile-container .valign-bottom, .va-bottom { vertical-align: bottom; } .t-body, p { font-size: 17px; font-weight: 400; line-height: 25px; margin: 0; } .cta.keyline>div { border-top-style: solid; border-top-width: 1px; } .outBold { line-height: inherit; } h1, h2, h3, h4, h5, h6 { margin: 0; font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif; } h1 p a, h1 p a:link, h2 p a, h2 p a:link, h3 p a, h3 p a:link, h4 p a, h4 p a:link, h5 p a, h5 p a:link, h6 p a, h6 p a:link { color: inherit !important; text-decoration: none; } .keyline.align-center, h1.align-center, h2.align-center, h3.align-center, h4.align-center, h5.align-center, h6.align-center { margin: 0 auto; text-align: center; } .keyline.align-right, h1.align-right, h2.align-right, h3.align-right, h4.align-right, h5.align-right, h6.align-right { margin-left: auto; margin-right: 0; text-align: right; } .mobile-container h1.headline-super { font-size: 48px; line-height: 1.08349; letter-spacing: 0; } .mobile-container h2.headline { font-size: 32px; line-height: 1.125; letter-spacing: 0; } .mobile-container h4.eyebrow-super { font-size: 24px; line-height: 1.16667; letter-spacing: 0; } .mobile-container h5.eyebrow { font-size: 21px; line-height: 1.19048; letter-spacing: 0; } @media screen and (max-device-width:568px) { h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { color: inherit !important; font-weight: inherit !important; } } .m-b54C48F a, .m-dAC4CD9 a, .m-r7706E5 a, .m-t2FC31D, .m-t2FC31D a, .m-v164CF6 a { color: #686b70; font-size: 14px; } a { font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif, "SF Pro Icons"; } a>span { letter-spacing: inherit; } .cta+.vert { font-size: 12px; padding: 0 4px; } .cta.keyline>div { height: 0; line-height: 0; } .m-footer .cta { display: inline; } .desktop-container, .m-eB3B1C7, .mobile-container { background-color: #222; } .m-t2FC31D { padding-top: 32px; font-weight: 900; } .m-b54C48F>p, .m-dAC4CD9>p, .m-r7706E5>p, .m-t2FC31D>p, .m-v164CF6>p { font-size: 14px; font-weight: 900; } .m-r684B9F h2 { color: #fff !important; font-weight: 900; } .m-c46C86E, .m-c46C86E>p, .m-cCF2601>p, .m-d402C9A>p, .m-s183DE6>p, .m-sED46C3>p, .m-vE6DDD5>p, .m-wFB683E>p { font-weight: 400; } .m-bDC679A img, .m-mD97333 img, .m-p91C533 img, .m-r242DB0 img { border-top-left-radius: 18px; border-top-right-radius: 18px; } .m-b54C48F, .m-dAC4CD9, .m-r7706E5, .m-v164CF6 { color: #686b70; padding-top: 24px; font-size: 14px; font-weight: 900; } .m-l85E11E, .m-pA09B94, .m-u6DD582, .m-yA52C3B { padding-top: 8px; } .m-kB31F04 h4, .m-l85E11E h4, .m-m8255AD h4, .m-pA09B94 h4, .m-u6DD582 h4, .m-yA52C3B h4, .m-yB97E24 h4 { color: #f5f5f7 !important; font-weight: 700; } .m-b1382BB, .m-b1382BB a { color: #f5f5f7; } .m-cCF2601, .m-d402C9A, .m-s183DE6, .m-sED46C3, .m-vE6DDD5, .m-wFB683E { color: #f5f5f7; padding-top: 12px; font-weight: 400; } .m-l4233EC, .m-q23A1E6 { padding-top: 16px; padding-bottom: 32px; font-size: 17px; font-weight: 400; } .m-b71E8C8 img, .m-c14B5EE img, .m-cAF0BF1 img, .m-d84969C img, .m-g2FC3DE img, .m-l4233EC img, .m-pA49DB4 img, .m-q23A1E6 img, .m-q413EDE img, .m-xD72E96 img, .m-z0AB8D8 img { width: 12px; height: 8px; } .m-f9CFA4A, .m-g644EFB, .m-k472A65, .m-l046B51 { background-color: #000 !important; padding-top: 0; padding-right: 6%; padding-left: 6%; width: 100%; border-bottom-left-radius: 18px; border-bottom-right-radius: 18px; } .m-f6F2C9F, .m-nF08B92, .m-p2C1E73, .m-p991480, .m-wBF073D { background-color: #222; padding-right: 4%; padding-left: 4%; } .m-dCB6570, .m-dD435DD, .m-l1843EF, .m-q643DF8 { width: 100%; } .m-p991480 { padding-top: 12px; } .m-dD7E067, .m-h8ADACF, .m-i339F10 { padding-top: 40px; padding-bottom: 40px; } .m-g2FC3DE, .m-z0AB8D8 { padding-top: 16px; font-size: 17px; font-weight: 400; } .m-aEF7953, .m-s42ACB9, .m-vC52357 { padding-top: 32px; padding-bottom: 32px; } .m-d84969C { padding-top: 16px; font-weight: 400; } .m-q413EDE, .m-xD72E96 { padding-top: 12px; font-weight: 400; } .m-c14B5EE { padding-bottom: 32px; font-weight: 600; } .m-cAF0BF1, .m-pA49DB4 { padding-top: 12px; font-size: 17px; font-weight: 400; } .m-yB97E24 { padding-top: 36px; } .m-b71E8C8 { padding-top: 12px; padding-bottom: 32px; font-size: 17px; font-weight: 400; } .m-b1382BB, .m-b1382BB>p { font-size: 14px; line-height: 24px; font-weight: 400; } .m-m8255AD { padding-bottom: 8px; } .m-b1382BB a { font-size: 14px; } .m-wBF073D { padding-bottom: 36px; } .m-mA85BC8 { background-color: #000 !important; } body { background-color: #222 !important; } @media only screen and (max-device-width:568px) { .desktop-container { display: none !important; } .mobile-container { display: block !important; width: 100% !important; height: inherit !important; overflow: visible !important; } .sfnav, .shared-footer-content { padding: 0 !important; } .shared-footer-content table.sf-content-container { width: 100% !important; max-width: 414px !important; padding-top: 0 !important; } .sf-content-container-td { padding: 0 6.25% !important; } .shared-footer-content table.sf-content-inner { width: 100% !important; max-width: 362px !important; padding-top: 0 !important; } .sfnav p { font-size: 12px !important; line-height: 39px !important; padding: 0 !important; } .sfnav span.vert { font-size: 0; line-height: 0; display: block; } .sflinks, .sflinks p { line-height: 20px !important; } .m-s039823 .sfcopy p .inline-cta a, .m-s039823 .sfcopy p a[href^="tel:"], .m-s039823 .sfcopy.sftm p.tmcopy .inline-cta a, .sf-content-container a[href^="tel:"] { color: inherit !important; } .m-dD7E067>div, .m-h8ADACF>div, .m-i339F10>div, .m-s42ACB9>div { border-color: #333 !important; border-top-width: 1px; height: 0; line-height: 0; border-top-style: solid; } .m-aEF7953>div, .m-vC52357>div { border-top-width: 1px; height: 0; line-height: 0; border-top-style: solid; } .m-s039823 .sf-content-container, .m-s039823 .sf-content-inner, .m-s039823.shared-footer { background-color: #000 !important; } .m-s039823 .sfcopy, .m-s039823 .sfcopy p, .m-s039823 .sflinks { text-align: left !important; } .m-s039823 .sfnav { border-top: none !important; } .m-s039823 .sfnav span.vert { border-top: 1px solid #424245; } .m-s039823 .sfnav.custom-keyline { border-bottom: 0 !important; } .m-s039823 .sfcopy, .m-s039823 .sfcopy p, .m-s039823 .sflinks .vert { color: #86868b !important; } .m-s039823 .sfcopy p a, .m-s039823 .sflinks p, .m-s039823 .sflinks p a, .m-s039823 .sfnav p span.eyebrow { color: #d2d2d7 !important; } .m-s039823 .sfnav p .eyebrow { color: #d2d2d7 !important; display: inline-block; width: 100%; } } @media screen and (max-device-width:414px) { u ~ div { min-width: 375px;} body,u+div { min-width: 375px;} } </style> </head> <body id="november24" class=" hello-dev" > <script> const prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches; if (window.Settings.preferredColorScheme) { const colorTheme = (window.Settings.preferredColorScheme === 'auto') && !prefersDark ? 'light' : (window.Settings.preferredColorScheme === 'light') ? 'light' : 'dark' document.body.setAttribute('data-color-scheme', colorTheme); } else { document.body.setAttribute('data-color-scheme', prefersDark ? 'dark' : 'light'); } </script> <style> /* footer */ html body[data-color-scheme='dark'] #main section.section.section-resources.bg-alt {background-color:var(--fill-tertiary);color:var(--glyph-gray);} html body[data-color-scheme='dark'] .developer-router-links {background-color:var(--fill-tertiary);color:var(--glyph-gray);} html body[data-color-scheme='dark'] .footer {background-color:var(--fill-tertiary);color:var(--glyph-gray-tertiary);} /* body backgrounds */ body[data-color-scheme='dark'].dmf {background-color: #000;} html body[data-color-scheme='dark'].dmf .bg-alt {background-color:var(--fill-tertiary);} html body[data-color-scheme='dark'].dmf .bg-blue {background-color:var(--fill-blue-secondary);} html body[data-color-scheme='dark'].dmf .bg-green-blue {background:linear-gradient(135deg, #65976d 0%, #588ea4 100%)} html body[data-color-scheme='dark'].dmf .bg-yellow {background: linear-gradient(to bottom, var(--fill-tertiary) 0%, var(--fill-tertiary-alt) 100%);} html body[data-color-scheme='dark'].dmf .bg-light {background-color:var(--fill-secondary-alt);} html body[data-color-scheme='dark'].dmf .bg-gradient, html body[data-color-scheme='dark'].dmf .bg-grad {background:linear-gradient(to bottom, var(--dark) 0%, var(--fill-gray-secondary-alt) 100%);} html body[data-color-scheme='dark'].dmf .bg-grad-down {background:linear-gradient(to bottom, var(--dark) 0%, var(--fill-gray-secondary-alt) 100%);} html body[data-color-scheme='dark'].dmf .bg-grad-up {background:linear-gradient(to bottom, var(--fill-gray-secondary-alt) 0%, var(--dark) 100%);} html body[data-color-scheme='dark'].dmf .bg-blue-gradient, html body[data-color-scheme='dark'].dmf .bg-gradient-blue {background:linear-gradient(to bottom, var(--fill-blue-gradient-light) 0%, var(--fill-blue-gradient-dark) 100%);} html body[data-color-scheme='dark'].dmf .bg-blue-gradient-alt {background: linear-gradient(90deg, #061830 0%, #102d48 100%);} /* globalNav */ html body[data-color-scheme='dark'] #ac-globalnav {background: var(--fill-tertiary);} /* localNav */ html body[data-color-scheme='dark'] .localnav.localnav-scrim .localnav-background, html body[data-color-scheme='dark'] .localnav-scrim.localnav.localnav-background { background-color: rgba(29, 29, 31, 0.9); } @supports ((-webkit-backdrop-filter: initial) or (backdrop-filter: initial)) { html body[data-color-scheme='dark'] .localnav.localnav-scrim .localnav-background, html body[data-color-scheme='dark'] .localnav-scrim.localnav.localnav-background { background-color: rgba(29, 29, 31, 0.72); } } </style> <link rel="stylesheet" href="/assets/styles/globalnav.css?55202406207" type="text/css" /> <link rel="stylesheet" href="/assets/styles/suggest-lang.css?17182448067" type="text/css" /> <div id="suggest-lang" class="ribbon hide" lang="en"> <div class="ribbon-content-wrapper"> <div class="ribbon-content row"> <div class="column large-12 large-centered"> <p><a href="#" id="suggest-link" class="ribbon-link more">View in English</a></p> <button id="suggest-closer" class="icon icon-after icon-reset" aria-label="Dismiss language suggestion" tabindex="0"></button> </div> </div> </div> </div> <script src="/assets/scripts/suggest-lang.js?17182448067"></script> <aside id="ac-gn-segmentbar" class="ac-gn-segmentbar" lang="en-US" dir="ltr"> </aside> <input type="checkbox" id="ac-gn-menustate" class="ac-gn-menustate" /> <nav id="ac-globalnav" class="no-js" role="navigation" aria-label="Global" data-hires="false" data-analytics-region="global nav" lang="en-US" dir="ltr" data-www-domain="www.apple.com" data-store-locale="us" data-store-root-path="/us" data-store-api="/[storefront]/shop/bag/status" data-search-locale="en_US" data-search-suggestions-api="/search-services/suggestions/" data-search-defaultlinks-api="/search-services/suggestions/defaultlinks/" data-search-suggestions-enabled="false"> <div class="ac-gn-content"> <ul class="ac-gn-header"> <li class="ac-gn-item ac-gn-menuicon"> <label class="ac-gn-menuicon-label" for="ac-gn-menustate" aria-hidden="true"> <span class="ac-gn-menuicon-bread ac-gn-menuicon-bread-top"> <span class="ac-gn-menuicon-bread-crust ac-gn-menuicon-bread-crust-top"></span> </span> <span class="ac-gn-menuicon-bread ac-gn-menuicon-bread-bottom"> <span class="ac-gn-menuicon-bread-crust ac-gn-menuicon-bread-crust-bottom"></span> </span> </label> <a href="#ac-gn-menustate" role="button" class="ac-gn-menuanchor ac-gn-menuanchor-open" id="ac-gn-menuanchor-open"> <span class="ac-gn-menuanchor-label">Global Nav Open Menu</span> </a> <a href="#" role="button" class="ac-gn-menuanchor ac-gn-menuanchor-close" id="ac-gn-menuanchor-close"> <span class="ac-gn-menuanchor-label">Global Nav Close Menu</span> </a> </li> <li class="ac-gn-item ac-gn-apple"> <a class="ac-gn-link ac-gn-link-apple-developer" href="/" data-analytics-title="appledeveloper home" id="ac-gn-firstfocus-small"> <span class="ac-gn-link-text">Apple Developer</span> </a> </li> </ul> <div class="ac-gn-search-placeholder-container" role="search"> <div class="ac-gn-search ac-gn-search-small"> <a id="ac-gn-link-search-small" class="ac-gn-link" href="/search/" data-analytics-title="search" data-analytics-click="search" data-analytics-intrapage-link aria-label="Search"> <div class="ac-gn-search-placeholder-bar"> <div class="ac-gn-search-placeholder-input"> <div class="ac-gn-search-placeholder-input-text" aria-hidden="true"> <div class="ac-gn-link-search ac-gn-search-placeholder-input-icon"></div> <span class="ac-gn-search-placeholder">Search</span> </div> </div> <div class="ac-gn-searchview-close ac-gn-searchview-close-small ac-gn-search-placeholder-searchview-close"> <span class="ac-gn-searchview-close-cancel" aria-hidden="true">Cancel</span> </div> </div> </a> </div> </div> <ul class="ac-gn-list"> <li class="ac-gn-item ac-gn-apple"> <a class="ac-gn-link ac-gn-link-apple-developer" href="/" data-analytics-title="appledeveloper home" id="ac-gn-firstfocus"> <span class="ac-gn-link-text">Apple Developer</span> </a> </li> <li class="ac-gn-item ac-gn-item-menu ac-gn-news"> <a class="ac-gn-link ac-gn-link-news" href="/news/" data-analytics-title="news"> <span class="ac-gn-link-text">News</span> </a> </li> <li class="ac-gn-item ac-gn-item-menu ac-gn-discover"> <a class="ac-gn-link ac-gn-link-discover" href="/discover/" data-analytics-title="discover"> <span class="ac-gn-link-text">Discover</span> </a> </li> <li class="ac-gn-item ac-gn-item-menu ac-gn-design"> <a class="ac-gn-link ac-gn-link-design" href="/design/" data-analytics-title="design"> <span class="ac-gn-link-text">Design</span> </a> </li> <li class="ac-gn-item ac-gn-item-menu ac-gn-develop"> <a class="ac-gn-link ac-gn-link-develop" href="/develop/" data-analytics-title="develop"> <span class="ac-gn-link-text">Develop</span> </a> </li> <li class="ac-gn-item ac-gn-item-menu ac-gn-distribute"> <a class="ac-gn-link ac-gn-link-distribute" href="/distribute/" data-analytics-title="distribute"> <span class="ac-gn-link-text">Distribute</span> </a> </li> <li class="ac-gn-item ac-gn-item-menu ac-gn-dsupport"> <a class="ac-gn-link ac-gn-link-dsupport" href="/support/" data-analytics-title="dsupport"> <span class="ac-gn-link-text">Support</span> </a> </li> <li class="ac-gn-item ac-gn-item-menu ac-gn-account"> <a class="ac-gn-link ac-gn-link-account" href="/account/" data-analytics-title="account"> <span class="ac-gn-link-text">Account</span> </a> </li> <li class="ac-gn-item ac-gn-item-menu ac-gn-search" role="search"> <a id="ac-gn-link-search" class="ac-gn-link ac-gn-link-search" href="/search/" data-analytics-title="search" data-analytics-click="search" data-analytics-intrapage-link aria-label="Search"></a> </li> </ul> <aside id="ac-gn-searchview" class="ac-gn-searchview" role="search" data-analytics-region="search"> <div class="ac-gn-searchview-content"> <div class="ac-gn-searchview-bar"> <div class="ac-gn-searchview-bar-wrapper"> <form id="ac-gn-searchform" class="ac-gn-searchform" action="/search/" method="get"> <div class="ac-gn-searchform-wrapper"> <input id="ac-gn-searchform-input" class="ac-gn-searchform-input" type="text" name="q" aria-label="Search" placeholder="Search" autocorrect="off" autocapitalize="off" autocomplete="off" spellcheck="false" role="combobox" aria-autocomplete="list" aria-expanded="true" aria-owns="quicklinks suggestions" /> <button id="ac-gn-searchform-submit" class="ac-gn-searchform-submit" type="submit" disabled aria-label="Submit Search"></button> <button id="ac-gn-searchform-reset" class="ac-gn-searchform-reset" type="reset" disabled aria-label="Clear Search"> <span class="ac-gn-searchform-reset-background"></span> </button> </div> </form> <button id="ac-gn-searchview-close-small" class="ac-gn-searchview-close ac-gn-searchview-close-small" aria-label="Cancel Search"> <span class="ac-gn-searchview-close-cancel" aria-hidden="true"> Cancel </span> </button> </div> </div> <aside id="ac-gn-searchresults" class="ac-gn-searchresults hidden" data-string-quicklinks="Quick Links" data-string-suggestions="Suggested Searches" data-string-noresults=""> <section class="ac-gn-searchresults-section ac-gn-searchresults-section-defaultlinks"> <div class="ac-gn-searchresults-section-wrapper"> <div class="search-group-checkbox hidden"><input id="group-input" type="checkbox" name="group-filter" checked>Only search within “<span id="group-search-label"></span>”</div> <h3 class="ac-gn-searchresults-header ac-gn-searchresults-animated">Quick Links</h3> <ul class="ac-gn-searchresults-list" id="defaultlinks" role="listbox"> </ul> <span role="status" class="ac-gn-searchresults-count" aria-live="polite">5 Quick Links</span> </div> </section> </aside> </div> <button id="ac-gn-searchview-close" class="ac-gn-searchview-close" aria-label="Cancel Search"> <span class="ac-gn-searchview-close-wrapper"> <span class="ac-gn-searchview-close-left"></span> <span class="ac-gn-searchview-close-right"></span> </span> </button> </aside> </div> </nav> <div class="ac-gn-blur"></div> <div id="ac-gn-curtain" class="ac-gn-curtain"></div> <div id="ac-gn-placeholder" class="ac-nav-placeholder"></div> <script src="/assets/scripts/ac-globalnav.built.js?17182448067"></script> <link rel="stylesheet" href="/assets/styles/search.css?17182448067"> <script src="/assets/scripts/search.js?17182448067"></script> <!-- metrics --> <script> /* RSID: */ var s_account="awdappledeveloper" </script> <script src="/assets/metrics/scripts/analytics.js?072620243"></script> <script> s.pageName= AC && AC.Tracking && AC.Tracking.pageName(); s.channel="www.en.developer" s.channel="www.en.developer"; /************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/ var s_code=s.t();if(s_code)document.write(s_code) </script> <!-- /metrics --> <link rel="stylesheet" property="stylesheet" href="/assets/styles/localnav.css" type="text/css" /> <input type="checkbox" id="localnav-menustate" class="localnav-menustate" /> <nav id="localnav" class="localnav localnav-scrim" data-sticky role="navigation"> <div class="localnav-wrapper"> <div class="localnav-background"></div> <div class="localnav-content"> <h2 class="localnav-title"> <a href="/news/">News</a> </h2> <div class="localnav-menu"> <a href="#localnav-menustate" class="localnav-menucta-anchor localnav-menucta-anchor-open" id="localnav-menustate-open"> <span class="localnav-menucta-anchor-label">Open Menu</span> </a> <a href="#" class="localnav-menucta-anchor localnav-menucta-anchor-close" id="localnav-menustate-close"> <span class="localnav-menucta-anchor-label">Close Menu</span> </a> <div class="localnav-menu-tray"> <ul class="localnav-menu-items"> <li class="localnav-menu-item"> <a href="/hello/" class="localnav-menu-link">Hello Developer</a> </li> <li class="localnav-menu-item"> <a href="/news/releases/" class="localnav-menu-link">Software Releases</a> </li> <li class="localnav-menu-item"> <a href="/news/site-updates/" class="localnav-menu-link">Site Updates</a> </li> <li class="localnav-menu-item"> <a href="/news/upcoming-requirements/" class="localnav-menu-link">Upcoming Requirements</a> </li> </ul> </div> <div class="localnav-actions localnav-actions"> <div class="localnav-action localnav-action-menucta" aria-hidden="true"> <label for="localnav-menustate" class="localnav-menucta"> <span class="localnav-menucta-chevron"></span> </label> </div> </div> </div> </div> </div> </nav> <label id="localnav-curtain" for="localnav-menustate"></label> <script src="/assets/scripts/ac-localnav.built.js"></script> <script type="text/javascript" src="/assets/scripts/localnav.js"></script> <main id="main" role="main"> <div class="main-content"> <div style="display: none; max-height: 0px; overflow: hidden;"> In this edition: The Swift Pathway, new developer activities around the world, and an interview with the creator of recipe app Crouton. </div> <div class="mobile-container" style="display:none;width:0;height:0;overflow:hidden;"> <div class="section m-mA85BC8 dark"> <div class="secContent"> <div class="row m-eB3B1C7"> <div class="align-center col"> <div class="m-t2FC31D align-left copy"> <p class="t-body">NOVEMBER 2024</p> </div> <div class="m-r684B9F align-left"> <h2 class="headline">Hello Developer</h2> </div> <div class="m-c46C86E align-left copy"> <p class="t-body">Here’s what’s happening in the Apple Developer community this month.</p> </div> </div> </div> <div class="row m-p991480"> <div class="col"> <div class="m-r242DB0"> <div class="align-center"><img alt="The Swift bird icon in deep orange against a lighter orange background." src="/click/images/mcfly/nov24-orange-swift-bird_2x.png" width="100%" class="va-top"></div> </div> <div class="m-l1843EF nestedColumn"> <div class="m-k472A65 col"> <div class="m-dAC4CD9 align-left copy"> <p class="t-body">SWIFT SEASON</p> </div> <div class="m-pA09B94 align-left"> <h4 class="eyebrow-super">Begin your journey on the Swift Pathway</h4> </div> <div class="m-sED46C3 copy"> <p class="t-body">Looking for the fastest and easiest way to get started with Swift? Check out the Swift Pathway, an easy-to-navigate collection of videos, documentation, and resources that can get you on your way.</p> </div> <div class="m-l4233EC center-container"><a href="/swift/pathway/" data-cid-disabled="true" class="cta">Get started on the Swift <span class="nowrap">Pathway<img src="/click/images/mcfly/14_chevron_2997ff_2x.png" width="12" height="8" style="display:inline; margin:0;" alt=" "></span></a></div> </div> </div> </div> </div> <div class="row m-nF08B92"> <div class="col"> <div class="keyline m-i339F10 align-center"> <div class="keyline"></div> </div> <div class="m-p91C533"> <div class="align-center"><img alt="A woman stands on stage hosting a developer presentation, in front of a screen showing lines of code. Members of the crowd are see in front of her." src="/click/images/mcfly/nov24-envision_2x.jpg" width="100%" class="va-top"></div> </div> <div class="m-dD435DD nestedColumn"> <div class="m-f9CFA4A col"> <div class="m-r7706E5 align-left copy"> <p class="t-body">MEET WITH APPLE</p> </div> <div class="m-l85E11E align-left"> <h4 class="eyebrow-super">Envision the future: Build great apps for visionOS</h4> </div> <div class="m-s183DE6 copy"> <p class="t-body">Learn how to create great productivity and creativity apps for visionOS in an all-day activity held in person at the Apple Developer Center Cupertino and live-streamed via Webex. Learn visionOS design best practices, explore best-in-class apps, and find out how to get started with SwiftUI, RealityKit, and Reality Composer Pro.</p> </div> <div class="m-g2FC3DE center-container"><a href="/events/view/HM4GXV8VN6/dashboard" data-cid-disabled="true" class="cta">RSVP to join us in person or <span class="nowrap">online<img src="/click/images/mcfly/14_chevron_2997ff_2x.png" width="12" height="8" style="display:inline; margin:0;" alt=" "></span></a></div> <div class="keyline m-aEF7953 align-center"> <div class="keyline"></div> </div> <div class="m-kB31F04 align-left"> <h4 class="eyebrow-super">Explore more activities worldwide</h4> </div> <div class="m-d402C9A copy"> <p class="t-body">Join us all over the globe to level up your apps and games.</p> </div> <div class="m-d84969C center-container"><a href="/events/view/upcoming-events?search=enhance%20your%20apps%20with%20apple%20intelligence%20and%20app%20intents" class="cta">Enhance your apps with Apple Intelligence and <span class="nowrap">App Intents<img src="/click/images/mcfly/14_chevron_2997ff_2x.png" width="12" height="8" style="display:inline; margin:0;" alt=" "></span></a></div> <div class="m-q413EDE center-container"><a href="/events/view/upcoming-events?search=build%20great%20apps%20for%20visionOS%20with%20RealityKit" class="cta">Build great apps for visionOS with <span class="nowrap">RealityKit<img src="/click/images/mcfly/14_chevron_2997ff_2x.png" width="12" height="8" style="display:inline; margin:0;" alt=" "></span></a></div> <div class="m-xD72E96 center-container"><a href="/events/view/9S626KFQB4/dashboard" class="cta">Make the most of product page optimization <span class="nowrap">tests<img src="/click/images/mcfly/14_chevron_2997ff_2x.png" width="12" height="8" style="display:inline; margin:0;" alt=" "></span></a></div> <div class="keyline m-vC52357 align-center"> <div class="keyline"></div> </div> <div class="m-c14B5EE center-container"><a href="/events/view/upcoming-events" class="cta">Browse all developer <span class="nowrap">activities<img src="/click/images/mcfly/14_chevron_2997ff_2x.png" width="12" height="8" style="display:inline; margin:0;" alt=" "></span></a></div> </div> </div> </div> </div> <div class="row m-f6F2C9F"> <div class="col"> <div class="keyline m-dD7E067 align-center"> <div class="keyline"></div> </div> <div class="m-bDC679A"> <div class="align-center"><img src="/click/images/mcfly/nov24-btd-crouton_2x.png" width="100%" class="va-top" alt=" "></div> </div> <div class="m-q643DF8 nestedColumn"> <div class="m-l046B51 col"> <div class="m-v164CF6 align-left copy"> <p class="t-body">BEHIND THE DESIGN</p> </div> <div class="m-yA52C3B align-left"> <h4 class="eyebrow-super">How Devin Davies whipped up a tasty recipe app</h4> </div> <div class="m-cCF2601 copy"> <p class="t-body">Devin Davies’s app <em>Crouton</em> is part recipe manager, part exceptionally organized kitchen assistant. The Apple Design Award-winning app uses tasty ML models to import recipes from anywhere — blogs, family cookbooks, scribbled scraps from the ‘90s, wherever — and then, when it's time to cook, shows only what you need for the current step. “The key for me is: How quickly can I get you back to preparing the meal, rather than reading?” says Davies. Find out how he went from Swift newbie to seasoned developer.</p> </div> <div class="m-q23A1E6 center-container"><a href="/news/?id=9x75y43e" data-cid-disabled="true" class="cta">Read the <span class="nowrap">story<img src="/click/images/mcfly/14_chevron_2997ff_2x.png" width="12" height="8" style="display:inline; margin:0;" alt=" "></span></a></div> </div> </div> </div> </div> <div class="row m-p2C1E73"> <div class="col"> <div class="keyline m-h8ADACF align-center"> <div class="keyline"></div> </div> <div class="m-mD97333"> <div class="align-center"><img src="/click/images/mcfly/nov24-instruments_2x.png" width="100%" class="va-top" alt=" "></div> </div> <div class="m-dCB6570 nestedColumn"> <div class="m-g644EFB col"> <div class="m-b54C48F align-left copy"> <p class="t-body">NEWS SNIPPETS</p> </div> <div class="m-u6DD582 align-left"> <h4 class="eyebrow-super">Browse new documentation and resources</h4> </div> <div class="m-vE6DDD5 copy"> <p class="t-body">Check out these updates across Apple platforms.</p> </div> <div class="m-pA49DB4 center-container"><a href="/documentation/vision/generating-thumbnails-from-videos" data-cid-disabled="true" class="cta">Generate high-quality thumbnails <span class="nowrap">from videos<img src="/click/images/mcfly/14_chevron_2997ff_2x.png" width="12" height="8" style="display:inline; margin:0;" alt=" "></span></a></div> <div class="m-cAF0BF1 center-container"><a href="/documentation/visionos/implementing-object-tracking-in-your-visionos-app" data-cid-disabled="true" class="cta">Implement object tracking in your <span class="nowrap">visionOS app<img src="/click/images/mcfly/14_chevron_2997ff_2x.png" width="12" height="8" style="display:inline; margin:0;" alt=" "></span></a></div> <div class="m-yB97E24 align-left"> <h4 class="eyebrow-super">New requirement for app updates in the European Union</h4> </div> <div class="m-wFB683E copy"> <p class="t-body">To submit updates for apps on the App Store in the European Union (EU), Account Holders or Admins in the Apple Developer Program need to enter trader status in App Store Connect.</p> </div> <div class="m-z0AB8D8 center-container"><a href="/help/app-store-connect/manage-compliance-information/manage-european-union-digital-services-act-trader-requirements/" data-cid-disabled="true" class="cta">Learn what a trader is and how to enter <span class="nowrap">your status<img src="/click/images/mcfly/14_chevron_2997ff_2x.png" width="12" height="8" style="display:inline; margin:0;" alt=" "></span></a></div> <div class="m-b71E8C8 center-container"><a href="https://commission.europa.eu/strategy-and-policy/priorities-2019-2024/europe-fit-digital-age/digital-services-act_en" data-cid-disabled="true" class="cta">Learn more about the Digital <span class="nowrap">Services Act<img src="/click/images/mcfly/14_chevron_2997ff_2x.png" width="12" height="8" style="display:inline; margin:0;" alt=" "></span></a></div> </div> </div> </div> </div> <div class="row m-wBF073D"> <div class="col"> <div class="keyline m-s42ACB9 align-center"> <div class="keyline"></div> </div> <div class="m-m8255AD align-left"> <h4 class="eyebrow-super">Share your thoughts</h4> </div> <div class="m-b1382BB align-left copy"> <p class="t-body">We’d love to hear from you. If you have suggestions for our activities or stories, please <a href="https://essentials.applesurveys.com/jfe/form/SV_6r2IPp1H7yq7tUa" style="color: #2997ff; font-style: normal; font-weight: 400; text-decoration: none;">let us know</a>.</p> </div> </div> </div> </div> </div> </div> <table width="100%" cellspacing="0" cellpadding="0" border="0" align="center" role="presentation"> <tr> <td> <div class="desktop-container"> <table width="100%" cellspacing="0" cellpadding="0" border="0" align="center" role="presentation"> <tr> <td align="center" style="text-align: center;"> <table width="100%" cellspacing="0" cellpadding="0" border="0" align="center" role="presentation"> <tr class="section"> <td align="center" class="dark" style="background-color: #000000; padding-bottom: 15px;"> <table cellpadding="0" cellspacing="0" border="0" align="center" role="presentation" width="700"> <tr class="row"> <td> <table width="700" cellspacing="0" cellpadding="0" border="0" align="center" style="background-color: #000000;" role="presentation"> <tr> <td align="center" valign="top" width="100%" class="col" style="background-color: #222222; vertical-align: top;"> <table align="center" border="0" cellspacing="0" cellpadding="0" role="presentation" width="100%" class="col"> <tr> <td class="copy" style="text-align: center; padding: 32px 50px 0px;"> <p class="outBold" style="color: #86868b; font-size: 16px; font-weight: 900; margin: 0px auto;">NOVEMBER 2024</p> </td> </tr> <tr> <td style="padding-right: 50px; padding-bottom: 12px; padding-left: 50px; text-align: center; line-height: normal;"> <h2 style="font-size: 40px; letter-spacing: 0px; line-height: 44px; color: #ffffff; font-weight: 800;">Hello Developer</h2> </td> </tr> <tr> <td class="copy" style="text-align: center; padding: 0px 50px 24px;"> <p style="font-size: 17px; font-weight: 400; line-height: 25px; margin: 0px auto; color: #f5f5f7;">Here’s what’s happening in the Apple Developer community this month.</p> </td> </tr> </table> </td> </tr> </table> </td> </tr> <tr class="row"> <td> <table width="700" cellspacing="0" cellpadding="0" border="0" align="center" style="background-color: #222222;" role="presentation"> <tr> <td align="center" valign="middle" width="600" height="200" class="col" style="background-color: #222222; vertical-align: middle;"> <table align="center" border="0" cellspacing="0" cellpadding="0" role="presentation" width="600" class="col"> <tr> <td align="center" class="align-center" style="padding-top: 0px; text-align: center; vertical-align: middle; font-size: 0px; margin: 0px; line-height: 0;"> <picture> <source media="(max-device-width: 568px)" srcset="data:"><img alt="The Swift bird icon in deep orange against a lighter orange background." height="335.14285714285717" src="/click/images/mcfly/nov24-orange-swift-bird_2x.png" width="600" border="0" class="align-center" style="display: block; border-radius: 18px 18px 0px 0px;"> </picture> </td> </tr> <tr> <td align="center"> <table align="center" border="0" cellspacing="0" cellpadding="0" role="presentation" width="100%"> <tr> <td width="100%" class="col" style="background-color: #000000; padding-left: 0px; border-bottom-left-radius: 18px; border-bottom-right-radius: 18px;"> <table border="0" cellspacing="0" cellpadding="0" role="presentation" width="100%" class="col"> <tr> <td class="copy" style="text-align: left; padding: 32px 32px 6px;"> <p class="outBold" style="color: #86868b; font-size: 16px; font-weight: 900;">SWIFT SEASON</p> </td> </tr> <tr> <td style="padding: 0px 32px; text-align: left; line-height: normal;"> <h3 style="font-size: 32px; letter-spacing: 0px; line-height: 36px; color: #f5f5f7; font-weight: 700;">Begin your journey on the Swift Pathway</h3> </td> </tr> <tr> <td class="copy" style="text-align: left; padding: 12px 32px 8px;"> <p style="color: #f5f5f7; font-size: 14px; font-weight: 400; line-height: 20px;">Looking for the fastest and easiest way to get started with Swift? Check out the Swift Pathway, an easy-to-navigate collection of videos, documentation, and resources that can get you on your way.</p> </td> </tr> <tr> <td style="padding: 0px 32px 32px; text-align: left; font-size: 14px; line-height: 25px;"><a href="/swift/pathway/" data-cid-disabled="true" class="cta t-body" style="font-size: 14px; font-weight: 400; color: #2997ff;">Get started on the Swift <span style="white-space:nowrap;">Pathway<img src="/click/images/mcfly/14_chevron_2997ff_2x.png" width="12" height="8" border="0" style="font-size: 0; display:inline-block; margin:0;" alt=" "></span></a></td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </td> </tr> <tr class="row"> <td> <table width="700" cellspacing="0" cellpadding="0" border="0" align="center" style="background-color: #222222;" role="presentation"> <tr> <td align="center" valign="middle" width="600" height="200" class="col" style="background-color: #222222; vertical-align: middle;"> <table align="center" border="0" cellspacing="0" cellpadding="0" role="presentation" width="600" class="col"> <tr> <td style="padding-top: 40px; padding-bottom: 40px;"> <table align="center" cellspacing="0" cellpadding="0" border="0" role="presentation"> <tr> <td width="712" valign="top" align="center" class="keyline" style="border-color: #333333; border-top-style: solid; border-top-width: 1px; font-size: 0px; line-height: 0; margin: 0px auto;"></td> </tr> </table> </td> </tr> <tr> <td align="center" class="align-center" style="padding-top: 0px; text-align: center; vertical-align: middle; font-size: 0px; margin: 0px; line-height: 0;"> <picture> <source media="(max-device-width: 568px)" srcset="data:"><img alt="A woman stands on stage hosting a developer presentation, in front of a screen showing lines of code. Members of the crowd are see in front of her." height="400.2857142857143" src="/click/images/mcfly/nov24-envision_2x.jpg" width="600" border="0" class="align-center" style="display: block; border-radius: 18px 18px 0px 0px;"> </picture> </td> </tr> <tr> <td align="center"> <table align="center" border="0" cellspacing="0" cellpadding="0" role="presentation" width="100%"> <tr> <td width="100%" class="col" style="background-color: #111111; padding-left: 0px; border-bottom-left-radius: 18px; border-bottom-right-radius: 18px;"> <table border="0" cellspacing="0" cellpadding="0" role="presentation" width="100%" class="col"> <tr> <td class="copy" style="text-align: left; padding: 32px 32px 6px;"> <p class="outBold" style="color: #86868b; font-size: 16px; font-weight: 900;">MEET WITH APPLE</p> </td> </tr> <tr> <td style="padding: 0px 32px; text-align: left; line-height: normal;"> <h4 style="font-size: 28px; letter-spacing: 0px; line-height: 32px; color: #f5f5f7; font-weight: 700;">Envision the future: <br>Build great apps for visionOS</h4> </td> </tr> <tr> <td class="copy" style="text-align: left; padding: 12px 32px 8px;"> <p style="color: #f5f5f7; font-size: 14px; font-weight: 400; line-height: 20px;">Learn how to create great productivity and creativity apps for visionOS in an all-day activity held in person at the Apple Developer Center Cupertino and live-streamed via Webex. Learn visionOS design best practices, explore best-in-class apps, and find out how to get started with SwiftUI, RealityKit, and Reality Composer Pro.</p> </td> </tr> <tr> <td style="padding-top: 0px; padding-right: 32px; padding-left: 32px; text-align: left; font-size: 14px; line-height: 25px;"><a href="/events/view/HM4GXV8VN6/dashboard" data-cid-disabled="true" class="cta t-body" style="font-size: 14px; font-weight: 400; color: #2997ff;">RSVP to join us in person or <span style="white-space:nowrap;">online<img src="/click/images/mcfly/14_chevron_2997ff_2x.png" width="12" height="8" border="0" style="font-size: 0; display:inline-block; margin:0;" alt=" "></span></a></td> </tr> <tr> <td style="padding: 24px 32px;"> <table align="center" cellspacing="0" cellpadding="0" border="0" role="presentation"> <tr> <td width="712" valign="top" align="center" class="keyline" style="border-top-style: solid; border-top-width: 1px; font-size: 0px; line-height: 0; margin: 0px auto; border-color: #424245;"></td> </tr> </table> </td> </tr> <tr> <td style="padding: 0px 32px; text-align: left; line-height: normal;"> <h6 style="font-size: 19px; letter-spacing: 0px; line-height: 23px; color: #f5f5f7; font-weight: 700;">Explore more activities worldwide</h6> </td> </tr> <tr> <td class="copy" style="text-align: left; padding: 4px 32px 8px;"> <p style="color: #f5f5f7; font-size: 14px; font-weight: 400; line-height: 20px;">Join us all over the globe to level up your apps and games.</p> </td> </tr> <tr> <td style="padding-right: 32px; padding-left: 32px; font-size: 14px; line-height: 25px;"><a href="/events/view/upcoming-events?search=enhance%20your%20apps%20with%20apple%20intelligence%20and%20app%20intents" data-cid-disabled="true" class="cta t-body" style="font-size: 14px; font-weight: 400; color: #2997ff;">Enhance your apps with Apple Intelligence and <span style="white-space:nowrap;">App Intents<img src="/click/images/mcfly/14_chevron_2997ff_2x.png" width="12" height="8" border="0" style="font-size: 0; display:inline-block; margin:0;" alt=" "></span></a></td> </tr> <tr> <td style="padding-right: 32px; padding-left: 32px; font-size: 14px; line-height: 25px;"><a href="/events/view/upcoming-events?search=build%20great%20apps%20for%20visionOS%20with%20RealityKit" data-cid-disabled="true" class="cta t-body" style="font-size: 14px; font-weight: 400; color: #2997ff;">Build great apps for visionOS with <span style="white-space:nowrap;">RealityKit<img src="/click/images/mcfly/14_chevron_2997ff_2x.png" width="12" height="8" border="0" style="font-size: 0; display:inline-block; margin:0;" alt=" "></span></a></td> </tr> <tr> <td style="padding-right: 32px; padding-left: 32px; font-size: 14px; line-height: 25px;"><a href="/events/view/9S626KFQB4/dashboard" data-cid-disabled="true" class="cta t-body" style="font-size: 14px; font-weight: 400; color: #2997ff;">Make the most of product page optimization <span style="white-space:nowrap;">tests<img src="/click/images/mcfly/14_chevron_2997ff_2x.png" width="12" height="8" border="0" style="font-size: 0; display:inline-block; margin:0;" alt=" "></span></a></td> </tr> <tr> <td style="padding: 24px 32px;"> <table align="center" cellspacing="0" cellpadding="0" border="0" role="presentation"> <tr> <td width="712" valign="top" align="center" class="keyline" style="border-top-style: solid; border-top-width: 1px; font-size: 0px; line-height: 0; margin: 0px auto; border-color: #424245;"></td> </tr> </table> </td> </tr> <tr> <td style="padding-right: 32px; padding-bottom: 32px; padding-left: 32px; font-size: 17px; line-height: 25px;"><a href="/events/view/upcoming-events" class="cta t-body" style="font-size: 17px; font-weight: 600; line-height: 25px; color: #2997ff;">Browse all developer <span style="white-space:nowrap;">activities<img src="/click/images/mcfly/17_chevron_2997ff_2x.png" width="12" height="10" border="0" style="font-size: 0; display:inline-block; margin:0;" alt=" "></span></a></td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </td> </tr> <tr class="row"> <td> <table width="700" cellspacing="0" cellpadding="0" border="0" align="center" style="background-color: #222222;" role="presentation"> <tr> <td align="center" valign="middle" width="600" height="200" class="col" style="background-color: #222222; vertical-align: middle;"> <table align="center" border="0" cellspacing="0" cellpadding="0" role="presentation" width="600" class="col"> <tr> <td style="padding-top: 40px; padding-bottom: 40px;"> <table align="center" cellspacing="0" cellpadding="0" border="0" role="presentation"> <tr> <td width="712" valign="top" align="center" class="keyline" style="border-color: #333333; border-top-style: solid; border-top-width: 1px; font-size: 0px; line-height: 0; margin: 0px auto;"></td> </tr> </table> </td> </tr> <tr> <td align="center" class="align-center" style="padding-top: 0px; text-align: center; vertical-align: middle; font-size: 0px; margin: 0px; line-height: 0;"> <picture> <source media="(max-device-width: 568px)" srcset="data:"><img height="337.5" src="/click/images/mcfly/nov24-btd-crouton_2x.png" width="600" border="0" class="align-center" style="display: block; border-radius: 18px 18px 0px 0px;" alt=" "> </picture> </td> </tr> <tr> <td align="center"> <table align="center" border="0" cellspacing="0" cellpadding="0" role="presentation" width="100%"> <tr> <td width="100%" class="col" style="background-color: #111111; padding-left: 0px; border-bottom-left-radius: 18px; border-bottom-right-radius: 18px;"> <table border="0" cellspacing="0" cellpadding="0" role="presentation" width="100%" class="col"> <tr> <td class="copy" style="text-align: left; padding: 32px 32px 6px;"> <p class="outBold" style="color: #86868b; font-size: 16px; font-weight: 900;">BEHIND THE DESIGN</p> </td> </tr> <tr> <td style="padding: 0px 32px; text-align: left; line-height: normal;"> <h4 style="font-size: 28px; letter-spacing: 0px; line-height: 32px; color: #f5f5f7; font-weight: 700;">How Devin Davies whipped up<br> a tasty recipe app</h4> </td> </tr> <tr> <td class="copy" style="text-align: left; padding: 12px 32px 8px;"> <p style="color: #f5f5f7; font-size: 14px; font-weight: 400; line-height: 20px;">Devin Davies’s app <em>Crouton</em> is part recipe manager, part exceptionally organized kitchen assistant. The Apple Design Award-winning app uses tasty ML models to import recipes from anywhere — blogs, family cookbooks, scribbled scraps from the ‘90s, wherever — and then, when it's time to cook, shows only what you need for the current step. “The key for me is: How quickly can I get you back to preparing the meal, rather than reading?” says Davies. Find out how he went from Swift newbie to seasoned developer.</p> </td> </tr> <tr> <td style="padding: 0px 32px 32px; text-align: left; font-size: 14px; line-height: 25px;"><a href="/news/?id=9x75y43e" data-cid-disabled="true" class="cta t-body" style="font-size: 14px; font-weight: 400; color: #2997ff;">Read the <span style="white-space:nowrap;">story<img src="/click/images/mcfly/14_chevron_2997ff_2x.png" width="12" height="8" border="0" style="font-size: 0; display:inline-block; margin:0;" alt=" "></span></a></td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </td> </tr> <tr class="row"> <td> <table width="700" cellspacing="0" cellpadding="0" border="0" align="center" style="background-color: #222222; border-top-left-radius: 0px; border-top-right-radius: 0px;" role="presentation"> <tr> <td align="center" valign="middle" width="600" height="200" class="col" style="background-color: #222222; vertical-align: middle;"> <table align="center" border="0" cellspacing="0" cellpadding="0" role="presentation" width="600" class="col"> <tr> <td style="padding-top: 40px; padding-bottom: 40px;"> <table align="center" cellspacing="0" cellpadding="0" border="0" role="presentation"> <tr> <td width="712" valign="top" align="center" class="keyline" style="border-color: #333333; border-top-style: solid; border-top-width: 1px; font-size: 0px; line-height: 0; margin: 0px auto;"></td> </tr> </table> </td> </tr> <tr> <td align="center" class="align-center" style="padding-top: 0px; text-align: center; vertical-align: middle; font-size: 0px; margin: 0px; line-height: 0;"> <picture> <source media="(max-device-width: 568px)" srcset="data:"><img height="340.2857142857143" src="/click/images/mcfly/nov24-instruments_2x.png" width="600" border="0" class="align-center" style="display: block; border-radius: 18px 18px 0px 0px;" alt=" "> </picture> </td> </tr> <tr> <td align="center"> <table align="center" border="0" cellspacing="0" cellpadding="0" role="presentation" width="100%"> <tr> <td width="100%" class="col" style="background-color: #111111; padding-left: 0px; border-bottom-left-radius: 18px; border-bottom-right-radius: 18px;"> <table border="0" cellspacing="0" cellpadding="0" role="presentation" width="100%" class="col"> <tr> <td class="copy" style="text-align: left; padding: 32px 32px 8px;"> <p class="outBold" style="color: #86868b; font-size: 16px; font-weight: 900;">NEWS SNIPPETS</p> </td> </tr> <tr> <td style="padding-right: 32px; padding-bottom: 0px; padding-left: 32px; text-align: left; line-height: normal;"> <h6 style="font-size: 19px; letter-spacing: 0px; line-height: 23px; color: #f5f5f7; font-weight: 700;">Browse new documentation and resources</h6> </td> </tr> <tr> <td class="copy" style="text-align: left; padding: 4px 32px 12px;"> <p style="color: #f5f5f7; font-size: 14px; font-weight: 400; line-height: 20px;">Check out these updates across Apple platforms.</p> </td> </tr> <tr> <td style="padding: 0px 32px; text-align: left; font-size: 14px; line-height: 25px;"><a href="/documentation/vision/generating-thumbnails-from-videos" data-cid-disabled="true" class="cta t-body" style="font-size: 14px; font-weight: 400; color: #2997ff;">Generate high-quality thumbnails <span style="white-space:nowrap;">from videos<img src="/click/images/mcfly/14_chevron_2997ff_2x.png" width="12" height="8" border="0" style="font-size: 0; display:inline-block; margin:0;" alt=" "></span></a></td> </tr> <tr> <td style="padding: 0px 32px 24px; text-align: left; font-size: 14px; line-height: 25px;"><a href="/documentation/visionos/implementing-object-tracking-in-your-visionos-app" data-cid-disabled="true" class="cta t-body" style="font-size: 14px; font-weight: 400; color: #2997ff;">Implement object tracking in your <span style="white-space:nowrap;">visionOS app<img src="/click/images/mcfly/14_chevron_2997ff_2x.png" width="12" height="8" border="0" style="font-size: 0; display:inline-block; margin:0;" alt=" "></span></a></td> </tr> <tr> <td style="padding: 0px 32px; text-align: left; line-height: normal;"> <h6 style="font-size: 19px; letter-spacing: 0px; line-height: 23px; color: #f5f5f7; font-weight: 700;">New requirement for app updates in the European Union</h6> </td> </tr> <tr> <td class="copy" style="text-align: left; padding: 4px 32px 12px;"> <p style="color: #f5f5f7; font-size: 14px; font-weight: 400; line-height: 20px;">To submit updates for apps on the App Store in the European Union (EU), Account Holders or Admins in the Apple Developer Program need to enter trader status in App Store Connect.</p> </td> </tr> <tr> <td style="padding: 0px 32px; text-align: left; font-size: 14px; line-height: 25px;"><a href="/help/app-store-connect/manage-compliance-information/manage-european-union-digital-services-act-trader-requirements/" data-cid-disabled="true" class="cta t-body" style="font-size: 14px; font-weight: 400; color: #2997ff;">Learn what a trader is and how to enter <span style="white-space:nowrap;">your status<img src="/click/images/mcfly/14_chevron_2997ff_2x.png" width="12" height="8" border="0" style="font-size: 0; display:inline-block; margin:0;" alt=" "></span></a></td> </tr> <tr> <td style="padding: 0px 32px 32px; text-align: left; font-size: 14px; line-height: 25px;"><a href="https://commission.europa.eu/strategy-and-policy/priorities-2019-2024/europe-fit-digital-age/digital-services-act_en" data-cid-disabled="true" class="cta t-body" style="font-size: 14px; font-weight: 400; color: #2997ff;">Learn more about the Digital <span style="white-space:nowrap;">Services Act<img src="/click/images/mcfly/14_chevron_2997ff_2x.png" width="12" height="8" border="0" style="font-size: 0; display:inline-block; margin:0;" alt=" "></span></a></td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </td> </tr> <tr class="row"> <td> <table width="700" cellspacing="0" cellpadding="0" border="0" align="center" role="presentation"> <tr> <td width="100%" class="col" style="background-color: #222222; padding-right: 50px; padding-bottom: 48px; padding-left: 50px;"> <table border="0" cellspacing="0" cellpadding="0" role="presentation" width="100%" class="col"> <tr> <td style="padding-top: 40px; padding-bottom: 40px;"> <table align="center" cellspacing="0" cellpadding="0" border="0" role="presentation"> <tr> <td width="712" valign="top" align="center" class="keyline" style="border-color: #333333; border-top-style: solid; border-top-width: 1px; font-size: 0px; line-height: 0; margin: 0px auto;"></td> </tr> </table> </td> </tr> <tr> <td style="padding-bottom: 8px; text-align: left; line-height: normal;"> <h6 style="font-size: 19px; letter-spacing: 0px; line-height: 23px; color: #f5f5f7; font-weight: 700;">Share your thoughts</h6> </td> </tr> <tr> <td class="copy" style="padding: 0px;"> <p style="color: #f5f5f7; font-size: 14px; font-weight: 400; line-height: 20px;">We’d love to hear from you. If you have suggestions for our activities or stories, please <a href="https://essentials.applesurveys.com/jfe/form/SV_6r2IPp1H7yq7tUa" style="color: #2997ff; font-style: normal; font-weight: 400; text-decoration: none;">let us know</a>.</p> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </div> </td> </tr> <tr> <td> <table border="0" cellspacing="0" cellpadding="0" bgcolor="#000" width="100%" role="presentation" class="shared-footer m-s039823 footer-dark" style="background-color: #000000;"> <tr class="section"> <td class="shared-footer-content"> <table bgcolor="#000" border="0" cellspacing="0" cellpadding="0" width="736" align="center" role="presentation" class="sf-content-container" style="background-color: #000000;"> <tr> <td class="sf-content-container-td" style="padding: 0px 20px;"> <table bgcolor="#000" border="0" cellspacing="0" cellpadding="0" width="660" align="center" role="presentation" class="sf-content-inner"> <tr> <td align="center" class="sfnav custom-keyline" style="font-size: 14px; line-height: 18px; border-top-width: 0px;"></td> </tr> <tr> <td class="sfcopy sftm" style="padding: 10px 0px 9px; text-align: center;"> <p class="tmcopy" style="font-size: 12px; line-height: 16px; color: #86868b;">Copyright © 2024 Apple Inc. One Apple Park Way, MS 923‑4DEV, Cupertino, CA 95014 </p> </td> </tr> <tr> <td class="sflinks" style="padding: 0px 0px 9px; font-size: 12px; line-height: 16px; color: #d2d2d7; text-align: center;"> <p style="color:#d2d2d7; margin: 0px auto;font-size:12px;line-height:16px;"><a href="https://www.apple.com/legal/" style="border: 0; outline: 0; text-decoration: none; color:#d2d2d7;">All Rights Reserved</a> <span class="vert" style="color: #86868b;">|</span> <a href="https://www.apple.com/legal/privacy/" style="border: 0; outline: 0; text-decoration: none; color:#d2d2d7;">Privacy Policy</a> <span class="vert" style="color: #86868b;">|</span> <a href="/account/" style="border: 0; outline: 0; text-decoration: none; color:#d2d2d7;">Account</a> </p> </td> </tr> <tr> <td class="sfcopy" style="padding: 0px 0px 56px; text-align: center;"> <p style="font-size: 12px; line-height: 16px; color: #86868b;">You can <a href="/account#EmailsCard" style="border:0;outline:0;text-decoration:none;color:#86868b">update your Apple Developer email preferences</a> or <a href="/unsubscribe/" style="border:0;outline:0;text-decoration:none;color:#86868b">unsubscribe</a>.</p> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </div> </main> <link rel="stylesheet" href="/assets/styles/footer.dist.css?17182448067"> <footer id="footer" class="footer" role="contentinfo" aria-labelledby="footer-label"> <div class="footer-content"> <h2 class="footer-label" id="footer-label">Developer Footer</h2> <developer-breadcrumbs> <li class="footer-breadcrumbs-item"><a href="/hello/">Hello</a></li> <li class="footer-breadcrumbs-item">November 2024</li> </developer-breadcrumbs> <nav class="footer-directory" aria-label="Apple Developer Directory" role="navigation"> <!--googleoff: all--> <div class="footer-directory-column"> <input class="footer-directory-column-section-state" type="checkbox" id="footer-directory-column-section-state-platform" /> <div class="footer-directory-column-section"> <label class="footer-directory-column-section-label" for="footer-directory-column-section-state-platform"> <h3 class="footer-directory-column-section-title">Platforms</h3> </label> <a href="#footer-directory-column-section-state-platform" class="footer-directory-column-section-anchor footer-directory-column-section-anchor-open"> <span class="footer-directory-column-section-anchor-label">Open Menu</span> </a> <a href="#" class="footer-directory-column-section-anchor footer-directory-column-section-anchor-close"> <span class="footer-directory-column-section-anchor-label">Close Menu</span> </a> <ul class="footer-directory-column-section-list"> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/ios/">iOS</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/ipados/">iPadOS</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/macos/">macOS</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/tvos/">tvOS</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/visionos/">visionOS</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/watchos/">watchOS</a></li> </ul> </div> <input class="footer-directory-column-section-state" type="checkbox" id="footer-directory-column-section-state-tools" /> <div class="footer-directory-column-section"> <label class="footer-directory-column-section-label" for="footer-directory-column-section-state-tools"> <h3 class="footer-directory-column-section-title">Tools</h3> </label> <a href="#footer-directory-column-section-state-tools" class="footer-directory-column-section-anchor footer-directory-column-section-anchor-open"> <span class="footer-directory-column-section-anchor-label">Open Menu</span> </a> <a href="#" class="footer-directory-column-section-anchor footer-directory-column-section-anchor-close"> <span class="footer-directory-column-section-anchor-label">Close Menu</span> </a> <ul class="footer-directory-column-section-list"> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/swift/">Swift</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/swiftui/">SwiftUI</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/swift-playgrounds/">Swift Playgrounds</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/testflight/">TestFlight</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/xcode/">Xcode</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/xcode-cloud/">Xcode Cloud</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/sf-symbols/">SF Symbols</a></li> </ul> </div> </div> <div class="footer-directory-column"> <input class="footer-directory-column-section-state" type="checkbox" id="footer-directory-column-section-state-topics" /> <div class="footer-directory-column-section"> <label class="footer-directory-column-section-label" for="footer-directory-column-section-state-topics"> <h3 class="footer-directory-column-section-title">Topics & Technologies</h3> </label> <a href="#footer-directory-column-section-state-topics" class="footer-directory-column-section-anchor footer-directory-column-section-anchor-open"> <span class="footer-directory-column-section-anchor-label">Open Menu</span> </a> <a href="#" class="footer-directory-column-section-anchor footer-directory-column-section-anchor-close"> <span class="footer-directory-column-section-anchor-label">Close Menu</span> </a> <ul class="footer-directory-column-section-list"> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/accessibility/">Accessibility</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/accessories/">Accessories</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/app-extensions/">App Extensions</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/app-store/">App Store</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/audio/">Audio & Video</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/augmented-reality/">Augmented Reality</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/design/">Design</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/distribute/">Distribution</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/education/">Education</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/fonts/">Fonts</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/games/">Games</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/health-fitness/">Health & Fitness</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/in-app-purchase/">In-App Purchase</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/localization/">Localization</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/maps/">Maps & Location</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/machine-learning/">Machine Learning</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="https://opensource.apple.com">Open Source</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/security/">Security</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/safari/">Safari & Web</a></li> </ul> </div> </div> <div class="footer-directory-column"> <input class="footer-directory-column-section-state" type="checkbox" id="footer-directory-column-section-state-resources" /> <div class="footer-directory-column-section"> <label class="footer-directory-column-section-label" for="footer-directory-column-section-state-resources"> <h3 class="footer-directory-column-section-title">Resources</h3> </label> <a href="#footer-directory-column-section-state-resources" class="footer-directory-column-section-anchor footer-directory-column-section-anchor-open"> <span class="footer-directory-column-section-anchor-label">Open Menu</span> </a> <a href="#" class="footer-directory-column-section-anchor footer-directory-column-section-anchor-close"> <span class="footer-directory-column-section-anchor-label">Close Menu</span> </a> <ul class="footer-directory-column-section-list"> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/documentation/">Documentation</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/learn/">Tutorials</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/download/">Downloads</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/forums/">Forums</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/videos/">Videos</a></li> </ul> </div> <input class="footer-directory-column-section-state" type="checkbox" id="footer-directory-column-section-state-support" /> <div class="footer-directory-column-section"> <label class="footer-directory-column-section-label" for="footer-directory-column-section-state-support"> <h3 class="footer-directory-column-section-title">Support</h3> </label> <a href="#footer-directory-column-section-state-support" class="footer-directory-column-section-anchor footer-directory-column-section-anchor-open"> <span class="footer-directory-column-section-anchor-label">Open Menu</span> </a> <a href="#" class="footer-directory-column-section-anchor footer-directory-column-section-anchor-close"> <span class="footer-directory-column-section-anchor-label">Close Menu</span> </a> <ul class="footer-directory-column-section-list"> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/support/articles/">Support Articles</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/contact/">Contact Us</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/bug-reporting/">Bug Reporting</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/system-status/">System Status</a></li> </ul> </div> <input class="footer-directory-column-section-state" type="checkbox" id="footer-directory-column-section-state-account" /> <div class="footer-directory-column-section"> <label class="footer-directory-column-section-label" for="footer-directory-column-section-state-account"> <h3 class="footer-directory-column-section-title">Account</h3> </label> <a href="#footer-directory-column-section-state-account" class="footer-directory-column-section-anchor footer-directory-column-section-anchor-open"> <span class="footer-directory-column-section-anchor-label">Open Menu</span> </a> <a href="#" class="footer-directory-column-section-anchor footer-directory-column-section-anchor-close"> <span class="footer-directory-column-section-anchor-label">Close Menu</span> </a> <ul class="footer-directory-column-section-list"> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/account/">Apple Developer</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="https://appstoreconnect.apple.com/">App Store Connect</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/account/ios/certificate/">Certificates, IDs, & Profiles</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="https://feedbackassistant.apple.com/">Feedback Assistant</a></li> </ul> </div> </div> <div class="footer-directory-column"> <input class="footer-directory-column-section-state" type="checkbox" id="footer-directory-column-section-state-programs" /> <div class="footer-directory-column-section"> <label class="footer-directory-column-section-label" for="footer-directory-column-section-state-programs"> <h3 class="footer-directory-column-section-title">Programs</h3> </label> <a href="#footer-directory-column-section-state-programs" class="footer-directory-column-section-anchor footer-directory-column-section-anchor-open"> <span class="footer-directory-column-section-anchor-label">Open Menu</span> </a> <a href="#" class="footer-directory-column-section-anchor footer-directory-column-section-anchor-close"> <span class="footer-directory-column-section-anchor-label">Close Menu</span> </a> <ul class="footer-directory-column-section-list"> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/programs/">Apple Developer Program</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/programs/enterprise/">Apple Developer Enterprise Program</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/app-store/small-business-program/">App Store Small Business Program</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="https://mfi.apple.com/">MFi Program</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/programs/news-partner/">News Partner Program</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/programs/video-partner/">Video Partner Program</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/security-bounty/">Security Bounty Program</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/programs/security-research-device/">Security Research Device Program</a></li> </ul> </div> <input class="footer-directory-column-section-state" type="checkbox" id="footer-directory-column-section-state-events" /> <div class="footer-directory-column-section"> <label class="footer-directory-column-section-label" for="footer-directory-column-section-state-events"> <h3 class="footer-directory-column-section-title">Events</h3> </label> <a href="#footer-directory-column-section-state-events" class="footer-directory-column-section-anchor footer-directory-column-section-anchor-open"> <span class="footer-directory-column-section-anchor-label">Open Menu</span> </a> <a href="#" class="footer-directory-column-section-anchor footer-directory-column-section-anchor-close"> <span class="footer-directory-column-section-anchor-label">Close Menu</span> </a> <ul class="footer-directory-column-section-list"> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/events/">Meet with Apple</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/events/developer-centers/">Apple Developer Centers</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/app-store/app-store-awards/">App Store Awards</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/design/awards/">Apple Design Awards</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/academies/">Apple Developer Academies</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/entrepreneur-camp/">Entrepreneur Camp</a></li> <li class="footer-directory-column-section-item"><a class="footer-directory-column-section-link" href="/wwdc/">WWDC</a></li> </ul> </div> </div> <!--googleon: all--> </nav> <section class="footer-mini" vocab="http://schema.org/" typeof="Organization"> <div class="footer-mini-news"> <div class="copy"> Get the <a href="https://apps.apple.com/us/app/apple-developer/id640199958">Apple Developer app</a>. </div> <div class="content"> <div class="color-scheme-toggle" role="radiogroup" tabindex="0" aria-label="Select a color scheme preference"> <label data-color-scheme-option="light"> <input type="radio" value="light" autocomplete="off" onchange="window.setPreferredColorScheme(event.target.value)" /> <div class="text">Light</div> </label> <label data-color-scheme-option="dark"> <input type="radio" value="dark" autocomplete="off" onchange="window.setPreferredColorScheme(event.target.value)" /> <div class="text">Dark</div> </label> <label data-color-scheme-option="auto"> <input type="radio" value="auto" autocomplete="off" onchange="window.setPreferredColorScheme(event.target.value)" /> <div class="text">Auto</div> </label> </div> <script async src="/assets/scripts/color-scheme-toggle.js"></script> </div> </div> <link rel="stylesheet" href="/assets/styles/language-dropdown.css?17182448067"> <div class="language-dropdown dropdown-container legacy-form hidden"> <select class="dropdown" aria-label="Language Dropdown"></select> <span class="dropdown-icon icon icon-chevrondown" aria-hidden="true"></span> </div> <script src="/assets/scripts/language-dropdown.js?17182448067"></script> <div class="footer-mini-legal"> <div class="footer-mini-legal-copyright">Copyright © 2024 <a href="https://www.apple.com">Apple Inc.</a> All rights reserved.</div> <div class="footer-mini-legal-links"> <a class="footer-mini-legal-link" href="https://www.apple.com/legal/internet-services/terms/site.html" class="first">Terms of Use</a> <a class="footer-mini-legal-link" href="https://www.apple.com/legal/privacy/">Privacy Policy</a> <a class="footer-mini-legal-link" href="/support/terms/">Agreements and Guidelines</a> </div> </div> </section> </div> </footer> </body> </html>