본문 바로가기

iOS 앱 개발자 프로젝트/iOS 입문

[iOS] Connecting the VCs w/ instantiateViewController segue를 이용한 화면전환에 이어, instantiateViewController를 이용한 화면전환을 연습해봅니다. 첫 화면에 PLUS, MINUS, GO NEXT 버튼과 숫자 레이블을, 두 번째 화면에는 첫 화면과 동일한 숫자 레이블을 화면 상의 컬러만 바꿔서 넣어봅니다. 이제 벌써 세 번째니까.. 코드 작업 전 VC 및 storyboard 기본 세팅은 생략! 첫 화면에 버튼 세 개와 숫자 레이블 하나, 두 번째 화면에 숫자 레이블 하나를 컬러만 바꿔서 넣어준다. (현재 0 으로 보여지는 두 레이블은 늘 동일한 결과 값이 보여질거다.) First VC 가장 기본적이기에 가장 중요한..! UIViewController를 상속받아 만들어진 FirstViewController 클래스를 정의한다. impor.. 더보기
[iOS] Connecting the Dots, Connecting the VCs... VC 통신 연습을 다시, 기초부터 다시 점을 찍어 봅니다. Connecting the Dots...  남의 코드를 타이핑하는 코더처럼 말고, 고민하고 스스로 코딩해 보는 것에 초점을 맞추었습니다. 이전에는 segue를 사용해 화면을 전환 후 closure를 사용하여 데이터를 전달했다면, (secondVC -> firstVC 데이터를 전달할 땐 segue(performSegue)를 사용할 수 없으므로!!) 이번에는 performSegue 로 데이터를 전달해 보았습니다. 그리고 화면 내에서 FistVC 와 scondVC의 핵심 역할도 서로 바꿔 보았습니다. 다시말해, firstVC -> SecondVC 데이터 전달! 왜냐? 가능하고,, 더 간단하니까.. . *Ꙩꙻ₀Ꙩꙻ)! .. (확실하게 알려주는 롤드사마.. 더보기
[iOS] JSON (JavaScript Object Notation) 2024년 4월 9일 화요일 왠지 무조건 잘 알아두어야 할 것 같은 제이슨.. (윌슨 친구 제이슨.. ?) 내 귀에 자꾸만 들려오는 이 녀석을 훓어봅니다. Json 한 줄 표현 원래 자바스크립트 언어에서 객체 속성을 표현하기 위한 방법으로 사용하기 시작한 데이터 구조 간결하고 쉽게 데이터를 나타내는 방법 중 하나 "Key" : Value 로 이루어진 데이터들의 집합 (--> Json 객체) Swift의 Dictionary 성격을 가지고 있기에 Dictionary 계열의 자료형을 사용한다. Dictionary는 배열과는 다르게 index 없이 key에 해당하는 value를 매칭하면 된다. 따라서 순서는 상관이 없다. 그러나 key 타입은 무조건 문자열(string)만 가능하고, value 타입은 문자열, .. 더보기
[iOS] ViewController - Lifecycle Method 2024년 4월 2일 화요일 ViewController의 생명주기(Lifecycle)는 앱의 UI와 상호작용을 관리하는 데 중요한 역할을 합니다. ViewController가 생성되고 화면에 나타나는 순간부터 사라질 때까지의 일련의 이벤트로 구성되는 Lifecycle 과정에서 여러 메서드가 호출되며, 개발자는 이 메서드들을 오버라이드하여 특정 작업을 수행할 수 있습니다. 3월 22일 내용과 일부 중복되는 부분이지만, ViewController를 제대로 이해하기 위한 핵심 내용이기에 쉽게 풀어 다시 한 번 정리해 봅니다. init: ViewController의 인스턴스가 생성될 때 호출 loadView: ViewController가 관리하는 뷰가 로드될 때 호출. 뷰의 로딩을 시작하는 단계 viewDidL.. 더보기
[iOS] Closure를 활용한 VC 통신 (feat. prepare method) 수업에서 배운 아래의 기능 구현을 복습하며 prepare 메소드와 closure 사용에 익숙해져 봅니다. A, B 2개의 화면이 있고, A → B 로 이동하는 플로우를 가지고 있음 B 화면에는 +/- 스테퍼 기능 있음 B 화면에서 증가시키면 A 화면의 숫자가 반영됨 새로운 파일로 firstViewController 와 secondViewController 를 추가해 각각 커스텀 클래스 명칭을 지정하고, 초기화면은 firstViewController로 설정한다. 아래 이미지와 같이 firstViewController에는 Label과 Button으로 0과 다음화면을 만들고, Label 0은 IBOutlet을 사용해 numberLabel로 선언하여 firstViewController와 연결해 주었다. seco.. 더보기
[iOS] 간단한 카운트 화면 만들기 2024년 3월 25일 월요일 버튼을 클릭하면 숫자가 증가하거나 감소하는 UI 화면을 만들고 IBAction과 IBOutlet을 사용해 보기 레이아웃 요구사항 UILabel이 가운데 위치하게 해 주세요. UILabel을 기준으로 상단에는 감소 버튼, 아래에는 증가 버튼을 위치시켜 주세요. UILabel과 UIButton사이의 간격은 16px로 설정해 주세요. AutoLayout을 사용해 주세요. 로직 요구사항 count의 시작은 0으로 시작해 주세요. 감소버튼을 눌렀을 때, -1씩 감소시켜 UILabel에 표시해 주세요. 증가버튼을 눌렀을 때, +1씩 증가시켜 UILabel에 표시해 주세요. // // ViewController.swift // simpleCount // // Created by 채나연 .. 더보기
[iOS] LifeCycle - App, ViewController, AppDelegate 2024년 3월 22일 금요일 생명주기(LifeCycle) 개념에 대해 정리해 봅니다. App LifeCycle NotRunning 앱이 실행되지 않는 상태. Inactive 앱이 실행 중인 상태 그러나 아무런 이벤트를 받지 않는 상태 (Foreground) Active 앱이 실행 중이며 이벤트가 발생한 상태 (Foreground) Background 앱이 백그라운드에 있는 상태. 그러나 실행되는 코드가 있는 상태  Suspend 앱이 백그라운드에 있고 실행되는 코드가 없는 상태 UIViewController LifeCycle 📌 init() UIViewController 객체가 생성 📌 loadView() 컨트롤러의 뷰 계층 구조가 생성 📌 viewDidLoad() 뷰 계층 구조가 메모리에 로드되었으.. 더보기
[iOS] 메모 앱 만들기 Day-3 2024년 3월 22일 금요일 Todo List 화면 만들기 (TodoListViewController) 오늘도 어김없이 ViewController와 EntryViewController를 오가며 build fail 앞에서 가지각색 오류들을 경험했는데, "Declaration is only valid at file scope" → { } 를 깜빡하거나 위치를 잘못 잡은 경우 쉽게 해결되는 오류였다. beginners 수준이 이정도라니 ... 주말에 다시 한번 review 해야겠다. 아자아자! ... ViewController ▽ import UIKit class ViewController: UIViewController { @IBOutlet var tableView: UITableView! var task.. 더보기