# Tutorial renewal

**URL:** <https://forums.kodeco.com/t/tutorial-renewal/20172>\
**Category:** Swift\
**Created:** [September 22, 2016, 12:22pm UTC](https://forums.kodeco.com/t/tutorial-renewal/20172 "2016-09-22T12:22:17Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![xcoder9](https://assets.chunter.kodeco.com/user_avatar/forums.kodeco.com/xcoder9/32/42550_2.png) [@xcoder9](https://forums.kodeco.com/u/xcoder9)\
**Post date:** [September 22, 2016, 12:22pm UTC](https://forums.kodeco.com/t/tutorial-renewal/20172/1 "2016-09-22T12:22:17Z")

</div>

So, I just started on "Swift Tutorial 1: Welcome to Programming” by Brian Moakley a couple of weeks ago, I am busy for a few days, come back to it and Brian’s tutorials have been replaced by ones written by Matt Galloway. Nothing against Matt , but this is not good for continuity of learning. How often are newbies/continuing students expected to start from scratch again?

---

<div class="post-metadata">

**Author:** ![r0gerblack](https://assets.chunter.kodeco.com/user_avatar/forums.kodeco.com/r0gerblack/32/82486_2.png) [@r0gerblack](https://forums.kodeco.com/u/r0gerblack)\
**Post date:** [September 22, 2016, 6:08pm UTC](https://forums.kodeco.com/t/tutorial-renewal/20172/2 "2016-09-22T18:08:51Z")

</div>

Not very often… but you chose to read that tutorial in a _bad time_. Swift 3 has been out for few days… and many basic tutorials are being/been updated. I’ve given that tutorial a lecture, and if you understood it, there’s not much new and Swift 3 related (differently from Swift 2) that you can learn from it… so I think you should simply move on.  
Also Apple stated in github that Swift 3 is the last breaking-changes release, so every effort from now in future Swifts (even 4+) should be source-compatible with legacy Swift 3.0 code. (Though it’s not guaranteed for every future feature, this is their goal now)

---

<div class="post-metadata">

**Author:** ![xcoder9](https://assets.chunter.kodeco.com/user_avatar/forums.kodeco.com/xcoder9/32/42550_2.png) [@xcoder9](https://forums.kodeco.com/u/xcoder9)\
**Post date:** [September 23, 2016, 10:30am UTC](https://forums.kodeco.com/t/tutorial-renewal/20172/3 "2016-09-23T10:30:59Z")

</div>

Thanks, I’ll move on, but first can you clarify the following: I used Xcode 8, Beta 5 before which contained Swift version 2.2. I have removed this from my Mac now and downloaded/installed Xcode 8.1, which according to the release notes uses Swift version 2.3. However, when I run the “swift –version” command in Terminal, it reports version 2.2.

---

<div class="post-metadata">

**Author:** ![r0gerblack](https://assets.chunter.kodeco.com/user_avatar/forums.kodeco.com/r0gerblack/32/82486_2.png) [@r0gerblack](https://forums.kodeco.com/u/r0gerblack)\
**Post date:** [September 23, 2016, 10:07pm UTC](https://forums.kodeco.com/t/tutorial-renewal/20172/4 "2016-09-23T22:07:01Z")

</div>

I don’t know exactly about this… but Swift 2.3 is basically Swift 2.2 syntax along with iOS 10 APIs that wouldn’t otherwise be available.

---

<div class="post-metadata">

**Author:** ![xcoder9](https://assets.chunter.kodeco.com/user_avatar/forums.kodeco.com/xcoder9/32/42550_2.png) [@xcoder9](https://forums.kodeco.com/u/xcoder9)\
**Post date:** [September 24, 2016, 8:30am UTC](https://forums.kodeco.com/t/tutorial-renewal/20172/5 "2016-09-24T08:30:04Z")

</div>

What I was trying to say is that Xcode 8.1 is supposed to contain Swift 3 as part of the toolchain. In fact, so was version 8. Isn’t that why the tutorial was upgraded?

---

<div class="post-metadata">

**Author:** ![xcoder9](https://assets.chunter.kodeco.com/user_avatar/forums.kodeco.com/xcoder9/32/42550_2.png) [@xcoder9](https://forums.kodeco.com/u/xcoder9)\
**Post date:** [September 26, 2016, 10:20am UTC](https://forums.kodeco.com/t/tutorial-renewal/20172/6 "2016-09-26T10:20:28Z")

</div>

Okay, so whilst waiting for a response I found these lines of code on Stackoverflow to run within Xcode:

#if swift(\>=3.0)  
print(“Hello, Swift 3!”)  
#elseif swift(\>=2.2)  
print(“Hello, Swift 2.2!”)  
#elseif swift(\>=2.1)  
print(“Hello, Swift 2.1!”)  
#endif

Sure enough, the results sidebar reports “Hello, Swift 3!\n”

The question is why does Terminal identify only version 2.2?
