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&amp;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&nbsp;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&nbsp;Composer&nbsp;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&nbsp;Intelligence and <span class="nowrap">App&nbsp;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&nbsp;up a tasty recipe&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;Union</h4> </div> <div class="m-wFB683E copy"> <p class="t-body">To submit updates for apps on the App&nbsp;Store in the European Union (EU), Account Holders or Admins in the Apple Developer Program need to enter trader status in App&nbsp;Store&nbsp;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&nbsp;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&nbsp;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&nbsp;us&nbsp;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&nbsp;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&nbsp;Composer&nbsp;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&nbsp;Intelligence and <span style="white-space:nowrap;">App&nbsp;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&nbsp;up<br> a tasty recipe&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;Store in the European Union (EU), Account Holders or Admins in the Apple Developer Program need to enter trader status in App&nbsp;Store&nbsp;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&nbsp;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&nbsp;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&nbsp;us&nbsp;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&nbsp;Inc. One&nbsp;Apple&nbsp;Park&nbsp;Way,&nbsp;MS&nbsp;923‑4DEV, Cupertino,&nbsp;CA&nbsp;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>&nbsp;&nbsp;&nbsp;<span class="vert" style="color: #86868b;">|</span>&nbsp;&nbsp; <a href="https://www.apple.com/legal/privacy/" style="border: 0; outline: 0; text-decoration: none; color:#d2d2d7;">Privacy Policy</a>&nbsp;&nbsp;&nbsp;<span class="vert" style="color: #86868b;">|</span>&nbsp;&nbsp; <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 &amp; 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 &amp; 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 &amp; 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 &amp; 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 &amp; 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, &amp; 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>

Pages: 1 2 3 4 5 6 7 8 9 10