Создание простого калькулятора на Swift

Пройдите тест, узнайте какой профессии подходите и получите бесплатную карьерную консультацию
В конце подарим скидку до 55% на обучение
Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Введение

Создание простого калькулятора на Swift — это отличный способ для новичков познакомиться с основами разработки приложений для iOS. В этой статье мы подробно рассмотрим, как создать калькулятор, который сможет выполнять базовые арифметические операции: сложение, вычитание, умножение и деление. Мы пройдемся по всем этапам, начиная с настройки проекта в Xcode и заканчивая тестированием и отладкой приложения. Этот проект поможет вам не только понять основы работы с Xcode и Swift, но и научиться создавать пользовательский интерфейс с использованием Storyboard.

Пройдите тест и узнайте подходит ли вам сфера IT
Пройти тест

Настройка проекта в Xcode

Для начала нам нужно создать новый проект в Xcode. Следуйте этим шагам:

  1. Откройте Xcode и выберите "Create a new Xcode project".
  2. В появившемся окне выберите шаблон "App" и нажмите "Next".
  3. Введите имя проекта, например, "SimpleCalculator", и выберите язык "Swift".
  4. Убедитесь, что выбран User Interface "Storyboard", и нажмите "Next".
  5. Выберите место для сохранения проекта и нажмите "Create".

Теперь у вас есть готовый проект, и мы можем перейти к созданию пользовательского интерфейса. Важно убедиться, что все настройки проекта выполнены правильно, чтобы избежать проблем в будущем.

Создание пользовательского интерфейса

Создание пользовательского интерфейса — это важный этап разработки приложения. В нашем случае мы будем использовать Storyboard для создания интерфейса калькулятора.

  1. Откройте Main.storyboard.
  2. Перетащите элемент "Label" из библиотеки объектов на экран и разместите его в верхней части для отображения результатов.
  3. Добавьте кнопки для цифр (0-9) и операций (+, -, *, /, =, C) из библиотеки объектов. Разместите их в виде сетки.

Пример размещения кнопок

  • В верхней части экрана разместите Label для отображения результата.
  • Под Label создайте сетку 4x4 для кнопок цифр и операций.
  • В нижней части экрана добавьте кнопку "C" для очистки и кнопку "=" для выполнения вычислений.

Размещение элементов интерфейса должно быть удобным и интуитивно понятным для пользователя. Убедитесь, что все кнопки имеют достаточный размер и расположены таким образом, чтобы их было легко нажимать.

Реализация логики калькулятора

Теперь перейдем к написанию кода для обработки нажатий кнопок и выполнения вычислений. Этот этап включает в себя создание IBOutlet для Label и IBAction для каждой кнопки.

  1. Откройте ViewController.swift.
  2. Создайте IBOutlet для Label и IBAction для каждой кнопки.
swift
Скопировать код
import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var resultLabel: UILabel!
    
    var currentNumber: Double = 0
    var previousNumber: Double = 0
    var performingMath = false
    var operation = 0
    
    @IBAction func numbers(_ sender: UIButton) {
        if performingMath == true {
            resultLabel.text = String(sender.tag-1)
            currentNumber = Double(resultLabel.text!)!
            performingMath = false
        } else {
            resultLabel.text = resultLabel.text! + String(sender.tag-1)
            currentNumber = Double(resultLabel.text!)!
        }
    }
    
    @IBAction func buttons(_ sender: UIButton) {
        if resultLabel.text != "" && sender.tag != 11 && sender.tag != 16 {
            previousNumber = Double(resultLabel.text!)!
            
            if sender.tag == 12 { // Divide
                resultLabel.text = "/"
            } else if sender.tag == 13 { // Multiply
                resultLabel.text = "*"
            } else if sender.tag == 14 { // Subtract
                resultLabel.text = "-"
            } else if sender.tag == 15 { // Add
                resultLabel.text = "+"
            }
            
            operation = sender.tag
            performingMath = true
        } else if sender.tag == 16 {
            if operation == 12 {
                resultLabel.text = String(previousNumber / currentNumber)
            } else if operation == 13 {
                resultLabel.text = String(previousNumber * currentNumber)
            } else if operation == 14 {
                resultLabel.text = String(previousNumber – currentNumber)
            } else if operation == 15 {
                resultLabel.text = String(previousNumber + currentNumber)
            }
        } else if sender.tag == 11 {
            resultLabel.text = ""
            previousNumber = 0
            currentNumber = 0
            operation = 0
        }
    }
}

Объяснение кода

  • currentNumber и previousNumber хранят текущие и предыдущие значения, которые вводит пользователь.
  • performingMath указывает, выполняется ли в данный момент какая-либо математическая операция.
  • operation хранит текущую операцию (сложение, вычитание и т.д.), которую выбрал пользователь.
  • numbers обрабатывает нажатия кнопок цифр, обновляя значение currentNumber.
  • buttons обрабатывает нажатия кнопок операций и вычислений, обновляя значение previousNumber и выполняя соответствующие вычисления.

Этот код позволяет калькулятору выполнять базовые арифметические операции. Важно убедиться, что все кнопки связаны с соответствующими действиями в коде.

Тестирование и отладка

Теперь, когда логика калькулятора реализована, необходимо протестировать приложение, чтобы убедиться в его корректной работе. Тестирование включает в себя проверку всех возможных сценариев использования приложения.

  1. Запустите проект на симуляторе или реальном устройстве.
  2. Проверьте, что все кнопки работают корректно и выполняют соответствующие операции.
  3. Убедитесь, что приложение корректно обрабатывает деление на ноль и другие возможные ошибки.

Советы по отладке

  • Используйте точки останова (breakpoints) в Xcode для отслеживания значений переменных. Это поможет вам понять, где может возникнуть ошибка.
  • Проверяйте консоль на наличие ошибок и предупреждений. Консоль может предоставить полезную информацию о проблемах в коде.
  • Тестируйте различные сценарии использования, чтобы убедиться в стабильности приложения. Например, попробуйте выполнить несколько операций подряд или ввести некорректные данные.

Теперь у вас есть работающий калькулятор на Swift! 🎉 Этот проект поможет вам лучше понять основы разработки приложений для iOS и научит работать с Xcode, Storyboard и Swift. Удачи в дальнейших проектах! 🚀