목록iOS (128)
꾸준히 안타치기

https://github.com/godrm/mobile-developer-roadmap GitHub - godrm/mobile-developer-roadmap: 모바일 개발자 로드맵 모바일 개발자 로드맵. Contribute to godrm/mobile-developer-roadmap development by creating an account on GitHub. github.com https://roadmap.sh/ Developer Roadmaps - roadmap.sh Community driven roadmaps, articles and guides for developers to grow in their career. roadmap.sh swiftUI https://karinprater.me..

화면생명주기와, 앱의 생명주기가 있다. 화면생명주기와 앱의 생명주기를 분리해서 생각하자. ⭐️ 화면생명주기 뷰컨트롤러에서 실행 viewDidLoad() - 뷰의 로딩이 완료되었을때 시스템에 의해 자동으로 호출됨(메모리에 올림) 리소스를 초기화하거나 초기화면을 구성하는 용도로 사용 처음 한번만 실행해야하는 초기화 코드가 잇을 경우 여기에 작성한다. viewWillAppear() - 뷰가 나타나기 직전에 호출 다른뷰로 갔다가 다시 돌아오는 상황에 해주고 싶은 처리 ex) 팝업창 띄울때 / 화면을 다가리는 팝업과 풀페이지의 생명주기가 다름 viewDidAppear() - 뷰가 화면에 나타나 직후에 실행됨. 뷰가 나타났다는 것을 컨트롤러에게 알림, 화면에 적용될 애니메이션을 그려줌 이것을 제외하고 viewDid..

MVC : 역할에 따라 구분해서 프로그램을 나눠보자 MVP : 화면과 로직을 분리하자. MVVM : 화면은 알아서 그리렴. 나는 데이터만 바꿀테니 MVVM이 나오게 된 이유 MVC에서 Controller는 비지니스 로직도 처리하고 UI도 처리하고 혼자 일을 다해서 Controller가 힘들어졌다.. 그래서 MVP의 Presenter라는 것이 나왔고, MVP에서 로직처리는 Presenter가( input들어오면 무조건 프레젠터한테 알려줘! / 프레젠터는 UI와 상관이 없어졌고, 뷰와 모델 분리) 뷰와 모델사이에서 모든상황에 중개자 역할을 했다. 이렇게 뷰와 모델을 분리하게 되었으나 Presenter 또한 중개를 혼자하니 Presenter도 힘이 들었다. Presenter 뷰와 일대일의 관계로 뷰를 만들때마..
셀안에 작성 func setupLayout() { layer.shadowColor = UIColor.black.cgColor layer.shadowOpacity = 0.5 layer.shadowRadius = 10 contentView.layer.cornerRadius = 10 contentView.layer.masksToBounds = true } https://sujinnaljin.medium.com/ios-%EC%82%AC%EC%A7%84%EC%9C%BC%EB%A1%9C-%EB%B3%B4%EB%8A%94-aspectfit-aspectfit-scaletofill-f41470d0191f [iOS] 사진으로 보는 AspectFit, AspectFill, ScaleToFill Content Mode suj..
https://github.com/uias/Tabman GitHub - uias/Tabman: ™️ A powerful paging view controller with interactive indicator bars ™️ A powerful paging view controller with interactive indicator bars - GitHub - uias/Tabman: ™️ A powerful paging view controller with interactive indicator bars github.com https://developer-p.tistory.com/161 iOS | 탭맨(TabMan) | 탭맨 라이브러리 예제 및 커스텀 방법. (Examples and customizatio..

1.info에서 스토리 보드이름을 정해줘야함. 2.General가 가서 Main Interface를 Main으로 설정한다.(맨 밑에) https://stackoverflow.com/questions/19240054/could-not-find-a-storyboard-named-main-in-bundle Could not find a storyboard named 'Main' in bundle I'm getting a strange error: 'Could not find a storyboard named 'Main' in bundle NSBundle' when trying to run my app on a real iOS device. I have the file in my directory, and it..

