Copyright ©2021 by AppCoda Limited
All right reserved. No part of this book may be used or reproduced, stored or transmitted in any manner whatsoever without written permission from the publisher.
Published by AppCoda Limited
What People Say About This Book
"This book got me an internship and a job. After one week of following this book’s tutorial, I was immediately able to begin developing my own app! 4 months later, I got an offer at Ancestry to intern as an iOS developer. Best money I ever spent!!"
- Adriana, iOS developer at Ancestry
"The Basic and Intermediate books are everything you need to understand all the concepts of design, coding, testing, and publishing an app. All you need is the idea."
- Rich Gabrielli
"I have published 8Cafe and 8Books, apps based on, and inspired by, the AppCoda Swift iOS book; it was a pleasure to learn and develop with your team. In fact, a lot of my apps/games utilise ideas and techniques from your excellent Beginner and Intermediate Swift books. To me, and a lot of developers, your talent, knowledge, expertise and willingness to share have been simply a godsend."
- Mazen Kilani, creator of 8Cafe
"I've been developing iOS apps for about a year now and am greatly indebted to the team at AppCoda. The Swift books I've purchased from them have dramatically increased my productivity and understanding of the entire Xcode and iOS development process. I've learned much more than I ever would have by scouring StackOverflow and github for hours and hours, which is what I had been doing prior to deciding to use AppCoda. All of the information is updated and accurate, simple to read and follow, and the sample projects are fantastic. I really can't recommend these books highly enough. If you're trying to jump-start your Swift education, go for it."
- David Gagne, creator of Bartender.live
"AppCoda's books are fantastic. They are clearly written, assuming no knowledge, but still push you to think for yourself and internalize the concepts. No other resource is so comprehensive."
- JP Sheehan, Ingot LLC
"The book is well written, concise, with excellent example code and real-world examples. It's really helped me get my first App on the App store, and given me many ideas for further enhancements and updates. I also use it as a reference guide ongoing as well with the language, and the updates produced as Swift and iOS change are much gratefully received."
- David Greenfield, creator of ThreadABead
"Thanks for making such an awesome book! This book helped me develop my first real app and have made $200 on the app store in less than 2 months since launch. I was also able to get a software developer job where now I am running the Mobile department. Thanks again for the great book, I always try to promote it when people ask me about learning how to code."
- Rody Davis, Developer of Pitch Pipe with Pitch Assistant
"The book is really good. I was taking other courses of Swift from Udemy and the instructor did not have much background as a developer. In your case, I know you have a good background as a developer. By the way, you explain the things."
- Carlos Aguilar, creator of Roomhints Interior Design Ideas
"For years, I'd been looking in vain for good quality resources to help sharpen my app development skills. Your books saved my life. They're the best explained programming books I've ever read in my 10 years of programming. They're so easy to understand and they hit everything. I will never thank you enough for writing the books and I owe you a lot."
- Eric Mwangi
"This book is clearly written with lots of examples. It is also great for experienced programmers new to Swift."
- Howard Smith, Flickitt
"Without this book, I couldn't become an iOS developer."
- Changho Lee, SY Energy
"I wanted to learn about iOS programming with Swift. For this, I turned to this book. It's an absolutely great way to learn Swift and iOS app development. If you have some programming background, you'll be able to do real stuff within a couple of days. But even if you do not, you'll still be able to learn to develop apps."
- Leon Pillich
"This book is the best book I have found on the Internet. It is very straightforward. I started my programming journey three years ago and currently, all my app achievement was due to this book."
- Aziz, Engineer at Kuwait Concepts
"Insightful, helpful, and motivational. The books are full of knowledge and depth of the subject, providing hints and tips on many aspects of iOS development, and encourages the student/reader to push forward and to not be afraid of seeking a deeper understanding of the concepts. Just awesome."
- Moin Ahmad, Creator of Guess Animals
"This book taught me how to build the structure for the type of app I wanted to create. The lessons are well laid out, each one is just the right length to avoid overload. I would highly recommend this book as an excellent introduction to creating your first app and beyond."
- Stephen Donnelly, Director at Rascalbiscuit
"I tried multiple learning sources including the Stanford training. Although I already did learn some topics like auto layout, delegates, segues, etc through other sources, your book was the first one that really made me understand them!"
- Nico van der Linden, SAP developer at Expertum
"Over the past three years, I have purchased more than a dozen books on Objective C and Swift. As a high school AP computer science teacher I work mainly with Java but I also teach several other programming languages so I tend to keep a large library of books on-hand. While many of the other books and online video tutorials I purchased these past years were very good, I found AppCoda's to be far above all others. Simon has a way of presenting a topic in such a manner where I felt he was teaching me in a classroom environment rather than just me reading words on a screen. The best way to describe his writing style is to say it feels like he is speaking to you, not just giving you instructions."
- Ricky Martin, Gulf Coast High School
"This was one of the easiest books I have found to learn Swift. As a beginner, it was extremely easy to follow and understand. The real-life examples you include as your work through the book and build the app being taught is genius and makes it all worth it in the end. I was able to take many things away and apply to my own apps. I find myself referring back to it many times. Great Work."
- Bill Harned, creator of Percent Off
"Best books on iOS development, well designed and easy to follow, and a great development journey companion."
- Ali Akkawi, freelancer in mobile apps development for iOS and Android
"I like the book. The contents are well structured. We have almost all of the latest concepts covered."
- Barath V, Lead iOS developer at Robert Bosch LLC
"I have purchased both the Beginning and Intermediate iOS 11 Programming with Swift books. I am a Java developer turned iOS mobile developer and these books really helped me learn the concepts of building a mobile application. The FoodPin application that you build in the Beginner book is an excellent way to learn all of the most common components of a mobile app. Even though I have now been working on iOS apps for over three years, I still regularly go back to the AppCoda swift books as a reference."
- Stacy Chang
"I probably could have done it without the book but it would've taken WAY longer and I probably wouldn't have understood what I was doing so well. If it weren't for this book my app probably won't be in the App Store right now. True story. Keep it up!"
- Marc Estwick
A couple years ago, people still asked, "Is Swift ready for app development?"
Now everyone knows Swift is the programming language to learn for developing iOS apps.
I really love this programming language, not because I teach Swift programming for a living and want you to buy my courses/books. I have been programming for over 15 years in various programming languages. Swift is my favorite language right now. This new programming language is well designed with a simplified and clean syntax. Swift is easier to learn and makes me more productive in iOS app development, as compared to the good old Objective-C.
Swift was first introduced by Apple in June 2014 and has gone through several updates. Fast forward to today, the company already released version 5.5 of the programming language along with Xcode 13 with more features. With over 7 years of development since its first release, Swift is no longer a brand new programming language. The language is now solidified, mature and ready for any application development on iOS, macOS, watchOS, as well as, tvOS. Companies like Lyft, LinkedIn, and Mozilla have been developing their apps in Swift. Whether you are planning to develop your next iOS app or you want to build a career in iOS app development, Swift is for sure the programming language to learn and use.
This book covers everything you need to learn for iOS app development. Remember, Swift is just a programming language. To develop an iOS app, you need to learn far more than that. On top of the introduction to Swift, this book will teach you how to lay out the user interface using SwiftUI and master the essential APIs of the iOS SDK. Most importantly, you will acquire the Swift programming skill by developing a real-world app from the ground up.
As an absolute beginner with no prior programming background, you may question if you could learn Swift programming and build a real iOS app.
I have been programming in Swift since it was first announced. Swift is more approachable and it is a lot easier for newbies to learn than Objective-C. Not everyone can become a great developer, but I believe everyone can learn programming and develop an app in Swift. All you need is hard work, determination, and the willingness to take actions.
I launched AppCoda about 9 years ago and started to publish iOS programming tutorials on a weekly basis. Since then, I have published several books on iOS app development. At first, I thought people, who want to learn app development, are those with programming experience and technical background. What's interesting is that people from different backgrounds are passionate to build their own apps. I have a reader from France, who is a surgeon by profession, started from zero programming experience to launching his first app, which allows anyone to share and advertise event information for free. Another reader is a pilot by profession. He began to learn iOS programming a couple years ago and is now building iPhone apps for his own use and other pilots. Boozy is an app for finding Happy Hours, Daily Deals and Brunches. It was built by a law school dropout. The creator of the app could not find a good place for a drink in DC area. So she decided to make an app to meet a real need. Similarly, she did not know coding when she came up with the idea. She just got started and learned along the way.
From time to time, I got emails from people who want to create an app. The emails usually mention something like this: "I have an app idea. Where do I begin? But I have no programming skills. Can I learn from scratch to make one?"
What I learned from these truly inspiring stories is that you don't need to have a degree in Computer Science or Engineering in order to build an app. These readers have one thing in common. They are committed to taking actions. They all put their hard work in to make things happen. This is what you need.
So you've got an idea to build an app? I believe you can make one on your own. Remember there is nothing to deter you from learning and get things done if you're really passionate about it. Let me borrow one of my favorite quotes from Last Lecture to conclude:
Brick walls are there for a reason: they let us prove how badly we want things.
- Randy Pausch
Lastly, thanks for picking up the book. I hope you will enjoy reading it and launch your first iOS app on App Store. If you'd like to share the story of your first app, drop me an email at [email protected] I would love to hear from you.
Founder of AppCoda
What You Will Learn in This Book
I know many readers have an app idea but don't know where to begin. Hence, this new book is written with this in mind. It covers the whole aspect of Swift programming and you will learn how to build a real-world app from scratch. You'll first learn the basics of Swift and SwiftUI. Then you'll start to prototype a real world app and build it from scratch. Each chapter you'll learn how to use the iOS APIs to build some features. After going through the whole book, you'll have a real app. During the process, you will learn how to exhibit data in list views, design UI using Stack Views, create animations, work on maps, build an adaptive UI, save data in local database, upload data to iCloud, use TestFlight to arrange beta test, etc.
This new book features a lot of hands-on exercises and projects. You will get the opportunities to write code, fix bugs and test your app. Although it involves a lot of work, it will be a rewarding experience. I believe it will allow you to master Swift 5.5, Xcode 15, and iOS 15 programming. Most importantly, you will be able to develop an app and release it on App Store.
This book is written for beginners without any prior programming experience and those who want to learn Swift programming. Whether you are a programmer who wants to learn a new programming language or a designer who wants to turn your design into an iOS app or an entrepreneur who wants to learn to code, this book is written for you.
I just assume you are comfortable using macOS and iOS as a user.
SwiftUI vs UIKit
The debut of SwiftUI was huge, really huge for existing iOS developers or people who are going to learn iOS app building. It was unarguably the biggest change in iOS app development in recent years. That said, beginners may be confused with these two UI frameworks. Which one should you learn or start with?
You should ask yourself why you want to learn iOS programming. What's your goal? Do you want to become a professional iOS developer and get hired? Or you just want to learn something new as a hobby?
If you want to become a professional iOS developer and look for a job, you should learn both frameworks. Most of the apps on the App Store are developed using UIKit. It is very likely you will work on an app built with UIKit if you are employed. So, you can start with UIKit, followed by SwiftUI.
On the other hand, if you take up programming as a hobby or just create an app as a side project, I suggest you to jump right into SwiftUI.
This book comes with two editions: UIKit and SwiftUI. Both editions will teach you how to build the same real world app but with different UI frameworks. If your plan is to start with SwiftUI, you can continue to read chapter 1. Otherwise, pick up the UIKit edition of the book.
To access the full version of the book, please get the full copy here. You will also be able to access the full source code of the project.