Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon
Learning Swift
Learning Swift

Learning Swift: Build a solid foundation in Swift to develop smart and robust iOS and OS X applications

Arrow left icon
Profile Icon Andrew J Wagner
Arrow right icon
$19.99 per month
Full star icon Full star icon Full star icon Full star icon Half star icon 4.8 (5 Ratings)
Paperback Jun 2015 266 pages 1st Edition
eBook
$27.98 $39.99
Paperback
$48.99
Subscription
Free Trial
Renews at $19.99p/m
Arrow left icon
Profile Icon Andrew J Wagner
Arrow right icon
$19.99 per month
Full star icon Full star icon Full star icon Full star icon Half star icon 4.8 (5 Ratings)
Paperback Jun 2015 266 pages 1st Edition
eBook
$27.98 $39.99
Paperback
$48.99
Subscription
Free Trial
Renews at $19.99p/m
eBook
$27.98 $39.99
Paperback
$48.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing
Table of content icon View table of contents Preview book icon Preview Book

Learning Swift

Chapter 1. Introducing Swift

A programming language is really only ever a means to an end, and you are not going to learn much from this book or any other resource if you don't have at least some idea of what that end is. Before diving into learning Swift, we have to understand what it really is and how it will help us achieve our goals. We also need to move forward with an effective learning technique and get a taste of what is to come. To do all this, we will go over the following topics:

  • Defining our goals for this book
  • Setting up the development environment
  • Running our first Swift code
  • Understanding playgrounds
  • Learning with this book

Defining our goals for this book

Swift is a programming language developed by Apple to allow developers to continue pushing their platforms forward. It is their attempt to make iOS and OS X app development more modern, safe, and powerful.

Developers have already begun looking for ways to push Swift to do even more than iOS and OS X app development. Some are using it to create command-line scripts to replace/supplement the existing scripting languages, such as Python and Ruby. However, Apple's priority, at least for now, is to make it the best language possible to facilitate app development.

It is important to note that learning Swift is only the first step towards developing Apple's platforms. To develop a device, you must learn the programming language and the frameworks that the device maker provides. Skill in a programming language is the foundation to get better at using frameworks, and ultimately building apps.

Developing software is like building a table. You can learn the basics of woodworking and nail a few pieces of wood together to make a functional table, but you are very limited in what you can do because you lack advanced woodworking skills. If you want to make a truly great table, first, you need to step away from the table and focus on developing your skill set. The better you are at using the tools, the more possibilities open up to you to create more advanced and high quality furniture. Similarly, with very limited knowledge of Swift, you can start to piece together a functional app from the code you find online. However, to really make something great, you have to put the time and effort into refining your language-related skill set. Every language feature or technique that you learn opens up more possibilities for your app.

That being said, most developers are driven by a passion to create things and solve problems. We learn best when we can channel our passions into truly improving ourselves and the world around us. We wouldn't want to get stuck learning the minutia of a language with no practical purpose.

The goal of this book is to develop your skills and confidence to dive passionately into creating compelling, maintainable, and elegant apps with Swift. To do this, we will introduce the syntax and features of Swift in a practical way. You will build up a rich toolset, and see it being put to real-world usage. So, without further ado, let's jump right into setting up our development environment.

Setting up the development environment

In order to use Swift, you will need to have a Mac running OS X. The only piece of software you will need is called Xcode (version 6 and higher). This is the environment that Apple provides to facilitate development for its platforms. You can download Xcode for free from the Mac App Store at www.appstore.com/mac/Xcode.

Once downloaded and installed, you can open the app and it will install the rest of Apple's developer tool components. It is as simple as that! We are now ready to run our first piece of Swift code.

Tip

Downloading the example code

You can download the example code files for all Packt books you have purchased from your account at http://www.packtpub.com. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.

Running our first Swift code

We will start by creating a new Swift playground. As the name suggests, a playground is a place where you can play around with code. With Xcode open, navigate to File | New | Playground from the menu bar, as shown here:

Running our first Swift code

Name it MyFirstPlayground, leave the platform as iOS, and save it wherever you like.

Once created, a playground window will appear with some code already populated inside it for you:

Running our first Swift code

You have already run your first Swift code! A playground in Xcode runs your code every time you make a change and shows you the code results along the right-hand side of the sidebar.

Let's break down what this code is doing. The first line is a comment that is ignored while being run. It can be really useful to add extra information about your code there inline with it. In Swift there are two types of comments: single line and multiline. Single line comments such as the one in the previous code always start with //. You can also write comments that span multiple lines by surrounding them with /* and */. For example:

/*
   This is a multi-line comment
   that takes up more than one line
   of code
*/

The second line, import UIKit, imports a framework called UIKit. UIKit is the name of Apple's framework for iOS development. For this example, we are not actually making use of the UIKit framework, so it is safe to completely remove that line of code.

Finally, on the last line, the code defines a variable called str that is being assigned to the text "Hello, playground". In the results sidebar, next to the last line, you can see that "Hello, playground" was indeed stored in the variable. As your code becomes more complex, this will become incredibly useful to help you track and watch the state of your code as it is run. Every time you make a change to the code, the results will be updated, showing you the consequences of the change.

If you are familiar with other programming languages, many of them require some sort of line terminator. In Swift, you do not need anything like that.

Another great thing about Xcode playgrounds is that they will show you errors as you type them in. Let's add a third line to the playground:

   var str = "Something Else"

On its own, this Swift code is completely valid. It stores the text "Something Else" into a new variable called str. However, when we add this to the playground, we are shown an error in the form of a red exclamation mark next to the line number. If you click on the exclamation mark, you are shown the full error:

Running our first Swift code

This line is highlighted in red and we are shown the error Invalid redeclaration of 'str'. This is because you cannot declare two different variables with the exact same name. Also, notice that the results along the right-hand side turned gray instead of black. This indicates that the result being shown is not from the latest code, but from the last successful run of the code. The code cannot be successfully run to create a new result because of the error. Instead if we change the second variable to strTwo, the error goes away:

Running our first Swift code

Now the results are shown in black again and we can see that they have been updated for the latest code. If you have experience with other programming environments, the reactiveness of the playground may surprise you. Let's take a peek under the hood to better understand what is happening and how Swift works.

Understanding playgrounds

A playground is not actually a program. While it does execute code like a program, it is not really useful outside of the development environment. Before we can understand what the playground is doing for us, we must first understand how Swift works.

Swift is a compiled language, which means that for Swift code to be run, it must first be converted into a form that the computer can actually execute. The tool that does this conversion is called a compiler. A compiler is itself a program and it is one way to define a programming language.

The Swift compiler accepts Swift code as input, and if it can properly parse and understand the code, it outputs machine code. Apple developed the Swift compiler to understand the code according to a series of rules. Those rules are what define the Swift programming language and what we are trying to learn when we say we are learning Swift.

Once the machine code is generated, Xcode can wrap up the machine code inside an app that users can run. However, we are running Swift code inside our playground, so building an app is clearly not the only way to run code.

Every time you make a change to a playground, it automatically tries to compile your code. If it is successful, instead of wrapping up the machine code in an app to be run later, it runs the code immediately and shows you the results. If you have to perform this process yourself, you would first have to consciously make the decision to build the code into an app and then run it when you want to test something. This would be a huge waste of time, especially if you write an error that you don't catch until the moment you decide to actually run it. The quicker you can see the result of a code change, the faster you will be at developing the code, and the fewer mistakes you will make.

For now, we will develop all of our code inside a playground because it is a fantastic learning environment. Playgrounds are even more powerful than what we have seen so far, and we will see this as we delve deeper into the Swift language.

We are just about ready to get to the meat of learning Swift, but first let's take a moment to ensure that you can get the most out of this book.

Learning with this book

The learning process for this book follows very closely to the philosophy behind playgrounds. You will get the most out of this book if you play around with the code and ideas that we discuss. Instead of just passively reading through this and glancing at the code, put the code into a playground and observe how it really works. Make changes to the code, try to break it or extend it, and you will learn far more. If you have a question, try it out before looking up the answer.

At its core, programming is a creative exercise. Yes, it requires the ability to think logically through a problem, but 9 times out of 10 there is no right way, there is no correct answer. Technology is pushed by those of us who won't settle for the accepted solution, who aren't ok with following a fixed set of instructions, who want to push the boundaries. As we move forward learning Swift, make this book and Swift work for you by not taking everything at face value.

Summary

We're off to a good start. We've gone over how Swift is a language designed for app development and we already ran our first code. We learned a little bit about how a computer runs our Swift code indirectly by first compiling it into a form it understands. Most importantly, we've learned that you will learn best from this book by having a goal to work towards and by playing around with the concepts as you read along. So let's get started!

Left arrow icon Right arrow icon

Description

If you are looking to build iOS or OS X apps using the most modern technology, this book is ideal for you. You will find this book especially useful if you are new to programming or if you have yet to develop for iOS or OS X.

Who is this book for?

If you are looking to build iOS or OS X apps using the most modern technology, this book is ideal for you. You will find this book especially useful if you are new to programming or if you have yet to develop for iOS or OS X.

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Jun 30, 2015
Length: 266 pages
Edition : 1st
Language : English
ISBN-13 : 9781784392505
Vendor :
Apple
Category :
Languages :

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing

Product Details

Publication date : Jun 30, 2015
Length: 266 pages
Edition : 1st
Language : English
ISBN-13 : 9781784392505
Vendor :
Apple
Category :
Languages :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total $ 147.97
Mastering Swift
$54.99
Learning Swift
$48.99
Swift By Example
$43.99
Total $ 147.97 Stars icon
Banner background image

Table of Contents

12 Chapters
1. Introducing Swift Chevron down icon Chevron up icon
2. Building Blocks – Variables, Collections, and Flow Control Chevron down icon Chevron up icon
3. One Piece at a Time – Types, Scopes, and Projects Chevron down icon Chevron up icon
4. To Be or Not to Be – Optionals Chevron down icon Chevron up icon
5. A Modern Paradigm – Closures and Functional Programming Chevron down icon Chevron up icon
6. Make Swift Work for You – Protocols and Generics Chevron down icon Chevron up icon
7. Everything is Connected – Memory Management Chevron down icon Chevron up icon
8. Writing Code the Swift Way – Design Patterns and Techniques Chevron down icon Chevron up icon
9. Harnessing the Past – Understanding and Translating Objective-C Chevron down icon Chevron up icon
10. A Whole New World – Developing an App Chevron down icon Chevron up icon
11. What's Next? Resources, Advice, and Next Steps Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Full star icon Full star icon Half star icon 4.8
(5 Ratings)
5 star 80%
4 star 20%
3 star 0%
2 star 0%
1 star 0%
Ronnie Pitman Aug 16, 2015
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This is not a huge, thick book, but it is a book packed with information. In the Preface it is written that this book is “especially useful if you are new to programming or….” While it’s true that Chapter 2 does start with the basics—variables, constants, tuples, arrays, dictionaries, etc.—the material moves on quickly. All concepts, throughout the book, are amply demonstrated in Playgrounds, but still, someone new to programming will have to pay close attention and probably reread portions. In at least two chapter summaries, the author himself refers to the material presented as having been dense. It’s good to have a book that deals in depth.Many programming books teach Swift in the context of iOS. This one does not but instead concentrates on Swift language fundamentals. It’s not a tutorial on how to build this or that app, and only in the penultimate chapter does the author address iOS and building an app.Many programming books also jam a great deal of code into one class. This author places a premium on code reuse and flexibility and writes his code accordingly.A note on the book’s code files: at the time I write this, if you download them from the publisher website they download as Learning Swift.zip.html. Unless Packt knows something I don’t know, you have to strip .html off the file name for it to open as a zip file rather than as gibberish.A small error in Chapter 2 (pdf page 13): “View | Assistant Editor | Assistant Editor” should be “View | Assistant Editor | Show Assistant Editor”. Otherwise this book is admirably edited and proofread.
Amazon Verified review Amazon
Aurélien Sep 02, 2015
Full star icon Full star icon Full star icon Full star icon Full star icon 5
What this book is not:This book is not a Bible, it does not deal with countless topics, it is not either a how-to guide to programming your first Iphone app. "Learning Swift" is not packed with information easily googled and deprecated within the next 6 months.What it is:Instead "Learning Swift" focuses on how to understand Swift programming, how the language is structured and how it works.It gives the keys to become a good swift developper by understanding the core concepts, while being concrete at every step of the process.A whole chapter is dedicated to Design Patterns, and even chapter 10 "Developing an App" is full of good advices on how to code properly and how to refactor your code.
Amazon Verified review Amazon
Winston Sep 05, 2015
Full star icon Full star icon Full star icon Full star icon Full star icon 5
The author does a great job of taking the reader through all the intricacies of the swift programing language. Apple is now in Swift 2 and this book will put any novice or experienced developer in the drivers seat to building award winning ios apps. Buy it!
Amazon Verified review Amazon
Sergio Martinez-Losa del Rincon Aug 14, 2015
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This book is a very nice one to learn swift from scratch, it is useful information from easy topic to difficult ones, you can learn many useful thinks like categories, interpolation, infix/postfix, optionals...Patterns chapter is very handy, because you can reuse your programming techniques to create a more easy code. Also I found very useful optionals information.I learn a lot with this book, it deserves a 5-stars.
Amazon Verified review Amazon
Michael Aug 28, 2015
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
I am new to learning Mac and iOS programming. This book is great even though I've only gotten through a couple chapters. It starts out with the basics of types, collections, conditionals and loops and builds on that.One note, this book was written for XCode 6 and Swift 1.2 so it will hopefully be updated for XCode 7 and Swift 2 when they are released since some of the basic functions are changing, for example the println() function is replaced by print(). The beta for XCode 7 does have functionality to convert the 1.2 to 2.0 code. Hopefully that will be in the final build of XCode 7.I look forward to getting deeper into learning Swift.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is included in a Packt subscription? Chevron down icon Chevron up icon

