Skip to content

25thSoptiOS/YoonDongMin

Repository files navigation

YoonDongMin

FirstWeek

1️⃣ Soptstagram 화면 만들기

  • UI요소 둥글게 만들기
@IBOutlet weak var profileImage: UIImageView!

profileImage.layer.cornerRadius = profileImage.frame.width * 0.5
profileImage.clipsToBounds = true   // true로 설정하게 되면 안의 내용들이 잘리게 된다. 즉, View를 기준으로 																				내용들이 나타난다.
profileImage.layer.masksToBounds = false // 위와 똑같은 내용

실행화면

Second Week

1️⃣ Segue이용 데이터 전달

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
  // 다음화면의 identifier을 받아온다
  guard let identifier = segue.destination else { return }
  // identifier에 해당하는 ViewContoller 레퍼런스를 생성한다.
  if identifier == "purple" {
    guard let purple = segue.destination as? PurpleViewController else { return }
    purple.data = "보라색"
  } else {
    guard let green = segue.destination as? GreenViewController else { return }
    green.data = "녹색"
  }
}

실행화면

2️⃣ Segue이용 하지 않고 데이터 전달

guard let controller = self.storyboard?.instantiateViewController(identifier: "Recieve") as? RecieveViewController else { return } // instantiateViewController(identifier:) 메소드로 																						 "Recieve"을 Identifier로 가진 Controller 생성
controller.modalPresentationStyle = .fullScreen
controller.email = textField.text
controller.onOff = renewSwitch.isOn
controller.term = turmSwitch.value

self.present(controller, animated: true, completion: nil) // controller 화면으로 전환

실행화면

3️⃣ AutoLayOut이용 화면 구성

// 옵저버 패턴 활용 TextField 가리는 문제 해결
private func addKeyboardObserver() {
  // UIResponder.keyboardWillShowNotification에 해당하는 이벤트 발생 시 작동
  NotificationCenter.default.addObserver(self, selector: #selector(upKeyboard), name: UIResponder.keyboardWillShowNotification, object: nil)
  // UIResponder.keyboardDidHideNotification에 해당하는 이벤트 발생 시 작동
  NotificationCenter.default.addObserver(self, selector: #selector(downKeyboard), name: UIResponder.keyboardWillHideNotification, object: nil)
}

@objc func upKeyboard() {
  self.view.frame.origin.y = UtilValue.keyboardHeight
}

@objc func downKeyboard() {
  self.view.frame.origin.y = 0
}

실행 화면

4️⃣ Calculator

  • Custom View 만들어서 사용하기
class InputView: UIView {
  // Interface Builder를 이용하여 사용할 때, 호출되는 init
  override init(frame: CGRect) {
  	super.init(frame: frame)
    initailView()
  }
  
  // 코드를 통해 View를 만들 때, 호출되는 init
  required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    initalView()
  }
  
  private func initailView() {
    // inputView 이름을 가진 class를 IB로 load해오는 코드
    guard let view = Bundle.main.loadNibNamed(NibNames.inputView, owner: self, options: nil)?.first as? UIView else { return }
    view.frame = self.bounds
    self.addSubview(view)
	}
}

실행화면

Third Week

1️⃣ ScrollView, CollectionView 활용 Main View 만들기

class MainViewController: UIViewController {
  @IBOutlet weak var bannerCollectionView: UICollectionView!
  
  override func viewDidLoad() {
    bannerCollectionView.dataSource = self 				// Cell의 Data 관련
    bannerCollectionView.delegate = self					// Cell의 크기, 이벤트등
  }
}

extension MainViewController: UICollectionViewDataSource {} //꼭 구현해야하는 기능 구현
extension MainViewController: UICollectionViewDelegate {}

실행화면

Fourth Week

1️⃣ Alamorfire 이용 서버 통신

✅ Login Service

실행화면

✅ Signup Service ( 다음과 같이 Signup 실행 )

screen

실행화면

Five Week

1️⃣ 디자인 합동 세미나

✅ View 구현하기

실행화면

Six Week

1️⃣ 서버 합동 세미나

따릉이 뷰에 맞는 서버 데이터 통신하기

  1. 구현 데이터

    ➡️ Login View 구현해 로그인 및 회원가입 구현

    ➡️ 회원정보 관리 메뉴 클릭 시, 간단한 개인 정보 받아오기

    ➡️ 홈 화면에서 각 따릉이 Index 별로 자전거 수 받아오기

Last Week

1️⃣ SNS 연동 로그인 구현

✅ FaceBook 연동 로그인

  1. 구현

➡️ Facebook 개발자 문서 확인하여 차례대로 따라하기 (카카오톡, 네이버 등)

실행화면

About

윤동민

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •