[10/16] iOS 앱 개발 올인원 패키지 1일차

Dino·2022년 10월 16일
0

패스트캠퍼스

목록 보기
1/4

첫 앱 만들기

ViewController 개념

ViewController 역할

  • 스크린 하나를 관리한다
    * 페이지당 ViewController 하나

    ViewController는 Design과 Code 두가지 파트로 나뉜다

Xcode에서 알럿 띄워보기

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    @IBAction func hello(_ sender: Any) {
        let alert = UIAlertController(title: "Hello", message: "My Frist App!!", preferredStyle: .alert) // UIAlertController으로 팝업을 만듬
        let action = UIAlertAction(title: "OK", style: .default, handler: nil)
        alert.addAction(action) // Button은 UIAlertAction을 가지고 만들고
        present(alert, animated: true, completion: nil) // present을 통해서 알럿을 띄운다
    } 
}


Button을 누르면 알럿이 나온며 OK 버튼을 누르면 알럿이 꺼진다

xcode에서 문제가 발생했을때 해결하기

첫번째 : 오타가 발생 했을 때 (자동완성 기능을 사용해주면 좋다)
두번재 : 대소문자 구분
세번째 : 바운더리를 나가서 작성 안되록 주의
네번째 : 버튼이 연결된 함수가 맞는지 확인(다르면 앱이 죽는다)
다섯번째 : 변형되지 않는 변수는 var가 아닌 let으로 해야한다(애플에서 let을 추천한다)

View 구성하기

View

모든 뷰 컴퍼넌트는 UIKi이라는 프레임 워크 안에 있다

  • UIKit : UI 컴퍼넌트를 만들때 필요한 것을 찾아서 만들 수 있는 공구함

View 좌표

스크린에 좌측 상단이 기준이다

X축은 오른쪽으로 갈 수 록 점점 커지고 Y축은 아래로 갈 수 록 점점 커진다

앱 동작방식의 이해

  • 앱은 여러개의 오브젝트로 구성되어 있다
  • 오브젝트를 만들 때도 있다
  • 오브젝트 끼리 서로 메세지를 보내 커뮤니케이션을 한다
  • iOS 앱은 이벤트에 의해 프로세스가 동작한다

오브젝트 이해하기

Odject는 특정 일을 수행 한다 Object의 구성은 데이터와 메소드로 구성되어 있다.

String Variable 이해하기

String and Variable

  • String은 문자열의 나열이다
  • Variable은 어떤 값을 저장할 수 있는 공간

아울렛 연결하기

import UIKit

class ViewController: UIViewController {
    
    var currentValue = 0

    @IBOutlet weak var priceLable: UILabel!
    // view에 있는 lable을 아울렛에 연결
    override func viewDidLoad() {
        super.viewDidLoad()
        priceLable.text = "₩ \(currentValue)"
        // text 업데이트
    }
    
    @IBAction func showAlert(_ sender: Any) {
        let message = "가격은 \(currentValue) 입니다"
        
        let alert = UIAlertController(title: "Bye", message: message, preferredStyle: .alert) // UIAlertController으로 팝업을 만듬
        let action = UIAlertAction(title: "OK", style: .default, handler: nil)
        alert.addAction(action) // Button은 UIAlertAction을 가지고 만들고
        present(alert, animated: true, completion: nil) // present을 통해서 알럿을 띄운다
        
        let randomPrice = arc4random_uniform(10000) + 1
        // 1 ~ 10000 사이에 랜덤 숫자를 생성
        currentValue = Int(randomPrice)
        priceLable.text = "₩ \(currentValue)"
        // Refresh를 누를때마다 text 업데이트
    }
    
}

변수와 상수 이해하기

variable vs. Constant

var vs. let

  • var : variable
  • let : Constant

var, let 차이점
값이 있는 상태에서 var는 안에 value는 변경할 수 있고 let은 변경할 수 없다

메소드 작성하기

중복 코드가 있으면 메소드를 만들어 사용한다

  • 메소드를 만들기 전
import UIKit

class ViewController: UIViewController {
    
    var currentValue = 0

    @IBOutlet weak var priceLable: UILabel!
    // view에 있는 lable을 아울렛에 연결
    override func viewDidLoad() {
        super.viewDidLoad()
        let randomPrice = arc4random_uniform(10000) + 1
        // 1 ~ 10000 사이에 랜덤 숫자를 생성
        currentValue = Int(randomPrice)
        priceLable.text = "₩ \(currentValue)"
        // text 업데이트
    }
    
    @IBAction func showAlert(_ sender: Any) {
        let message = "가격은 \(currentValue) 입니다"
        
        let alert = UIAlertController(title: "Bye", message: message, preferredStyle: .alert) // UIAlertController으로 팝업을 만듬
        let action = UIAlertAction(title: "OK", style: .default, handler: nil)
        alert.addAction(action) // Button은 UIAlertAction을 가지고 만들고
        present(alert, animated: true, completion: nil) // present을 통해서 알럿을 띄운다
        
        let randomPrice = arc4random_uniform(10000) + 1
        // 1 ~ 10000 사이에 랜덤 숫자를 생성
        currentValue = Int(randomPrice)
        priceLable.text = "₩ \(currentValue)"
        // Refresh를 누를때마다 text 업데이트
    }
}

  • 메소드를 만든 후
import UIKit

class ViewController: UIViewController {
    
    var currentValue = 0

    @IBOutlet weak var priceLable: UILabel!
    // view에 있는 lable을 아울렛에 연결
    override func viewDidLoad() {
        super.viewDidLoad()
        refresh()
    }
    
    @IBAction func showAlert(_ sender: Any) {
        let message = "가격은 \(currentValue) 입니다"
        
        let alert = UIAlertController(title: "Bye", message: message, preferredStyle: .alert) // UIAlertController으로 팝업을 만듬
        let action = UIAlertAction(title: "OK", style: .default, handler: nil)
        alert.addAction(action) // Button은 UIAlertAction을 가지고 만들고
        present(alert, animated: true, completion: nil) // present을 통해서 알럿을 띄운다
        refresh()
    }
    
    func refresh() { // 중복 코드가 있으면 메소드를 만들어 사용한다
        let randomPrice = arc4random_uniform(10000) + 1
        // 1 ~ 10000 사이에 랜덤 숫자를 생성
        currentValue = Int(randomPrice)
        priceLable.text = "₩ \(currentValue)"
    }
}

완성된 앱 화면

참고 : FastCampus iOS 앱 개발 올인원 패키지

profile
깃허브 : https://github.com/Hangga99

0개의 댓글