배경음악넣기 mp3음악파일은 끌어서 넣으면 됨 import AVFoundation import Foundation import UIKit class gameVC : UIViewController{ //BG사운드 var BGAudioPlayer = AVAudioPlayer() let bgUrl = Bundle.main.url(forResource: "Modern Attempt - TrackTribe", withExtension: "mp3")! override func viewDidLoad() { BGSound() BGAudioPlayer.play() } //MARK: - 배경음악 func BGSound(){ do { try BGAudioPlayer = AVAudioPlayer(contentsOf: bgUr..

https://www.youtube.com/watch?v=dPdVZOu1PrQ&list=PLyaXY4XhjFEki8z4ORj4wwGAQcDameiyX&index=18 https://velog.io/@swiftist9891/ToyProject-ToDoList%ED%95%A0-%EC%9D%BC-%EB%93%B1%EB%A1%9D [ToyProject] ToDoList(할 일 등록) 🍎 To Do List 🍏 기능 상세 TableView에 할 일들을 추가할 수 있습니다. 할 일을 삭제할 수 있습니다. 할 일의 우선순위를 재정렬할 수 있습니다. 할 일들을 데이터 저장소에 저장을 하여 앱을 재실 velog.io ✅ 기본기능 / 위 블로그를 참고해 TodoList App을 만들어보았다. 그대로 사용하지 않고 추가,변..
https://sw-swift-5.tistory.com/3 Swift Collection Collection : 데이터의 모임 (수집, 모음집) Swift Collection 종류 Array(배열): 일련번호를 구분하는 데이터의 연속적인 모임. Set: 데이터를 중복없이 해싱을 이용(데이터의 순서를 알수없음)해서저장하는 데이터모임 Tuple: 데이터를 연속적으로 모아놓는데, 추가하거나 수정하거나 삭제할 수 없는 구조. array와 다르게 이름을 붙일 수 있음. Dictionary: 번호대신에 이름을 붙여서 데이터를 저장하는 구조 - Key:Value 구조 String: Character의 집합 ⇒ tuple을 제외하고는 모두 동일한 자료형의 데이터만 저장이 가능한데, Any와 AnyObject를 이용하면..

Grand Central Dispatch 란? 어느 작업을 어느 Thread 가 할 것인지, Multi-Thread 로 할 것인지, 코어를 여러개 사용해서 처리할지, Async 로 처리할지 등등을 결정해주는 것이 바로 GCD 이다. Queue에는 - Serial / Concurrent 두가지가 있다. Serial큐는 - 직렬순차실행 큐 Concurrent큐 - 병렬형태로 동시에 실행되는 큐이다. Grand Central Dispatch란? 멀티코어 프로세스를 위한 Thread Programming 기존에 Thread Programming 을 하기 위해서는 동기화 및 , deadlock 도 관리를 하는 등 스레드풀을 직접 관리해야하는 번거로움이 있지만 애플에서 따로 GCD를 통해 쓰레드를 OS에서 관리하고..
https://silver-g-0114.tistory.com/107 [Swift] Property Observer 의 didSet, willSet 사용하기 Property Observer 프로퍼티 옵저버는 프로퍼티의 값의 변화를 관찰하고, 이에 응답합니다. 새로운 값이 프로퍼티의 현재 값과 동일하더라도 속성의 값이 설정될 때마다(set) 호출됩니다. 프로퍼티 옵 silver-g-0114.tistory.com Property Observer 프로퍼티 옵저버는 프로퍼티의 값의 변화를 관찰하고, 이에 응답합니다. 새로운 값이 프로퍼티의 현재 값과 동일하더라도 속성의 값이 설정될 때마다(set) 호출됩니다. 프로퍼티 옵저버를 사용하기 위해서는 프로퍼티의 값이 반드시 초기화 되어 있어야 합니다. 또한 클래스의 i..
https://ios-development.tistory.com/233 [iOS - swift] intrinsic content size intrinsic content size란? 본질적인 내용의 크기 (대부분의 View들은 기본적으로 컨텐츠의 크기만큼의 size를 가짐) 예) 보통 storyboard에서 UILabel을 사용할 때, width, height contraint를 따로 지정해주지.. ios-development.tistory.com 관련해서 공부하기
기본사용법 // userDefault에 저장 let plist = UserDefaults.standard plist.setValue(userID, forKey: "name")//이름이라는 키로 저장 plist.synchronize()//동기화처리 //userDefaults에 불러오기 let plist = UserDefaults.standard //지정된 값을 꺼내어 각 컨트롤에 설정한다. self.userName.text = plist.string(forKey: "name") //삭제 UserDefaults.standard.removeObject(forKey: "key") https://qussk.github.io/2021/02/27/swift-UserDefault 참고 https://developer...