A subscription provides you with full access to view all Packt and licnesed content online, this includes exclusive access to Early Access titles. Depending on the tier chosen you can also earn credits and discounts to use for owning content

How can I cancel my subscription? Chevron down icon Chevron up icon

To cancel your subscription with us simply go to the account page - found in the top right of the page or at https://subscription.packtpub.com/my-account/subscription - From here you will see the ‘cancel subscription’ button in the grey box with your subscription information in.

What are credits? Chevron down icon Chevron up icon

Credits can be earned from reading 40 section of any title within the payment cycle - a month starting from the day of subscription payment. You also earn a Credit every month if you subscribe to our annual or 18 month plans. Credits can be used to buy books DRM free, the same way that you would pay for a book. Your credits can be found in the subscription homepage - subscription.packtpub.com - clicking on ‘the my’ library dropdown and selecting ‘credits’.

What happens if an Early Access Course is cancelled? Chevron down icon Chevron up icon

Projects are rarely cancelled, but sometimes it's unavoidable. If an Early Access course is cancelled or excessively delayed, you can exchange your purchase for another course. For further details, please contact us here.

Where can I send feedback about an Early Access title? Chevron down icon Chevron up icon

If you have any feedback about the product you're reading, or Early Access in general, then please fill out a contact form here and we'll make sure the feedback gets to the right team. 

Can I download the code files for Early Access titles? Chevron down icon Chevron up icon

We try to ensure that all books in Early Access have code available to use, download, and fork on GitHub. This helps us be more agile in the development of the book, and helps keep the often changing code base of new versions and new technologies as up to date as possible. Unfortunately, however, there will be rare cases when it is not possible for us to have downloadable code samples available until publication.

When we publish the book, the code files will also be available to download from the Packt website.

How accurate is the publication date? Chevron down icon Chevron up icon

The publication date is as accurate as we can be at any point in the project. Unfortunately, delays can happen. Often those delays are out of our control, such as changes to the technology code base or delays in the tech release. We do our best to give you an accurate estimate of the publication date at any given time, and as more chapters are delivered, the more accurate the delivery date will become.

How will I know when new chapters are ready? Chevron down icon Chevron up icon

We'll let you know every time there has been an update to a course that you've bought in Early Access. You'll get an email to let you know there has been a new chapter, or a change to a previous chapter. The new chapters are automatically added to your account, so you can also check back there any time you're ready and download or read them online.

I am a Packt subscriber, do I get Early Access? Chevron down icon Chevron up icon

Yes, all Early Access content is fully available through your subscription. You will need to have a paid for or active trial subscription in order to access all titles.

How is Early Access delivered? Chevron down icon Chevron up icon

Early Access is currently only available as a PDF or through our online reader. As we make changes or add new chapters, the files in your Packt account will be updated so you can download them again or view them online immediately.

How do I buy Early Access content? Chevron down icon Chevron up icon

Early Access is a way of us getting our content to you quicker, but the method of buying the Early Access course is still the same. Just find the course you want to buy, go through the check-out steps, and you’ll get a confirmation email from us with information and a link to the relevant Early Access courses.

What is Early Access? Chevron down icon Chevron up icon

Keeping up to date with the latest technology is difficult; new versions, new frameworks, new techniques. This feature gives you a head-start to our content, as it's being created. With Early Access you'll receive each chapter as it's written, and get regular updates throughout the product's development, as well as the final course as soon as it's ready.We created Early Access as a means of giving you the information you need, as soon as it's available. As we go through the process of developing a course, 99% of it can be ready but we can't publish until that last 1% falls in to place. Early Access helps to unlock the potential of our content early, to help you start your learning when you need it most. You not only get access to every chapter as it's delivered, edited, and updated, but you'll also get the finalized, DRM-free product to download in any format you want when it's published. As a member of Packt, you'll also be eligible for our exclusive offers, including a free course every day, and discounts on new and popular titles.