본문 바로가기

재수강은없다

(77)
[CS193p] Assignment 3 - Set Game 문제 번역 과제 수행 중에 원본이 영어라서 보고도 까먹는 경우가 많아 한글로 번역합니다. 영한 번역이 아니라 이해한 것을 기반으로 작성한 번역입니다. 2021년 Spring 강의입니다 원본 보러 가기 Objective 이번 과제의 목표는 새로운 애플리케이션을 처음부터 만들어보는 것입니다. 이전 2개의 과제와 매우 유사하지만 전체 경험을 얻기에는 충분히 다릅니다. Due 생략 materials 이전 강의에서 나온 코드를 사용해도 됩니다. 보드게임 Set의 규칙을 잘 확인하세요 Required Tasks 1인용 Set 게임을 구현합니다. 게임이 진행될 때, 모든 카드는 보이는 상태여야 하고 가능한 커야 합니다. 즉, 카드는 크기가 크게(작게) 보일 수도 있고 개수가 많게(적게) 나타날 수 있습니다. 카드에 최소 크기를..
[Swift] Struct 그리고 Class Struct and Class Swift에서 Struct와 Class는 유사한 점이 많습니다. 제공하는 기능에 대해서는 비슷할 수 있지만, 내부적으로는 차이점이 많이 있습니다. 본 내용은 CS193P - Developing Apps for iOS - lecture 3 MVVM 강의에 기반합니다. 공통점 변수(var)를 가질 수 있습니다. computed var를 가질 수 있습니다. 상수(let)을 가질 수 있습니다. 함수를 가질 수 있습니다. initializer를 가지고 있습니다. 차이점 1. value type(Struct) VS reference type(Class) Struct는 struct가 복사될 때, 새로운 복사된 struct를 전달합니다. Class는 인스턴스가 복사될 때, 인스턴스를 복사..
[후기] - Do it! 스위프트로 아이폰 앱 만들기 우연히 책을 살 기회가 생겨서 이참에 아이폰 개발을 해보자고 생각했습니다. 그렇게 산 책이 이 'Do it! 스위프트로 아이폰 앱 만들기 입문'이었습니다. Review 이 책은 UIKit 사용 위주로 구성되어 있습니다. SwiftUI 사용되기 시작하는 현재로서는 UIKit만을 배우는 것은 아쉽습니다. 하지만 SwiftUI Kit의 base가 UIKit인 점, 모든 것이 SwiftUI로 해결되는 것이 아닌 점을 생각해보면 UIKit을 많이 사용하고 있는 만큼 배울 가치는 크다고 생각합니다. View에 집중되어있어서, 이 책만으로는 실제 앱을 만들기에는 조금 무리가 있을 것 같습니다. 조금 더 앱 만들기에 대한 내용으로 구성되었으면 좋을 것 같습니다. 저는 이 책을 다 보고 나서 apple SwiftUI t..
[19장] pinch gesture Pinch gesture pinch gesture는 그림의 동작과 같습니다. 두 손가락의 간격을 줄이거나 늘리는 동작입니다. Pinch gesture 등록하기 Pinch Gesture는 UIPinchGestureRecognizer로 등록할 수 있습니다. class ViewController: UIViewController { @IBOutlet var imgPinch: UIImageView! var initialFontSize: CGFloat! override func viewDidLoad() { super.viewDidLoad() let pinch = UIPinchGestureRecognizer(target: self, action: #selector(ViewController.doPinch(_:))) ..
[18장] Swipe Gesture Swipe gesture는 화면을 터치한 상태에서 손가락을 미는 동작입니다. Swipe gesture 인식하기 UISwipeGestureRecognizer를 view의 gestureRecognizer에 추가하여, swipe gesture를 인식할 수 있도록 했습니다. action으로 특정한 함수를 추가하여 swipe gesture 발생 시 수행할 동작을 추가할 수 있습니다. numberOfTouchesRequired 속성을 변경해서 스와이프에 필요한 손가락 개수도 지정할 수 있습니다. class ViewController: UIViewController { let numOfTouchs = 2 override func viewDidLoad() { super.viewDidLoad() // 손가락 1개인 경우..
[17장] Tab & Touch iOS는 사용자의 터치로 대부분의 동작을 수행합니다. 터치 이벤트를 필두로 드래그, 탭 등 다양한 동작을 수행하는데요. 이러한 이벤트를 사용하는 방법에 대해 알아보도록 하겠습니다. 탭은 모바일 화면을 손가락으로 순간적으로 누르는 것을 의미합니다. 이것은 마치 마우스로 클릭하는 것처럼 느껴집니다. 탭, 터치 이벤트 메서드 작성 touchesBegan, touchesMoved, touchesEnded는 터치 이벤트가 발생했을 때 호출되는 메서드입니다. 해당 메서드들을 override 해서 원하는 동작을 수행하도록 할 수 있습니다. override func touchesBegan(_ touches: Set, with event: UIEvent?) { let touch = touches.first! as UIT..
[16장] Core graphics Core graphics 쿼츠 라이브러리를 이용하여 가벼운 2D 렌더링 작업을 수행할 수 있는 라이브러리입니다. 경로로 그림 그리기 뿐만 아니라 안티앨리어싱 렌더링, 그라디언트, 이미지, PDF 등 의 작업에도 사용됩니다. 그림 그리기 UIGraphicsBeginImageContext, UIGraphicsEndImageContext로 bitmap-based graphic context를 추가하거나 제거합니다. context를 이용해서, 선, 사각형, 원, 호를 그리거나 도형의 색깔을 채울 수 있습니다. @IBAction func btnDrawFill(_ sender: UIButton) { UIGraphicsBeginImageContext(imgView.frame.size) let context = UIG..
[15장] Camera & Photo Library 카메라와 포토 라이브러리 앱을 사용합니다. 초기 환경 세팅 카메라와 포토 라이브러리를 사용하기 위해서는 ImagePickerController의 델리게이트 프로토콜과 MobileCoreServices 헤더 파일이 필요합니다. 그리고 UIImagePickerController 인스턴스를 생성합니다. import UIKit import MobileCoreServices class ViewController: UIViewController, UINavigationControllerDelegate, UIImagePickerControllerDelegate { let imagePicker: UIImagePickerController! = UIImagePickerController() ... 사진 촬영하기 came..