Back in 2012, Apple introduced iCloud alongside iOS 5. At the same time, the company announced that developers would have access to iCloud through a number of APIs. Up until now, developers have had three options:
In my previous post in this series, I wrote about the Model-View-Controller pattern and some of its imperfections. Despite the clear benefits MVC brings to software development, it tends to fall short in large or complex Cocoa applications.
You have worked weeks or months on your first iOS application, and you are ready to submit your masterpiece to Apple’s App Store. How do you do this? Is your application ready for submission? I am sure that some of these questions have entered your mind at one point or another.
MVC stands for Model-View-Controller, and it’s a widespread architectural pattern for software development. It’s the de facto design pattern for Cocoa development, and it has been for many, many years. Most of us can’t imagine building applications without it. Both UIKit (iOS) and AppKit (macOS) make frequent use of MVC. It almost seems as if we don’t have another option to build applications for iOS, tvOS, macOS, and watchOS.
That was quite the keynote. Don’t you think? Nobody knew what to expect, due to the absence of rumors or leaks. But I think Ispeak for many Apple developers when I say that it was a great keynote.
Enumerations are a common design pattern in many programming languages. While you may be familiar with enumerations in C and Objective-C, Swift’s implementation of enumerations is significantly more powerful and flexible. In this quick tip, you’ll learn what’s special about enumerations in Swift, how to use them in your projects, and what makes them so powerful.
In the previous lesson of Swift From Scratch, we created a functional to-do application. The data model could use some love, though. In this final lesson, we’re going to refactor the data model by implementing a custom model class.
In the previous lesson, we added the ability to create to-do items. While this addition has made the application a bit more useful, it would also be convenient to add the ability to mark items as done and delete items. That’s what we’ll focus on in this lesson.
In the previous lesson, you created a simple Swift project in Xcode, a basic to-do application. In this installment of Swift From Scratch, we’re going to add the ability to create to-do items. Along the way, you learn about actions, delegation, and properties.
If you’ve read the previous lessons of this series, you should have a good grasp of the fundamentals of the Swift programming language by now. We talked about variables, constants, and functions, and in the previous lesson we covered the basics of object-oriented programming in Swift.
If you’ve worked with blocks in C or Objective-C or lambdas in Ruby, then you won’t have a hard time wrapping your head around the concept of closures. Closures are nothing more than blocks of functionality that you can pass around in your code.
Up to now, we’ve covered the basics of the Swift programming language. If you followed along, you should now have a solid understanding of variables, constants, functions, and closures. It’s now time to use what we’ve learned and apply that knowledge to the object-oriented structures of Swift.
In the previous article, we explored the basics of functions in Swift. Functions, however, have a lot more to offer. In this article, we continue our exploration of functions and look into function parameters, nesting, and types.
To get anything done in Swift, you need to learn the ins and outs of functions. Functions are exceptionally powerful and flexible in Swift. The basics are simple, especially if you’ve worked with other programming languages before. But because of Swift’s flexible syntax, functions can become confusing if you’re not familiar with the basics.