Find online courses made by experts from around the world.
Take your courses with you and learn anywhere, anytime.
Learn and practice real-world skills and achieve your goals.
A course for developers who want to create their iOS applications using good practices, while avoiding some traditional code smells.
For first time iOS developers, this course will guide you through several parts of the the language and the API, how and why to use them properly. Avoid common iOS and developers mistakes while building a real world application. The number of applications is not the goal here: a good, well written app is what we are looking for.
In this course you will learn the basics that will allow you to understand what you are building: how and why. You don't really know something until you learn why.
If you already develop for iOS, but are tired of developing applications that are costly to mantain, tired of writing code noone else understands, or even the simplest change requires too much energy, this course will fit your needs: learn how to avoid those mistakes using features both from the language and the API.
You will learn Swift, the iOS API, good practices, design patterns and code smells. You will not just learn how to use, but understand what and why you are using it. As a newcomer, learn storyboards and view components, as a pro learn about why constants matter, why object orientation matter and more.
Understanding what is going on is the difference between a language and API user and a professional programmer. This is our goal, let's understand Swift and iOS development.
Not for you? No problem.
30 day money back guarantee.
Learn on the go.
Desktop, iOS and Android.
Certificate of completion.
|Section 1: A first app|
A project based course
ViewController, Project Navigation, UI Labels and simulating an iPhonePreview
Changing metrics: placeholder and keyboard typePreview
Interface Builder, UIButtons, and binding events with @IBActionsPreview
Variables and String interpolationPreview
Language feature discussion: type inferencePreview
Binding UI components with @IBOutlet, properties and optionalsPreview
|Section 2: The swift language|
The language, why?
The playground: Strings and the console
Constants with let, "redefining" variables
Code smell: Comments
Meal: String and Int types, type inference
Item: Double and Bool types
Defining, invoking and the result of functions
Function with parameters
|Section 3: Arrays|
Defining, initializing and randomly accessing arrays
The for loop
Iterating over an array with several for constructs
Returning values from a function and implicit typing issues
Code smell: Implicit typed arrays
|Section 4: User Interface: Tables|
Classes, objects and properties: our meal
Constants and objects
Optional properties with ?
When is being optional a bad thing?
If/else, extracting and checking for optional values
The if let construct, a safer way to access optional values
Defining optionals with !
XCode bugs and why swift non-optional default is amazingPreview
Optionals on method returns
|Section 5: Object oriented programming|
Good practice: the good citizen and initializersPreview
Good citizen: ItemPreview
One to many relationship and methods
Instantiating our meal and items
|Section 6: Language good practices applied to our project|
Creating our Meal and Item
Constants for constant valids
Organizing our project into groups
Using objects and testing for optionals
Summing up: good practices applied
As a software developer I was tired of "language tutorials" and "bad practices courses". What about you? I want my students to finish a course and become capable of judging what is good and bad for their software, both on the short and long run. They should understand what they are doing, not just make use, but own their language and tools.
I have worked as a software development educator for the past 12 years, with experience in several countries, programming languages and environments. Learning how to program should be done as we learn things in real life: with real examples and a parental guide on what is good and what is bad for us.
My mobile experience started with Java ME in the early 2000's, went through Android and I have finally reached iOS development when Swift was first announced. I was given the task to write our company's main product iOS version using Swift and that experience together with many other language and API experiences can be seen in my courses.
I have closely worked with several user groups and communities in Brazil, where I was lucky to be invited to give talks at many conferences, including QCon, AgileBrazil etc. I am also the co-organizer of a well-known brazilian mobile development conference, MobileConf.
I am the cofounder of the biggest Brazilian web site on software development questions and answers, GUJ, creator of VRaptor, a java community expert on some JSRs and cofounder of Brazilian's tech book publishing company Casa do Código.
You can find more information about my career at my linkedin page.
Finally, as a personal note, I am a language lover, feel free to find me at twitter and chat in portuguese, korean, english, french or german, or follow my korean weekly blog.