Skip to content

Instantly share code, notes, and snippets.

@kfrank
Created October 1, 2015 20:57
Show Gist options
  • Save kfrank/fe366da4061afcb9f6b1 to your computer and use it in GitHub Desktop.
Save kfrank/fe366da4061afcb9f6b1 to your computer and use it in GitHub Desktop.
<!DOCTYPE html>
<html lang="en" class="marketing-layout landing-pages-controller show-action development visitor chrome webkit osx" id="layout" data-featurette="marketing-layout" >
<head>
<title>Treehouse | Learn Parasailing Programming on Treehouse</title>
<meta charset="UTF-8" />
<meta name="description" content="Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Donec id elit non mi porta gravida at eget metus. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Maecenas faucibus mollis interdum." />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="google-site-verification" content="4Ga-viQvIZUFNQXu323xpp_24RDlLooxwlpnXhinjPA" />
<meta name="msvalidate.01" content="F0716E70B7DD3B8C892B48891CA4B541" />
<meta content="authenticity_token" name="csrf-param" />
<meta content="THBftXTBpl1U2ZhrVXDCYOBdgKmOy25TGMTsFHupFmU=" name="csrf-token" />
<link href="/assets/vendor.css" media="screen" rel="stylesheet" />
<link href="/assets/marketing.css" media="screen" rel="stylesheet" />
<link rel="stylesheet" type="text/css" href="//cloud.typography.com/7055252/762022/css/fonts.css" />
<link href="/assets/print.css" media="print" rel="stylesheet" />
<link rel="shortcut icon" href="/assets/favicon.png" />
<link rel="apple-touch-icon-precomposed" sizes="60x60" href="/assets/apple-touch-icon-60x60-precomposed.png" />
<link rel="apple-touch-icon-precomposed" sizes="76x76" href="/assets/apple-touch-icon-76x76-precomposed.png" />
<link rel="apple-touch-icon-precomposed" sizes="120x120" href="/assets/apple-touch-icon-120x120-precomposed.png" />
<link rel="apple-touch-icon-precomposed" sizes="152x152" href="/assets/apple-touch-icon-152x152-precomposed.png" />
</head>
<body class="osx chrome webkit ">
<!-- Data Layer -->
<script>
dataLayer = [{"loggedIn":false,"visitorId":1}];
</script>
<!-- Google Tag Manager -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-T7FPB3"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-T7FPB3');</script>
<!-- End Google Tag Manager -->
<nav data-layout-element="navigation">
<section>
<a href="/" class="brand" data-featurette="analytics-click-event" data-event-category="button" data-event-action="M: Clicked Treehouse Logo" data-event-label="Source: Navbar">
<svg class="treehouse-icon" preserveAspectRatio="xMinYMin meet" viewBox="0 0 139 32">
<g>
<path class="icon-treehouse" d="M42.8,21c-0.4,0.1-0.9,0.2-1.4,0.2c-1,0-1.4-0.6-1.4-1.6v-4.5h2.8c0.7,0,1.4-0.5,1.4-1.3s-0.6-1.3-1.4-1.3
H40V11c0-0.9-0.7-1.5-1.5-1.5S37,10.2,37,11v8.7c0,2.5,1.2,4.3,4,4.3c0.8,0,1.9-0.1,2.7-0.5c0.7-0.3,0.9-0.8,0.9-1.3
C44.6,21.5,43.9,20.8,42.8,21z M52.8,12.1c-0.4-0.1-1.2-0.2-1.9-0.2c-2.5,0-3.9,1.5-3.9,3.8v6.8c0,0.8,0.7,1.5,1.5,1.5
s1.5-0.7,1.5-1.5v-6.2c0-1,0.4-1.4,1.1-1.4c0.7,0,1.1,0.2,1.7,0.2c0.9,0,1.4-0.8,1.4-1.4C54.1,12.9,53.7,12.4,52.8,12.1z M61.1,11.9
c-2.8,0-4.8,1.8-5.1,4.7c0,0.7-0.1,1.9,0,2.8c0.2,2.8,2.2,4.7,5.2,4.7c1.4,0,2.7-0.3,3.5-0.8c0.6-0.4,0.7-0.8,0.7-1.2
c0-0.8-0.7-1.6-1.9-1.2c-0.7,0.3-1.5,0.5-2.3,0.5c-1.4,0-2.5-0.7-2.5-2.1V19h5.7c1,0,1.5-0.6,1.5-1.5V17C66,13.9,64,11.9,61.1,11.9z
M63,17h-4.2c0-1.5,0.7-2.5,2.3-2.5c1.4,0,2.2,0.9,2.1,2.2C63.2,16.9,63.2,17,63,17z M73.1,11.9c-2.8,0-4.8,1.8-5.1,4.7
c0,0.7-0.1,1.9,0,2.8c0.2,2.8,2.2,4.7,5.2,4.7c1.4,0,2.7-0.3,3.5-0.8c0.6-0.4,0.7-0.8,0.7-1.2c0-0.8-0.7-1.6-1.9-1.2
c-0.7,0.3-1.5,0.5-2.3,0.5c-1.4,0-2.5-0.7-2.5-2.1V19h5.7c1,0,1.5-0.6,1.5-1.5V17C78,13.9,76,11.9,73.1,11.9z M75,17h-4.2
c0-1.5,0.7-2.5,2.3-2.5c1.4,0,2.2,0.9,2.1,2.2C75.2,16.9,75.2,17,75,17z M123.6,16.9l-1.6-0.4c-1-0.2-1.3-0.5-1.3-1s0.5-0.9,1.6-0.9
c0.6,0,1.3,0.2,1.9,0.5c0.7,0.4,1.5,0.3,1.9-0.2c0.5-0.5,0.5-1.4-0.1-2c-0.8-0.6-2.2-1-3.6-1c-2.6,0-4.5,1.3-4.5,3.7
c0,1.9,1.4,2.9,3.2,3.4c0.9,0.2,0.8,0.2,1.6,0.4c0.9,0.2,1.3,0.6,1.3,1c0,0.6-0.5,1-1.7,1c-1,0-1.9-0.3-2.6-0.7
c-0.7-0.5-1.5-0.3-1.9,0.3c-0.4,0.6-0.3,1.4,0.3,1.8c0.8,0.7,2.1,1.3,4.2,1.3c2.6,0,4.6-1.4,4.6-3.8
C126.9,18.5,125.8,17.4,123.6,16.9z M137.5,19c1,0,1.5-0.6,1.5-1.5l0,0V17c0-3.1-2-5.1-4.9-5.1c-2.8,0-4.8,1.8-5.1,4.7
c0,0.7-0.1,1.9,0,2.8c0.2,2.8,2.2,4.7,5.2,4.7c1.4,0,2.7-0.3,3.5-0.8c0.6-0.4,0.7-0.8,0.7-1.2c0-0.8-0.7-1.6-1.9-1.2
c-0.7,0.3-1.5,0.5-2.3,0.5c-1.4,0-2.5-0.7-2.5-2.1V19H137.5z M134.1,14.5c1.4,0,2.2,0.9,2.1,2.2c0,0.2-0.1,0.3-0.2,0.3h-4.2
C131.8,15.5,132.6,14.5,134.1,14.5z M97.5,11.9c-3,0-5.2,1.9-5.5,4.5c-0.1,0.9-0.1,2.3,0,3.2c0.2,2.6,2.5,4.5,5.5,4.5
s5.2-1.9,5.4-4.5c0.1-0.9,0.1-2.2,0-3.1C102.7,13.8,100.5,11.9,97.5,11.9z M99.9,19.1c-0.1,1.3-1,2.1-2.4,2.1s-2.3-0.9-2.4-2.1
c0-0.6,0-1.6,0-2.2c0.1-1.3,1-2.1,2.4-2.1s2.3,0.9,2.4,2.1C100,17.5,100,18.5,99.9,19.1z M85.6,11.9c-1.1,0-2.3,0.4-2.7,0.9l0,0V9.6
c0-0.9-0.6-1.5-1.4-1.5s-1.4,0.7-1.4,1.5v12.9c0,0.8,0.7,1.5,1.5,1.5s1.4-0.7,1.4-1.5v-6.7c0.5-0.5,1.3-0.9,2.3-0.9
c1.2,0,1.9,0.7,1.9,2.1v5.5c0,0.9,0.6,1.6,1.4,1.6c0.9,0,1.5-0.7,1.5-1.6v-5.7C90,13.6,88.4,11.9,85.6,11.9z M113.6,12
c-0.8,0-1.5,0.7-1.5,1.5v7.1c-0.5,0.3-1.2,0.6-2.1,0.6c-1.2,0-2.1-0.7-2.1-2.1v-5.6c0-0.9-0.7-1.6-1.5-1.6c-0.9,0-1.4,0.7-1.4,1.6
v5.7c0,3.1,1.8,4.8,4.9,4.8c2.3,0,3.9-0.8,4.6-1.3c0.4-0.2,0.5-0.5,0.5-1v-8.2C115,12.7,114.4,12,113.6,12z" />
<path class="icon-logo" d="M28.4,7c-0.4-0.2-1.3-0.6-2.3-1.2c-1.1-0.6-2.8,0.4-3.9,2.1l-1.9,3.2c-0.7,1.4-0.6,2.9,0.3,4.2l0.1,0.1
c0.9,1.3,2.1,2.4,2.4,2.8c0.2,0.2,0.4,0.6,0.5,0.9c0.3,1.2-0.3,2.3-1.5,2.6c-1.1,0.3-2.3-0.4-2.7-1.5c-0.1-0.3-0.1-0.6-0.1-0.9
c0.1-0.5-0.1-1.3-0.8-1.9c-0.7-0.8-2.1,0.7-2.5,2.1v0.1c-0.4,1.5-0.7,2.7-0.6,2.8c0,0.1,0.1,0.2,0.1,0.2c0.6,1.2,0.2,2.6-1,3.2
s-2.7,0.2-3.3-1s-0.2-2.6,1-3.2c0.1,0,0.1-0.1,0.2-0.1c0.1,0,0.3-0.7,0.6-1.4c0.2-0.7,0.4-1.3,0.4-1.3c0-0.1,0-0.2,0.1-0.2l1.2-4.2
l-1.2,2.5c-0.2-0.5-0.4-0.5-1-0.1c-0.3,0.2-0.9,0.7-1.1,0.9c-0.5,0.4-0.9,1.1-1.1,1.5c-0.1,0.3-0.3,0.5-0.5,0.7
c-0.9,0.8-2.3,0.6-3-0.3s-0.5-2.1,0.4-2.8c0.3-0.2,0.6-0.4,0.9-0.4c0.5-0.1,2.4-1.3,3.5-2c0.2-0.1,0.4-0.3,0.5-0.4l2.9-2.1l-2.6,1.4
c0,0-0.3,0-0.6,0c-0.8,0.1-1.8,0.2-2,0.5c-0.1,0.1-0.2,0.3-0.4,0.4c-0.8,0.4-2,0.2-2.7-0.6c-0.6-0.9-0.4-2,0.4-2.6
c0.5-0.3,0.9-0.4,1.3-0.4c0.7,0,2.5,0.4,4,0.1l0.4-0.1c1.5-0.3,3.3-1.5,4-2.9c0,0,0.7-1.3,1.6-2.7c0.9-1.5,0.8-3.1-0.1-3.7l-1.7-1
c-0.9-0.5-2.3-0.5-3.2,0L1.6,6.8C0.7,7.3,0,8.6,0,9.6v12.8c0,1,0.7,2.1,1.6,2.6l11.9,6.6c0.9,0.5,2.3,0.5,3.2,0l11.7-6.7
c0.9-0.5,1.6-1.6,1.6-2.6V9.6C30,8.6,29.3,7.5,28.4,7z" />
</g>
</svg>
</a>
<a class="fixed-trial-button" href="/subscribe/plans?trial=yes">Free trial</a>
<div id="mobile-nav-toggle">
<a href="#" id="nav-toggle" data-nav-toggle>
<span class="hamburger"></span>
</a>
</div>
<ul class="nav-list">
<li class="nav-item nav-item-home ">
<a class="nav-anchor" data-event-action="M: Clicked Home" data-event-category="button" data-event-label="Source: Navbar" data-featurette="analytics-click-event" href="/">Home</a>
</li>
<li class="nav-item ">
<a class="nav-anchor" data-event-action="M: Clicked Features" data-event-category="button" data-event-label="Source: Navbar" data-featurette="analytics-click-event" href="/features">Features</a>
</li>
<li class="nav-item ">
<a class="nav-anchor" data-event-action="M: Clicked Stories" data-event-category="button" data-event-label="Source: Navbar" data-featurette="analytics-click-event" href="/stories">Stories</a>
</li>
<li class="nav-item ">
<a class="nav-anchor" data-event-action="M: Clicked Plans" data-event-category="button" data-event-label="Source: Navbar" data-featurette="analytics-click-event" href="/subscribe/plans?trial=yes">Pricing</a>
</li>
<li class="nav-item nav-item-sign-in" data-featurette="analytics-click-event" data-target="a" data-event-category: "button" data-event-action="M: Clicked Sign In" data-event-label="Source: Navbar">
<a class="nav-anchor featurette" data-featurette="modal-trigger" data-mobile-fallback="doit" data-target="login-modal" href="http://localhost:3000/signin?return_to=%2Fjoin%2Fswift-test">Sign in</a>
</li>
<li class="nav-item nav-item-free-trial">
<a class="nav-anchor" data-event-action="M: Clicked Free Trial" data-event-category="button" data-event-label="Source: Navbar" data-featurette="analytics-click-event" href="/subscribe/plans?trial=yes">Free trial</a>
</li>
</ul>
</section>
</nav>
<section class="page-container">
<headinger class="section-headinger" data-layout-element="hero">
<section>
<div class="row">
<div class="eight columns centered text-centered">
<div class="hero-heading">
<h1>Learn <em>Parasailing</em></h1>
<svg viewBox="0 0 604.5 298.8" >
<g opacity="0.1">
<path fill="#18242A" d="M529.9,298.8H18.1c-10,0-18.1-8.1-18.1-18.1v-62.7c0-10,8.1-18.1,18.1-18.1h38.4v7H18.1
c-6.1,0-11.1,5-11.1,11.1v62.7c0,6.1,5,11.1,11.1,11.1h511.7c6.1,0,11.1-5,11.1-11.1v-14.4h7v14.4
C548,290.6,539.9,298.8,529.9,298.8z"/>
</g>
<g>
<g>
<g opacity="0.5">
<path fill="#CECECE" d="M428.6,251.5H83.6c-4.2,0.8-7.7-2.6-7.7-6.8V24.8h360.3v219.9C436.3,248.9,432.8,252.4,428.6,251.5z"/>
</g>
<g>
<path fill="#F3F3F3" d="M428.6,248.4H83.6c-4.2,0-7.7-3.4-7.7-7.7V20.9h360.3v219.9C436.3,245,432.8,248.4,428.6,248.4z"/>
</g>
<g>
<rect x="149.8" y="21.5" fill="#FFFFFF" width="212.6" height="211"/>
</g>
<g>
<rect x="149.5" y="230" fill="#E6E6E6" width="213.5" height="2.9"/>
</g>
<g>
<rect x="166.3" y="57.2" fill="#8C989E" width="16.5" height="7.4"/>
</g>
<g>
<rect x="195.6" y="129.1" fill="#74797E" width="62.6" height="7.4"/>
</g>
<g>
<rect x="195.6" y="144.3" fill="#74797E" width="62.6" height="7.4"/>
</g>
<g>
<rect x="182.8" y="76.3" fill="#7FD999" width="142.8" height="7.4"/>
</g>
<g>
<rect x="182.8" y="108.2" fill="#937AC4" width="29.1" height="7.4"/>
</g>
<g>
<rect x="182.8" y="92.2" fill="#39ADD1" width="45.6" height="7.4"/>
</g>
<g>
<rect x="218.6" y="108.2" fill="#459BDC" width="59.4" height="7.4"/>
</g>
<g>
<rect x="266.6" y="129.1" fill="#CECECE" width="19" height="7.4"/>
</g>
<g>
<rect x="266.6" y="144.3" fill="#CECECE" width="19" height="7.4"/>
</g>
<g>
<path fill="#B6B6B6" d="M436.3,20.9H76V7.7C76,3.4,79.4,0,83.6,0h344.9c4.2,0,7.7,3.4,7.7,7.7V20.9z"/>
</g>
<g>
<rect x="76" y="20.9" fill="#CECECE" width="360.3" height="17.4"/>
</g>
<g>
<circle fill="#E15258" cx="87" cy="10.4" r="3.4"/>
</g>
<g>
<circle fill="#FFEA70" cx="97.3" cy="10.4" r="3.4"/>
</g>
<g>
<circle fill="#5FCF80" cx="108.7" cy="10.4" r="3.4"/>
</g>
<g>
<rect x="190.4" y="57.2" fill="#74797E" width="60.6" height="7.4"/>
</g>
<g>
<rect x="169.5" y="161.1" fill="#74797E" width="13.1" height="7.4"/>
</g>
</g>
<g>
<path fill="#E6E6E6" d="M545.7,271.3h-3c-3.1,0-5.6-2.5-5.6-5.6v-16.5h14.3v16.5C551.3,268.7,548.8,271.3,545.7,271.3z"/>
</g>
<g>
<path fill="#E6E6E6" d="M53,216.4H76v-27H53c-3.1,0-5.5,2.5-5.5,5.5v15.9C47.5,214,50,216.4,53,216.4z"/>
</g>
<g>
<path fill="#FFFFFF" d="M545.7,268.3h-3c-3.1,0-5.6-2.5-5.6-5.6v-16.5h14.3v16.5C551.3,265.7,548.8,268.3,545.7,268.3z"/>
</g>
<g>
<path fill="#FFFFFF" d="M53,213.2H76v-27H53c-3.1,0-5.5,2.5-5.5,5.5v15.9C47.5,210.7,50,213.2,53,213.2z"/>
</g>
<g>
<g opacity="0.1">
<g>
<path fill="#18242A" d="M588.1,254.8h-87.2c-8.4,0-15.2-6.8-15.2-15.2V24.7c0-8.4,6.8-15.2,15.2-15.2h87.2
c8.4,0,15.2,6.8,15.2,15.2v214.9C603.3,248,596.5,254.8,588.1,254.8z"/>
</g>
</g>
<g>
<g>
<g>
<path fill="#F3F3F3" d="M500.9,249.8c-8.7,0-15.8-7.1-15.8-15.8V19c0-8.7,7.1-15.8,15.8-15.8h87.2c8.7,0,15.8,7.1,15.8,15.8
v214.9c0,8.7-7.1,15.8-15.8,15.8H500.9z"/>
</g>
<g>
<path fill="#FFFFFF" d="M588.1,3.8c8.4,0,15.2,6.8,15.2,15.2v214.9c0,8.4-6.8,15.2-15.2,15.2h-87.2c-8.4,0-15.2-6.8-15.2-15.2
V19c0-8.4,6.8-15.2,15.2-15.2H588.1 M588.1,2.6h-87.2c-9.1,0-16.4,7.4-16.4,16.4v214.9c0,9.1,7.4,16.4,16.4,16.4h87.2
c9.1,0,16.4-7.4,16.4-16.4V19C604.5,10,597.1,2.6,588.1,2.6L588.1,2.6z"/>
</g>
</g>
<g>
<circle fill="#FFFFFF" cx="544.2" cy="236.1" r="8.9"/>
</g>
<g>
<circle fill="#F3F3F3" cx="544.2" cy="236.1" r="7.1"/>
</g>
<g>
<rect x="490.4" y="30.5" fill="#53BBB4" width="108.1" height="191.3"/>
</g>
</g>
</g>
<g>
<path fill="#F3F3F3" d="M529.9,295.3H18.1c-9.2,0-16.6-7.5-16.6-16.6v-62.7c0-9.2,7.5-16.6,16.6-16.6h18.4v4H18.1
c-7,0-12.6,5.7-12.6,12.6v62.7c0,7,5.7,12.6,12.6,12.6h511.7c7,0,12.6-5.7,12.6-12.6v-8.4h4v8.4
C546.5,287.8,539,295.3,529.9,295.3z"/>
</g>
<g>
<rect x="35.8" y="196.5" fill="#FFFFFF" width="12.1" height="8.8"/>
</g>
</g>
<g>
<g>
<g>
<path fill="#FEF4E9" d="M568.6,98h12.7c0,7.2-5.9,13.1-13.1,13.1"/>
</g>
<g>
<path fill="#FEF4E9" d="M522.3,111.1c-7.2,0-13.1-5.9-13.1-13.1h13.5"/>
</g>
</g>
<g>
<g>
<rect x="522.1" y="94.2" fill="#FFE340" width="46.4" height="64"/>
</g>
<g>
<rect x="527.6" y="150.9" transform="matrix(0.7071 -0.7071 0.7071 0.7071 44.8237 424.5861)" fill="#FFE340" width="14.8" height="14.6"/>
</g>
<g>
<path fill="#FFE340" d="M526.8,147.8c0,0-10.4,6.7-10.4,10.4c0,3.6,10.3,10.3,10.3,10.3l10.4-10.4L526.8,147.8z"/>
</g>
<g>
<rect x="537.9" y="150.9" transform="matrix(0.7071 -0.7071 0.7071 0.7071 47.8619 431.921)" fill="#FFE340" width="14.8" height="14.6"/>
</g>
<g>
<rect x="548.3" y="150.9" transform="matrix(0.7071 -0.7071 0.7071 0.7071 50.9002 439.256)" fill="#FFE340" width="14.8" height="14.6"/>
</g>
<g>
<rect x="527.6" y="86.9" transform="matrix(0.7071 -0.7071 0.7071 0.7071 90.0898 405.8363)" fill="#FFE340" width="14.8" height="14.6"/>
</g>
<g>
<rect x="537.9" y="86.9" transform="matrix(0.7071 -0.7071 0.7071 0.7071 93.128 413.1711)" fill="#FFE340" width="14.8" height="14.6"/>
</g>
<g>
<rect x="548.3" y="86.9" transform="matrix(0.7071 -0.7071 0.7071 0.7071 96.1662 420.5062)" fill="#FFE340" width="14.8" height="14.6"/>
</g>
<g>
<path fill="#FFE340" d="M566.1,147.8l-10.4,10.4l10.3,10.3c0,0,10.4-6.7,10.4-10.4C576.4,154.5,566.1,147.8,566.1,147.8z"/>
</g>
</g>
<g>
<g>
<path fill="#FEF4E9" d="M532.2,120.3c0-7.2,5.9-12.1,13.1-12.1s13.1,4.9,13.1,12.1s-5.9,12.1-13.1,12.1S532.2,127.6,532.2,120.3z
"/>
</g>
<g>
<circle fill="#384047" cx="545.3" cy="120.3" r="6.2"/>
</g>
</g>
<g>
<g>
<path fill="#FEF4E9" d="M545.3,142.8c4.1,0,7.7,1.9,10.1,4.8c1.9-2.3,3-5.2,3-8.3h-26.2c0,3.2,1.1,6.1,3,8.3
C537.6,144.7,541.2,142.8,545.3,142.8z"/>
</g>
<g>
<path fill="#E77579" d="M545.3,152.3c4.1,0,7.7-1.9,10.1-4.8c-2.4-2.9-6-4.7-10.1-4.7c-4.1,0-7.7,1.8-10.1,4.7
C537.6,150.4,541.2,152.3,545.3,152.3z"/>
</g>
</g>
</g>
</svg>
<h2 class="subheadinger">The new programming language for iOS and OS X, plus waves!</h2>
<a class="button large inverse" href="http://teamtreehouse.com/tracks/ios-development-with-swift">Get sailing <span class="icon icon-arrow-right-light"></span></a>
</div>
</div>
</div>
</section>
</headinger>
<div class="secondary-content featurette">
<div class="row">
<div class="eight columns centered text-centered">
<h2>Let&#39;s start off with the basics, Swift Basics</h2>
<p>Swift is a new programming language created by Apple to program iOS apps. If you are new to programming or to Swift then this course is for you. Learn about programming concepts like: variables, types, collections and control structures. Towards the end of the course we will learn to program a FizzBuzz generator applying everything we have learned in the course.</p>
<p><img alt="Parasailing development: Learn Swift Basics" src="/assets/views/pages/swift/buttons.svg" /></p>
<a class="button large primary" href="http://teamtreehouse.com/library/swift-basics">Learn Swift Basics</a>
<h2>Next, let&#39;s put the fun in Swift Functions</h2>
<p>Functions and Optionals are used widely in Swift. In this course we will look into the basics of what is a function and why you should use it. We then dive deeper and look at function parameters, return types and tuples. Finally, you will learn one of the most fundamental concepts in Swift known as Optionals.</p>
<p><img alt="Parasailing development: Learn Swift Functions" src="/assets/views/pages/swift/code-window.svg" /></p>
<a class="button large primary" href="http://teamtreehouse.com/library/swift-functions-and-optionals">Learn Swift Functions/a>
<h2>Swift Enums and Structs</h2>
<p>When creating apps you will find that Arrays and Dictionaries are useful but they can only get you so far. You will soon find that you need custom data types. Enums and Structs help you create your own custom data types to store and pass around data within your app. Each has its own purpose and in this course we will learn how they work and why they are important.</p>
<p><img alt="Parasailing development: Learn Swift Enums and Structs" src="/assets/views/pages/swift/enums-constructs.svg" /></p>
<a class="button large primary" href="http://teamtreehouse.com/library/swift-enums-and-structs">Learn Swift Enums and Structs</a>
<h2>Object-Oriented Swift</h2>
<p>Most modern languages follow a programming paradigm called Object-Oriented programming and Swift is no different. At the core of Object-Oriented programming you have the concepts of classes and objects. After familiarizing yourself with those basic concepts you will learn about subclassing, method overriding, convenience initializers, optional properties and reference versus value types.</p>
<p><img alt="Parasailing development: Learn Object Oriented Swift" src="/assets/views/pages/swift/oop.svg" /></p>
<a class="button large primary" href="http://teamtreehouse.com/library/objectoriented-swift">Learn Object Oriented Swift</a>
<h2>Build your very first iPhone app, Fun Facts</h2>
<p>Building the Fun Facts app will teach you how to use the Swift language and the Xcode and Interface Builder tools. You will also learn about core concepts such as views and view controllers, creating a data model and the Model-View-Controller design pattern. Towards the end you will have finished creating a fun app that will get you oriented with world of iOS development.</p>
<p><img alt="Parasailing development: Build a Swift Facts App" src="/assets/views/pages/swift/fun-facts.svg" /></p>
<a class="button large primary" href="http://teamtreehouse.com/library/build-a-simple-iphone-app-with-swift">Build a Swift Facts App</a>
<h2>Build a playlist browser app</h2>
<p>Let&#39;s build a fun playlist browser in Swift and learn about iOS app navigation and how to pass information around. We&#39;re going to learn how to work with multiple view controllers and how to transition between them using segues and navigation controllers. By the end of this project you will have a learned the foundational Master-Detail concepts and can start building a lot of your own ideas!</p>
<p><img alt="Parasailing development: Build a Playlist Browser App" src="/assets/views/pages/swift/albums.svg" /></p>
<a class="button large primary" href="http://teamtreehouse.com/library/build-a-playlist-browser-with-swift">Build a Playlist Browser App</a>
<h2>Network and build Stormy, a simple weather app</h2>
<p>In this project, we&#39;re going to build a weather app together and broaden our understanding of Swift and Cocoa Touch frameworks. You will also learn foundational concepts like concurrency and networking while building on our existing knowledge of data modeling, Auto Layout and more. By the end of this project you will have built your second iOS app and be well on your way to becoming an iOS developer.</p>
<p><img alt="Parasailing development: Build a Weather App" src="/assets/views/pages/swift/stormy.svg" /></p>
<a class="button large primary" href="http://teamtreehouse.com/library/build-a-weather-app-with-swift">Build a Weather App</a>
<h2>Enhance the weather app with a table view</h2>
<p>We are going to improve Stormy to show not only the current weather but the entire week&#39;s forecast. You will learn about table views, delegates and data sources which are important design patterns in iOS development. Towards the end of the course your Stormy app will display detailed information about your daily weather.</p>
<p><img alt="Parasailing development: Coming soon" src="/assets/views/pages/swift/weather-app.svg" /></p>
<a class="button large" href="http://teamtreehouse.com/roadmap">Coming soon</a>
<h2>Build a treasure hunting app with core location</h2>
<p>In this project, we&#39;re going to build an exciting treasure hunting app using the Core Location framework and a Geo-caching API. We&#39;ll learn about important concepts like delegation and protocols as well as using popular frameworks like MapKit and CoreLocation.</p>
<p><img alt="Parasailing development: Coming soon" src="/assets/views/pages/swift/coming-soon.svg" /></p>
<a class="button large" href="http://teamtreehouse.com/roadmap">Coming soon</a>
</div>
</div>
</div>
<footer>
<svg class="logo-icon" preserveAspectRatio="xMinYMin meet" viewBox="0 0 30 32">
<path d="M28.4,7.1c-0.4-0.2-1.3-0.6-2.3-1.2C25,5.3,23.3,6.3,22.2,8l-1.9,3.2c-0.7,1.4-0.6,2.9,0.3,4.2l0.1,0.1
c0.9,1.3,2.1,2.4,2.4,2.8c0.2,0.2,0.4,0.6,0.5,0.9c0.3,1.2-0.3,2.3-1.5,2.6c-1.1,0.3-2.3-0.4-2.7-1.5c-0.1-0.3-0.1-0.6-0.1-0.9
c0.1-0.5-0.1-1.3-0.8-1.9c-0.7-0.8-2.1,0.7-2.5,2.1v0.1c-0.4,1.5-0.7,2.7-0.6,2.8c0,0.1,0.1,0.2,0.1,0.2c0.6,1.2,0.2,2.6-1,3.2
s-2.7,0.2-3.3-1s-0.2-2.6,1-3.2c0.1,0,0.1-0.1,0.2-0.1c0.1,0,0.3-0.7,0.6-1.4c0.2-0.7,0.4-1.3,0.4-1.3c0-0.1,0-0.2,0.1-0.2l1.2-4.2
L13.5,17c-0.2-0.5-0.4-0.5-1-0.1c-0.3,0.2-0.9,0.7-1.1,0.9c-0.5,0.4-0.9,1.1-1.1,1.5c-0.1,0.3-0.3,0.5-0.5,0.7
c-0.9,0.8-2.3,0.6-3-0.3s-0.5-2.1,0.4-2.8c0.3-0.2,0.6-0.4,0.9-0.4c0.5-0.1,2.4-1.3,3.5-2c0.2-0.1,0.4-0.3,0.5-0.4L15,12l-2.6,1.4
c0,0-0.3,0-0.6,0c-0.8,0.1-1.8,0.2-2,0.5c-0.1,0.1-0.2,0.3-0.4,0.4c-0.8,0.4-2,0.2-2.7-0.6c-0.6-0.9-0.4-2,0.4-2.6
c0.5-0.3,0.9-0.4,1.3-0.4c0.7,0,2.5,0.4,4,0.1l0.4-0.1c1.5-0.3,3.3-1.5,4-2.9c0,0,0.7-1.3,1.6-2.7c0.9-1.5,0.8-3.1-0.1-3.7l-1.7-1
c-0.9-0.5-2.3-0.5-3.2,0L1.6,6.9C0.7,7.4,0,8.7,0,9.7v12.8c0,1,0.7,2.1,1.6,2.6l11.9,6.6c0.9,0.5,2.3,0.5,3.2,0L28.4,25
c0.9-0.5,1.6-1.6,1.6-2.6V9.7C30,8.7,29.3,7.6,28.4,7.1z" />
</svg>
<p>
&copy;2015 Treehouse Island, Inc.
<br>
<a data-event-action="M: Clicked Blog" data-event-category="button" data-event-label="Source: Footer" data-featurette="analytics-click-event" href="http://blog.teamtreehouse.com/">Blog</a> &bull;
<a data-event-action="M: Clicked Terms" data-event-category="button" data-event-label="Source: Footer" data-featurette="analytics-click-event" href="/terms">Terms</a> &bull;
<a data-event-action="M: Clicked Privacy" data-event-category="button" data-event-label="Source: Footer" data-featurette="analytics-click-event" href="/privacy">Privacy</a> &bull;
<a data-event-action="M: Clicked Contact" data-event-category="button" data-event-label="Source: Footer" data-featurette="analytics-click-event" href="/support">Contact</a>
</p>
<ul class="social">
<li><a data-event-action="M: Clicked Twitter Icon" data-event-category="button" data-event-label="Source: Footer" data-featurette="analytics-click-event" href="http://twitter.com/treehouse" target="_blank" title="Twitter"><svg class="twitter-icon" preserveAspectRatio="xMinYMin meet" viewBox="0 0 24 24"><use xlink:href="/assets/icons.svg#twitter-icon"></use></svg></a></li>
<li><a data-event-action="M: Clicked Youtube Icon" data-event-category="button" data-event-label="Source: Footer" data-featurette="analytics-click-event" href="http://youtube.com/user/gotreehouse" target="_blank" title="Youtube"><svg class="youtube-icon" preserveAspectRatio="xMinYMin meet" viewBox="0 0 24 24"><use xlink:href="/assets/icons.svg#youtube-icon"></use></svg></a></li>
<li><a data-event-action="M: Clicked Facebook Icon" data-event-category="button" data-event-label="Source: Footer" data-featurette="analytics-click-event" href="http://facebook.com/teamtreehouse" target="_blank" title="Facebook"><svg class="facebook-icon" preserveAspectRatio="xMinYMin meet" viewBox="0 0 24 24"><use xlink:href="/assets/icons.svg#facebook-icon"></use></svg></a></li>
<li><a data-event-action="M: Clicked Google Plus Icon" data-event-category="button" data-event-label="Source: Footer" data-featurette="analytics-click-event" href="http://plus.google.com/110278003536476194286/posts" target="_blank" title="Google Plus"><svg class="google-plus-icon" preserveAspectRatio="xMinYMin meet" viewBox="0 0 24 24"><use xlink:href="/assets/icons.svg#google-plus-icon"></use></svg></a></li>
<li><a data-event-action="M: Clicked Linkedin Icon" data-event-category="button" data-event-label="Source: Footer" data-featurette="analytics-click-event" href="http://linkedin.com/company/treehouse-island-inc-" target="_blank" title="LinkedIn"><svg class="linked-in-icon" preserveAspectRatio="xMinYMin meet" viewBox="0 0 24 24"><use xlink:href="/assets/icons.svg#linked-in-icon"></use></svg></a></li>
<li><a data-event-action="M: Clicked Instagram Icon" data-event-category="button" data-event-label="Source: Footer" data-featurette="analytics-click-event" href="http://instagram.com/teamtreehouse" target="_blank" title="Instagram"><svg class="instagram-icon" preserveAspectRatio="xMinYMin meet" viewBox="0 0 24 24"><use xlink:href="/assets/icons.svg#instagram-icon"></use></svg></a></li>
</ul>
</footer>
</section>
<!-- Dev Footer -->
<ul class="dev-footer">
<li>
<a>Test Accounts<span class="icon icon-chevron-down"></span></a>
<ul>
<li><a href="/dev_login?email=admin%40teamtreehouse.com">Admin User</a></li>
<li class="break"><a href="/dev_login?email=test-moderator%40teamtreehouse.com">Moderator User</a></li>
<li class="break"><a href="/dev_login?email=test%40teamtreehouse.com">Buddies User</a></li>
<li><a href="/dev_login?email=test-gold%40teamtreehouse.com">Pro User</a></li>
<li class="break"><a href="/dev_login?email=test-gold-subuser-first%40teamtreehouse.com">Pro SubUser</a></li>
<li><a href="/dev_login?email=test-silver%40teamtreehouse.com">Basic User</a></li>
<li class="break"><a href="/dev_login?email=test-silver-subuser%40teamtreehouse.com">Basic SubUser</a></li>
<li><a href="/dev_login?email=test-group-owner%40teamtreehouse.com">Group Owner</a></li>
<li><a href="/dev_login?email=test-group-admin%40teamtreehouse.com">Group Admin</a></li>
<li class="break"><a href="/dev_login?email=test-group-subuser-0%40teamtreehouse.com">Group SubUser</a></li>
<li><a href="/dev_login?email=test-guardian%40teamtreehouse.com">Guardian Account</a></li>
<li class="break"><a href="/dev_login?email=test-child%40teamtreehouse.com">Child Account</a></li>
<li><a href="/dev_login?email=paused-user%40teamtreehouse.com">Paused User</a></li>
<li class="break"><a href="/dev_login?email=cancelled-user%40teamtreehouse.com">Cancelled User</a></li>
<li><a href="/dev_login?email=paypaller%40teamtreehouse.com">Paypal User</a></li>
<li><a href="/dev_login?email=iap-user%40teamtreehouse.com">IAP User</a></li>
<li><a href="/dev_login?email=iap-trial-user%40teamtreehouse.com">IAP User in Free Trial</a></li>
<li><a href="/dev_login?email=iap-trial-ending-user%40teamtreehouse.com">IAP User Ending Free Trial</a></li>
<li><a href="/dev_login?email=cancelled-iap-user%40teamtreehouse.com">Cancelled IAP User</a></li>
<li><a href="/dev_login?email=test-library%40teamtreehouse.com">Library User</a></li>
<li><a href="/dev_login?email=code-oregon-user%40teamtreehouse.com">Code Oregon User</a></li>
</ul>
</li>
</ul>
<!-- yields content from within treehouse-tour paths. Find helper in application.helper -->
<div class="modal" data-featurette="modal" id="login-modal" style="; display: none;">
<div class="row" >
<div class="six columns centered" >
<section class="contained">
<button class="modal-close x-small square secondary" data-modal-close="close"><svg class="close-icon" preserveAspectRatio="xMinYMin meet" viewBox="0 0 12 12"><use xlink:href="/assets/icons.svg#close-icon"></use></svg></button>
<h1>Sign in</h1>
<form accept-charset="UTF-8" action="http://localhost:3000/person_session" class="new_user_session" id="new_user_session" method="post"><div style="display:none"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="THBftXTBpl1U2ZhrVXDCYOBdgKmOy25TGMTsFHupFmU=" /></div>
<input id="return_to" name="return_to" type="hidden" value="/join/swift-test" />
<fieldset>
<div class="form-item">
<label for="user_session_email">Email Address</label>
<input autocomplete="email" autofocus="autofocus" id="user_session_email" name="user_session[email]" type="email" />
</div> </fieldset>
<fieldset>
<div class="form-item">
<label for="user_session_password">Password</label>
<input autocomplete="current-password" id="user_session_password" name="user_session[password]" type="password" />
</div> </fieldset>
<p class="forgot-password"><a href="/password_resets"><span class="icon icon-help-mini"></span>I forgot my password</a></p>
<button type="submit" class="button small">Sign in</button>
</form> </section>
</div>
</div>
</div><div class="modal" data-featurette="help-modal" id="contact-form-modal" style="; display: none;">
<div class="row">
<div class="eleven columns centered">
<div class="contained featurette" data-featurette="help-form" id="help-form">
<button class="modal-close x-small square secondary" data-modal-close="close"><svg class="close-icon" preserveAspectRatio="xMinYMin meet" viewBox="0 0 12 12"><use xlink:href="/assets/icons.svg#close-icon"></use></svg></button>
<div class="row">
<section class="twelve columns secondary-heading">
<h3>Contact Support</h3>
</section>
</div>
<div class="row">
<div class="eight columns">
<div class="message waiting">
<span class="loading-spinner loading-spinner-large"><span></span></span>
</div>
<div class="message success">
<p><strong>Thanks!</strong> We'll be in touch.</p>
</div>
<form accept-charset="UTF-8" action="/contact" class="new_contact_form" id="contact-form" method="post"><div style="display:none"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="THBftXTBpl1U2ZhrVXDCYOBdgKmOy25TGMTsFHupFmU=" /></div>
<div class="message error">
<p>There was a small problem sending your message.</p>
</div>
<div class="form-item">
<label for="contact_form_name">Name <span>*</span></label>
<input id="contact_form_name" name="contact_form[name]" type="text" />
<div class="error-message"></div>
</div>
<div class="form-item">
<label for="contact_form_email">Email <span>*</span></label>
<input id="contact_form_email" name="contact_form[email]" type="text" />
<div class="error-message"></div>
</div>
<fieldset class="honey-pot-field">
<div class="form-item">
<label for="contact_form_email_confirmation">Email Confirmation <span>*</span></label>
<input id="contact_form_email_confirmation" name="contact_form[email_confirmation]" type="text" value="" />
<div class="error-message"></div>
</div>
</fieldset>
<div class="form-item">
<label for="contact_form_message">Message <span>*</span></label>
<textarea class="form-element" id="contact_form_message" name="contact_form[message]" rows="2">
</textarea>
<div class="error-message"></div>
</div>
<button class="button primary" type="submit">Send Message</button>
</form> </div>
<div class="four columns">
<div class="contact-alternative">
<p>Email support requests to:</p>
<p><a href="mailto:dev.support@teamtreehouse.com" title="dev.support@teamtreehouse.com">dev.support@teamtreehouse.com</a></p>
</div>
<div class="contact-alternative">
<div class="secondary-heading">
<h5>Content questions?</h5>
</div>
<p>Don't forget you can start a discussion in the <a href="/community">Community</a>. Treehouse teachers and members are actively discussing topics from course material and other general teaching topics.</p>
</div>
<p><a href="/privacy">Privacy Policy</a></p>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="mini-profile-container"></div>
<div id="tarp" class="modal-tarp" style="display: none;" data-featurette="tarp"></div>
<script src="/assets/vendor.js"></script>
<script>window.topicColors = {"HTML":"#39ADD1","CSS":"#3079AB","Design":"#E0AB18","JavaScript":"#C25975","Ruby":"#E15258","PHP":"#7D669E","WordPress":"#838CC7","iOS":"#53BBB4","Android":"#51B46D","Development Tools":"#637a91","Business":"#F9845B","Python":"#F092B0","Java":"#2C9676","Digital Literacy":"#c38cd4","Game Development":"#20898c","C#":"#9e4d83"};</script>
<script src="/assets/logged_out.js"></script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment