스파르타 코딩 클럽 ☝🏻 - 1 주차

DaY·2021년 6월 28일

스파르타코딩클럽

목록 보기
2/37
post-thumbnail

iOS 앱개발 기초반 - 1 주차

[수업 목표]

  1. iOS 개발의 시작과 끝, Xcode 개발툴 익숙해지기
  2. 스토리보드(화면 만들기) 기초 다지기
    1) UI 컴포넌트 이해하기
    : 라벨 (UILabel), 이미지뷰 (UIImageView), 버튼 (UIButton)
    2) 이미지 에셋을 관리하는 방법 익히기
    3) @IBAction 과 @IBOutlet 연결하는 방법 익히기
  3. Swift 기본 문법 익히기
  4. 스크린 손전등 앱 만들기

01. 파일 관리

  • 폴더 / 파일이 어떤 기능을 하는지 파악할 수 있도록 작성
  • 협업 시 함께 정한 규칙대로 관리
  • 특수문자는 "-"만 사용

02. 필수 프로그램 설치

Xcode 다운로드

03. 개발 도구 사용 & 스토리보드 써보기

04. 빌드

단축키 (command + r)

실제 아이폰에 앱 빌드하기

개발자 등록을 할 필요 X ($99) but 제약사항

  1. 한 번에 하나의 앱만 설치 가능
  2. 아이폰에서 해당 개발자에 대해서 신뢰하기 설정
  1. Xcode에 애플 로그인
  • Xcode 상단 Xocde -> Preferences...

  • Accounts에서 Apple ID 넣기 (왼쪽 하단 + 버튼)

  • Apple ID 선택하고 로그인

  1. 프로젝트를 로그인한 아이디로 설정
  • 프로젝트 설정 -> Targets에서 해당 앱 -> Signing & Capabilities

  • Automatically manage signing 체크 + Team에 로그인한 아이디 선택

  1. 아이폰을 연결하고 빌드 대상을 해당 아이폰으로 선택

  2. 오류

앱 개발자 등록 시, 오류 발생 X

Could not launch "App name" 이라는 오류가 발생한다면 ...

  • 아이폰 설정 -> 기기관리 -> ...

  • App Development: ... 선택 -> 신뢰

Unable to install "App name" 이라는 오류가 발생한다면 ...

  • 이전에 설치한 어플 삭제 후 다시 빌드

05. 이미지뷰와 이미지 에셋

  1. 네비게이션 탭에서 Assets.xcassets 선택

  2. 하단의 + 버튼을 눌러 Image Set 선택

  3. 이미지를 1x에 넣기

해상도
배수(scale factor)가 늘어날수록 선명해진다.

iOS에서는 포인트(Point) 단위를 사용하여 픽셀(Pixel)과 다르게 해상도가 높아져도 포인트에 변화 X

이미지 편집 사이트에서 자동으로 1x부터 3x 이미지 생성

06. Swift 맛보기

  • Assistant 화면 띄우기 단축키 (command + option + control + Enter)

  • Build and run 단축키 (command + r)

  • Connection
    Label 또는 ImageView를 control 키와 함께 드래그해서 코드에 연결해준다.

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var flash: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

}

07. Swift 기초 문법 - 변수 선언과 기본 데이터 타입

  • var로 변수를 선언
    • 변수명 형식 - 코딩 컨벤션 (코딩 규칙, coding convention)
    • snake case : 단어를 _ 로 연결
      var first_name = "Dayeong"
    • camel case : 단어가 연결되는 부분의 첫 글자를 대문자로 작성
      var firstName = "Dayeong"
  • 사칙연산
var num1 = 11
var num2 = 20

print(num1 + num2) // 31
print(num1 * num2) // 220
print(num2 / num1) // 1
var firstName = "Dayeong"
var lastName = "Lee"

print(firstName + " " + lastName) // Dayeong Lee
print("\(firstName)~\(lastName)") // Dayeong~Lee
  • 참 거짓 True False 자료형
var birth = 1120
var isTrue = (birth == 1120) // True
var isFalse = (birth != 1120) // False

print(isTrue && isFalse) // False
print(isTrue || isFalse) // True
  • && || 구분

08. Swift 기초 문법 - 리스트, 딕셔너리, 함수

  • 리스트 (List) : 순서를 가지고 있는 형태
var sampleList: [Int] = [] // 빈 리스트 선언
var sampleList = [1, 2, 3, 4]

print(sampleList[0]) // 1
sampleList.append(5) // 리스트 요소 추가
print(sampleList.count) // 5
  • 딕셔너리 (Dictionary) : 키 - 값이 쌍을 이루고 있는 형태
var sampleDict: [String: String] = [:] // 빈 딕셔너리 선언
var sampleDict: [String: String] = ["name": "Dayeong", "birth": "1120"]

print(sampleDict["name"]) // Dayeong
sampleDict["city"] = "Seoul"
print(sampleDict) // ["name": "Dayeong", "birth": "1120", "city": "Seoul"]
  • 함수
func 함수이름(필요한 변수 & 타입) -> 반환할 변수 타입 {
  명령어들 순차적 작성
  return 결과값
}

결과값 = 함수이름(필요한 변수)

// 반환할 별수 타입이 없으면 '->' 생략
func 함수이름(필요한 변수 & 타입) {
  명령어 순차적 작성
}

09. Quiz

Q. 숫자를 하나 받아 짝수, 홀수 구별 함수 & 출생년도와 계산하고 싶은 연도를 입력받아 연령대 계산 함수

ex) isEven(num: 10) -> True
ex) calculateAgeRange(calYear: 2021, birthYear: 1993) -> 20대

A.

func isEven(num: Int) -> Bool {
  var result = num %2
  return result == 0
}

func calculateAgeRange(calYear: Int, birthYear: Int) -> String {
  var age = calYear - birthYear
  var result = age / 10
  return "\(result)0 대"
}

0개의 댓글