[Swift] final 키워드 왜 쓰는거냐
·
개발일기/Swift
iOS 개발자라면 한 번씩 써봤을 final 키워드! 근데 왜 쓰는지 알고 계신가요?저도 단순히 상속이 불가능한 클래스가 있으면 그냥 final을 썼는데요...하지만 여기서 든 의문점은 굳이 왜 이 키워드를 쓰는걸까?? 장점이 뭘까?? 그래서 final키워드를 왜 쓰는지 알아봅시돠 우선 swift공식문서에서 final을 어떻게 설명하고 있는지 볼까요?서브 클래스에서 특정 메서드, 프로퍼티 등이 오버라이드 되지 않도록 하기 위해서 final키워드를 사용한다.final키워드를 붙인 메서드나 프로퍼티를 서브클래스에서 오버라이드하면 컴파일 에러가 발생한다.클래스 전체에 대해 final키워드를 붙이고 서브클래스를 만드려고 하면 컴파일 에러가 발생한다.https://docs.swift.org/swift-book/d..
Swift에서의 의존성 주입?
·
개발일기/Swift
개발하면서 개발용어도 잘 모르고 코드를 짜다보니... 내 코드를 남들한테 설명할 때 말문이 막히기 시작했다..^^특히 의존성주입이 어떤 것인지 설명해야했는데, 용어는 많이 들어봤지만 자세히 뭔지 몰랐다...알고보니 내 코드가 이미 의존성주입이 적용된 코드였는데 난 알지 못했던 것! ㅎㅎ... 그래서 오늘은 의존성주입이 뭔지 정리해보려고한다!!!! 의존성 주입이 그래서 뭔데????? 의존성?! 주입?!처음에 이 단어를 들었을 때 생각났던건 의존성과 주입이 대체 뭔 관계인지 이해가 안된다는 것이었다.내가 알고있는 의존성의 뜻은 뭔가 서로 엮여있고 참조가 되는 그런..뜻인것같았고 이걸 주입한다는게 띠용이었다. 일단 의존성이란 용어부터 다시 살펴보도록 하자. 의존성은 쉽게 말해서 함수에 필요한 클래스 or 참조..
Swift UIKit - 웹과 관련되어(웹뷰, 아웃링크, 사파리)
·
개발일기/IOS
개발하다가 웹으로 연결하고 싶은데 다양한 방법이 있다는 것을 알게되었다. 크게 3가지로 말할 수 있는데1. 내부 웹열기2. 외부 웹열기3. 웹뷰로 열기 자세한건 아래 블로그에서 많이 도움받았다.https://ios-daniel-yang.tistory.com/112#google_vignette [Swift/ TIL #36] Web 보여주기 (Safari 앱, SFSafariViewController, WKWebView)[TIL #36] 2023 / 07 / 12 앱 내에서 Web을 보여주는 방법을 간단히 정리해보려 합니다. 크게 3가지 방법으로 Web을 보여줄 수 있습니다. 1. Safari 앱 직접 사용 2. SFSafariViewController 사용 3. WKWebView 사용 Safariios-d..
IOS - MVVM
·
개발일기/IOS
MVVMViewMVVM은 MVC와 달리 ViewController를 View로 취급한다.모든 UI 로직이 ViewModel에 있으므로 View/ViewController가 가벼워진다.(MVC에서보다)View는 ViewModel을 참조한다(반대는 X).View는 Model을 참조하지 않는다(반대도 O).View는 발행(publication)을 구독(subscribe)하고, 주시(관찰, observe)한다.ViewModelMVVM은 ViewModel을 통해 UI 로직과 비즈니스 로직을 분리했다.MVVM은 MVC와 달리 ViewModel이 있다.ViewModel은 Model을 참조한다(반대는 X).View 없이 테스트가 가능 하다.ViewModel은 View input으로부터 Model을 업데이트한다.View..
UIKit - delegate 패턴
·
개발일기/IOS
맨 처음 iOS개발을 시작할 때 가장 헷갈렸던 delegate패턴 정리해놓은게 있어서 올린다...도저히 이해가 가지 않아서 이것저것 막 개념을 외웠더니 지금은 거의 습관처럼 잘 쓰고 있다 delegate프로토콜과 그 안에 메소드 선언(정의는 nono) → protocol Myprotocol{ func sendData() }데이터 보내는 쪽에서 델리게이트 변수 선언(자료형은 옵셔널 프로토콜타입) → var delegate : MyProtocol?데이터 보내는 쪽에서 보내는 action함수에 메소드 실행 → delegate?.sendData(name: title)데이터 받는 쪽에서 프로토콜 상속 후 메소드를 정의데이터 받는쪽에서 데이터 보내는 쪽의 delegate변수를 self로 정의→ 데이터보내는쪽컨트롤러..
iOS - DeepLink
·
개발일기/IOS
2025년 8월에 파이어베이스 동적링크 서비스 지원 중단.. IOS에서 딥링크를 구현하는 방법URL Scheme어떤 스키마를 사용할 건지 앱에 설정(프로젝트 Info → URL Types에서 스키마 등록)Universal Links프로젝트 Signing & Capabilities > Associated Domains에 Domain을 등록(다이나믹 링크도 마찬가지)외부에서 딥링크를 탭하면func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) 여기에서 앱을 시작Dynamic LinksFirebase에서 제공하는 딥링크의 일종(초대장 보내기 등에 사용)링크를 미리 만들어..
iOS - 앱 추적권한 호출지점 이슈
·
개발일기/IOS
추적권한으로 인해 종종 앱이 죽는경우가 있다.이걸로 삽질하다가....https://green1229.tistory.com/182 App Tracking Transparency안녕하세요. 그린입니다🟢 이번 포스팅에서는 App Tracking Transparency에 대해 학습해보겠습니다🧑🏻‍💻 우선 App Tracking Transparency가 무엇인지 알아보시죠! App Tracking Transparency? 앱 추적 투명성이green1229.tistory.com 참고하니 해결완료!
iOS 개발할 때 유용한 사이트 모음
·
개발일기/IOS
애플 개발자 문서 한글 번역 애플 개발자 문서 한글 번역 | 사과애플 개발자 문서 한글 번역 본 문서는 Gitbook으로 작성되었습니다. GitHub에서 읽고 계신 분은 Gitbook 링크로 접속해서 보시는 것이 더 편합니다. 들어가기 전에 본 문서는 Apple 개발자 페이지의 Documelod-it.gitbook.io The Swift Programming Language (한국어) The Swift Programming Language (한국어) | SwiftLast updated 3 months agobbiguduk.gitbook.io UIActivityIndicatorView.HidesWhenStopped 속성 (UIKit) UIActivityIndicatorView.HidesWhenStopped..
UIView.animate 메모리릭 관련하여...
·
개발일기/IOS
https://gyuios.tistory.com/219 iOS) UIView.animate(...) 왜 메모리릭이 발생하지 않나요?Is it necessary to use [unowned self] in closures of UIView.animateWithDuration(...)? 이 글은 위의 stackoverflow 질문을 읽고 정리해본 글입니다. 작성자님의 질문을 아래와 같았다. 아래의 코드는 메모리 릭을 피할 수gyuios.tistory.com ARC에 대해 다시 공부하는게 좋을듯https://yudonlee.tistory.com/35 [Swift] Strong Reference Cycle - ARC 기초 2탄안녕하세요, 지난 포스팅에선 ARC의 정의, ARC의 작동원리에 대해서 공부했습니다. ..
[Xcode] - static Library
·
개발일기/IOS
static library 정리https://zeddios.tistory.com/1308 (Static/Dynamic) Library안녕하세요 :) Zedd입니다. ~ 애플 문서를 보던 중 ~ Overview of Dynamic Libraries Overview of Dynamic Libraries Two important factors that determine the performance of apps are their launch times and their memory footprints. Reducing the sizezeddios.tistory.com staticlibrary로 나온 .a 파일과 헤더파일 → 헤더파일이 해당이름의 .a파일을 가르키고있기 때문에 .a파일의 이름을 바꾸게 되면 찾지..