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로 정의→ 데이터보내는쪽컨트롤러..
[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파일의 이름을 바꾸게 되면 찾지..
Xcode build setting 때 inherited 의미
·
개발일기/IOS
상속이라는 의미로 나보다 한단계 낮은 우선순위의 값을 상속받겠다는 뜻! build setting에서 우선순위는 1. 타겟의 설정값 2. 설정파일의 설정값 3. 프로젝트의 설정값 4. 기본값 Pod에서는 설정파일의 설정값(Config file)을 이용하여 빌드 설정을 세팅한다. 하지만 Pod 에서 설정한 것 보다 개발자가 타겟에 직접 설정한 세팅이 우선순위가 높기 때문에 Pod은 건들 수 없게 된다.
[Xcode] 멀티 디바이스 세팅(feat. rosetta)
·
개발일기/IOS
멀티 디바이스 대응(Universal app)UIRequiredDeviceCapabilities 설정을 arm 7으로 세팅(PropertyList에서 세팅, info.plist)https://ios-development.tistory.com/805 [iOS - XCode] Universal App, armv7, arm64 멀티 디바이스 대응, 바이너리 파일 설정 (CISC, RISC)arm이란? ARM(Acorn RISC Machine) 기반의 cpi를 탑재한 것 컴퓨터 구조 기초 - Architecture의 종류 CISC (Complex Instruction Set Computer): 모든 코드 언어 문장들에 대해 각각 기계 명령어가 대응 (복잡하고 기능이ios-development.tistory.co..
[Xcode] build setting - build active architecture only
·
개발일기/IOS
build setting - build active architecture onlyYes: 디버그 용도- 빠른 속도, 단 32bit아키텍처만 지원32bit 아키텍처: armv7, armv7sNo: 배포 용도- 64bit 아키텍처도 지원64bit 아키틱쳐: arm64
Xcode 시뮬레이터 빌드 안되는 문제
·
개발일기/IOS
rosetta 시뮬레이터로 설정해줘야한다!! ! rosetta가 뭐임?✅ Rosetta는 인텔 프로그램에서 OS X와의 호환성을 연결해주는 백그라운드 프로그램이라고 합니다. 응용 프로그램중에 응용 프로그램(Intel)로 표시되어 있는 프로그램들은 M1같이 Apple 실리콘이 탑재된 맥북에서 작동하기 위해서는 Rosetta가 필요합니다. Xcode는 응용 프로그램(Universal)로 되어 있기 때문에 Apple 실리콘과 인텔을 모두 지원하는 걸 알 수 있고, 범용 앱이기에 Rosetta가 필요하지 않습니다. ! 굳이 사용하지 않아도 arm과 x86_64 를 모두 지원하는데 굳이 Rosetta를 누르는 이유?✅  해당 설정을 누르게 되면 Universal 앱에서 Apple Silicon을 지원하도록 업데이..
[UiKit] pod install 오류
·
개발일기/IOS
[!] CocoaPods could not find compatible versions for pod "MobWithAD": In Podfile: MobWithAD (= 1.2.4)None of your spec sources contain a spec satisfying the dependency: `MobWithAD (= 1.2.4)`.You have either: * out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`. * mistyped the name or version. * not added the source repo that hosts the Pod..
[UiKit] 뷰 레이아웃 관련 메서드 정리...
·
개발일기/IOS
View와 ViewController 레이아웃 사이클ViewController 를 표시했을 때, 3단계로 호출이된다업데이트 : 오토레이아웃의 Constraints를 갱신한다. Constraints의 갱신은 SubView로부터 SuperView의 순서대로 호출된다.레이아웃 : Constraints를 바탕으로 레이아웃을 실행한다. 여기에서 view의 center와 bounds를 결정한다. 레이아웃의 갱신은 superview로 부터 subview의 순서로 호출된다.그리기 : 레이아웃 후, UIView의 drawRect(rect:CGRect)가 호출된다. 이때는 CoreGraphics를 사용하여 그린다.viewController에서 레이아웃이 결정되는 과정viewWillLayoutSubViews() 메서드 호출..