3 April 2023
Introduction:
Swift is a powerful and user-friendly programming language that is widely used in iOS, macOS, and watchOS app development. In this guide, we will provide a step-by-step tutorial on how to build a simple to-do list app using Swift programming language. We will cover the basic features of Swift, including data types, control flow, functions, and more.
Section 1: Setting Up the Project
The first step in building our to-do list app is to set up the project in Xcode. Here are the steps to follow:
Section 2: Building the User Interface
The next step is to build the user interface for our to-do list app. Here are the steps to follow:
swift
class TodoItem { var title: String var completed: Bool init(title: String, completed: Bool = false) { self.title = title self.completed = completed } }
Section 3: Implementing the To-Do List Functionality
Now that we have built the user interface, we can implement the to-do list functionality. Here are the steps to follow:
swift
class TodoList { var items: [TodoItem] init(items: [TodoItem] = []) { self.items = items } func addItem(_ item: TodoItem) { items.append(item) } func removeItem(at index: Int) { items.remove(at: index) } func toggleItemCompleted(at index: Int) { items[index].completed = !items[index].completed } }
swift
var todoList = TodoList()
swift
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return todoList.items.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "TodoItemCell", for: indexPath) let item = todoList.items[indexPath.row] cell.textLabel?.text = item.title cell.accessoryType = item.completed ? .checkmark : .none return cell }
swift
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {
// Code to delete the row goes here
} else if editingStyle == .insert {
// Code to insert a new row goes here
} else if editingStyle == .none {
// Code to handle other editing styles goes here
}
}
swift
@IBOutlet weak var newItemTextField: UITextField! @IBAction func addButtonTapped(_ sender: UIBarButtonItem) { guard let title = newItemTextField.text, !title.isEmpty else { return } let item = TodoItem(title: title) todoList.addItem(item) tableView.reloadData() newItemTextField.text = "" }
swift
func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? { let deleteAction = UIContextualAction(style: .destructive, title: "Delete") { [weak self] (action, view, completionHandler) in self?.todoList.removeItem(at: indexPath.row) tableView.deleteRows(at: [indexPath], with: .automatic) completionHandler(true) } deleteAction.backgroundColor = .red return UISwipeActionsConfiguration(actions: [deleteAction]) }
Section 4: Testing the App
Now that we have implemented the to-do list functionality, we can test the app to make sure it works as expected. Here are the steps to follow:
Conclusion:
In this guide, we have provided a step-by-step tutorial on how to build a simple to-do list app using Swift programming language. We covered the basic features of Swift, including data types, control flow, functions, and more. By following this guide, you should have a good understanding of how to build a basic iOS app using Swift programming language.
We hope you found this guide on Swift Programming Language Example: Building a To-Do List App insightful and valuable. You can learn more on JBI's Swift Training Course.
Go here if you would like to see the Swift Programming Language Official Documentation.
CONTACT
+44 (0)20 8446 7555
Copyright © 2025 JBI Training. All Rights Reserved.
JB International Training Ltd - Company Registration Number: 08458005
Registered Address: Wohl Enterprise Hub, 2B Redbourne Avenue, London, N3 2BS
Modern Slavery Statement & Corporate Policies | Terms & Conditions | Contact Us
POPULAR
AI training courses CoPilot training course
Threat modelling training course Python for data analysts training course
Power BI training course Machine Learning training course
Spring Boot Microservices training course Terraform training course