분류 전체보기
-
[iOS] UMC iOS 세미나 7주 차iOS/UMC 2022. 11. 7. 22:17
💡 main thread는 항상 async 방식으로 사용해야 한다! sync를 사용하면 dead-lock 상태가 된다. (앱이 죽어버림) DB와 DBMS DB(Data Base): 데이터들의 집합체 관계형 데이터베이스: 파일 -> 테이블 형식으로 데이터를 관리하게 됨 UserDefaults 자동 로그인을 구현할 때 자주 사용한다 ex) 키 -> 로그인을 한 적이 있는지? / 값 -> 결과 - 키와 값의 쌍으로 데이터가 저장된다. (->딕셔너리) - 앱을 껐다 켜도 데이터가 보존된다. 단점: 하나의 key 값에 여러 value 저장해서 하나 꺼내오지 못함 1개의 key - 1개의 value ex) 유저의 이름, 전화번호, 주소, ... 3개의 정보를 따로 저장해서 하나하나 꺼내야 하는 귀찮음 존재 데이터 ..
-
[iOS] 6주 차 미션iOS/UMC 2022. 11. 5. 03:31
ViewController DispatchQueue를 활용하여 reminder 알림 기능을 구현하였다. // // ViewController.swift // Week6-project // // Created by yeonsu on 2022/11/05. // import UIKit import UserNotifications // 팝업 알림을 위해 필요 class ViewController: UIViewController { @IBOutlet var table: UITableView! var models = [Reminder]() override func viewDidLoad() { super.viewDidLoad() table.delegate = self table.dataSource = self } @..
-
[iOS] UMC iOS 세미나 6주 차iOS/UMC 2022. 10. 31. 23:14
Thread (이야기 등의)가닥[맥락], 프로세스의 흐름, 프로세스의 내부에 속함, 프로세스의 시작과 종료 담당 💡프로세스(실행 중인 프로그램) 개념도 필요! 프로그램 안에서 스레드들이 각자 역할을 정해서 분담 -> 수행 하나의 프로세스 안에는 최소 1개의 스레드가 존재하게 된다. Multi-Thread 일만 분배하고, 줄어들지는 않기 때문에 분배를 하기 전과 후의 걸리는 시간은 같음 작업의 순서를 가질 수 있음 (ex. 파일 B를 다운받으려면 파일 A가 필요한 경우 작업의 순서 필요) Thread - 프로세스 내에서 실행되는 흐름의 단위 - Multi-Thread를 통해 Thread들이 각각 독립적인 흐름을 가질 수 있음(일의 능률과는 거리가 멀다. 단순히 분배만 할 뿐) - 공유 자원에 동시 접근하여..
-
[iOS] 4-5주 차 미션iOS/UMC 2022. 10. 31. 23:13
4주 차 미션 ✅ TableView를 이용하여 메모장 구현하기 먼저 필요한 ViewController 파일을 생성해준다. TableView DataSource와 Delegate 프로토콜을 채택하여 필요한 코드를 작성해준다. UITableViewDelegate - 테이블 뷰에서 section의 header, footer를 관리하고 셀을 삭제하거나 위치를 바꾸고 그 외의 다른 작업을 수행하기 위한 메서드를 제공한다 - 테이블뷰의 시각적인 부분을 수정해주고, 테이블 뷰의 개별 행 편집 등을 도와주는 역할을 한다 UITableViewDataSource - 테이블 뷰의 셀에 사용되는 데이터를 관리하기 위한 메서드를 제공한다 - 테이블뷰를 생성하고 수정하는데 필요한 정보를 테이블뷰 객체에 제공하는 역할을 한다 //..
-
[iOS] UMC iOS 세미나 5주 차iOS/UMC 2022. 10. 31. 23:12
✅ Open Source와 Library Open Source를 이해하고 필요한 경우 찾아 쓸 수 있다. CocoaPods을 통해 외부 라이브러리를 설치하여 적용할 수 있다. 💡 4주차에서 만들었던 카카오톡 채팅창에 아래로 슬라이드하면 나오는 로딩바 구현해보기! @IBOutlet weak var kakaoTalkTableView: UITableView! // UIRefreshControl(): A standard control that can initiate the refreshing of a scroll view’s contents. let refreshControl = UIRefreshControl() override func viewDidLoad() { super.viewDidLoad() // 필수..
-
[iOS] UMC iOS 세미나 4주 차iOS/UMC 2022. 10. 27. 23:10
✅ 오늘의 학습 목표 ScrollView를 이해한다. ScrollView의 개념을 기반으로 TableView를 이해하고 활용할 수 있다. CollectionView를 이해하고 활용할 수 있다. protocol과 delegate에 대해 이해하여 화면(ViewController)간의 데이터를 전달할 수 있다. 📌 TableView 동일한 레이아웃이 반복되는 UI를 만들 때 일일이 하드코딩? ❌ -> 시간, 메모리상의 문제 발생 TableView를 활용하자! - 목록 형태의 뷰를 구현하는데 용이 - 재사용 큐를 활용한 메모리 관리 - ScrollView를 상속받아 스크롤 가능 📌 CollectionView TableView와 마찬가지로 Cell이 반복되는 형태의 구조를 가지고 있다. 📌 TableView vs..
-
[iOS] 인스타그램 클론 코딩을 해보자!(3) - 버튼 생성&꾸미기iOS/project 2022. 10. 10. 23:05
✅ 오늘 공부한 내용 - 버튼에 radius 속성 주기 - 버튼 텍스트에 다른 컬러 적용하기 - back button 구현하기 버튼에 radius 속성 주기 1️⃣ 새로운 Swift 파일을 생성한 뒤 다음과 같은 코드를 작성한다. 💡 @IBInspectable을 이용하여 inspector 영역에 새로운 속성을 추가하는 것이다! import UIKit @IBDesignable extension UIView { //extension으로 UIView 확장 // 📌 @IBInspectable: inspector 영역에서 해당 인터페이스 요소의 속성을 변경할 수 있게 하는 것 @IBInspectable var cornerRadius: CGFloat { // 연산 프로퍼티 get { return layer.corn..
-
[iOS] 3주 차 미션 - 화면 전환을 이용한 미니 계산기 만들기iOS/UMC 2022. 10. 8. 00:30
present 방식을 이용해서 viewController 화면전환을 통해 미니 계산기를 만들어봤다! present는 navigation 방식과 다르게 뒤로가기 버튼이 따로 없어서 직접 만들어줘야 한다. // present 생성 present(plusViewController, animated: true) // 뒤로가기 self.dismiss(animated: true) 📌 버튼을 만든 뒤에 dismiss 속성을 부여해주면 된다! 💡 아직 구현하지 못 해서 궁금한 것 1. [다시 계산하기] 버튼을 눌렀을 때 textField에 입력된 값들이 지워진 상태로 만들기 - 생명주기 이론에서 배웠던 걸로 해봐도 present 방식은 화면 위에 겹쳐서 띄우는 방식이라 그런지 지워지지 않았다. 2. ViewContro..