본문 바로가기

Mobile/IOS

(35)
Static Framework, Dynamic Framework 이 글은 공부하는 것을 정리하는 목적으로 적는 글이오니 건전한 비판은 환영합니다. Static Framework - SDK 형태로 배포하는 경우 - 위의 그림에서 보듯이 Static Linker를 통해 Static Library 코드가 어플리케이션 코드 내로 들어가 Heap 메모리에 상주하게 됩니다. 따라서 Static Library가 복사되므로, Static Framework를 여러 Framework에서 사용하게 되면 코드 중복이 발생하게 됩니다. Static Framework를 사용하게 된다면 코드 중복이 발생하게 된다는 이야기가 너무 헷갈려서 좀 찾아보게 되었습니다. 어떤 예가 있어야 정확하게 이해할 수 있을까? Static Framework의 코드는 앱의 실행 파일에 직접 포함이 됩니다. 그래서 ..
iOS 커스텀 프레임워크 만들기 이 글은 공부한 내용을 기반으로 정리하는 글 이오니 언제든 건전한 비판은 환영합니다. 1. FrameWork 만들기 먼저 FrameWork를 만들고자 한다면 Xcode를 키고 Framework & Library 로 클릭한다. 그리고 nest를 누른다음에 ProductName을 적어준다 여기서는 Secrets라고 product name을 적었다. 그러면 이렇게 파일형태가 나올 것이다. 유튜브에 찾아보니 product가 따로 생기면서 framework쪽이 생기던데 이번에 하면서는 보이지는 않았다. 그리고 해당 프로젝트로 들어가서 ios 타켓을 잡아준다. 그 이후에 swift파일을 만들어 준다. 여기서 위와같은 .swift 파일을 만들어 주었다. 해당 파일에 적은 코드를 보면 // // SecretsDemo...
ViewModel을 이용한 버튼 활성화 방법 이 글은 공부한 내용을 정리하는 글로 건전한 비판은 언제든 환영합니다. ViewModel이란? 간단히 말하면 ViewModel이란 view의 UI상태를 담당하기 위해 만들어진 클래스이다. 자세한 내용은 MVVM패턴에 대해서 설명한 내용이 있으니 참고하시면 좋겠습니다/ https://luca-os.tistory.com/m/61 그래서 어떻게 ViewModel을 이용하여 버튼을 활성화 할까? 먼저 스토리 보드는 간단하게 email, password, button 방식으로 구성하였고 프로퍼티 및 액션은 이렇게 작성하였습니다. ViewModel 작성하기 먼저 ViewModel이라는 파일을 작성하여서 TextField와 관련된 프로퍼티를 작성하여 줍니다. // // ViewModel.swift // ViewMod..
Objective-c xml 파싱, json 파싱 이 글은 공부한 내용을 정리하는 목적으로 적는 글이오니 건전한 비판은 언제든 환영합니다. XML 파싱이란 대략적으로 xml 파싱이란 이런 모양으로 생겼다. 한국 비 20 일본 맑음 19 중국 눈 14 스페인 우박 13 미국 흐림 2 영국 비 10 프랑스 흐림 15 브라질 흐림 35 스위스 맑음 13 덴마크 비 2 스웨덴 눈 0 네덜란드 비 12 크로아티아 맑음 30 필리핀 맑음 28 독일 눈 3 헝가리 비 13 벨기에 흐림 8 핀란드 우박 15 이탈리아 맑음 23 위의 글들을 보면 weatherinfo 안에 local이 들어가 있고 local로 감싸는 부분에 country, weather, temperature가 들어가 있으며, 역서 파싱할 것은 local 안에 있는 부분을 꺼내줘야 한다. 파싱할 대상들..
DispatchQueue 이 글은 공부한 내용을 정리하는 글이오니 건전한 비판은 환영합니다. 비동기 https://luca-os.tistory.com/55 프로세스와 쓰레드 이 글은 공부하는 내용을 정리하는 목적으로 작성하는 글이오니, 건전한 비판은 언제든 환영합니다. 프로세스와 쓰레드를 정확히 알아야 하는 이유? 먼저 RxSwift를 공부하기 위해 RxSwift는 비동기 luca-os.tistory.com 비동기와 쓰레드에 관한 내용은 위에 글에 있으니 참고 부탁드립니다. 먼저 쓰레드에 관해서 간단히 이야기 하자면, 하나의 공간에 두명의 작업자가 두개의 작업을 하는 것입니다. 메인 쓰레드와 global 쓰레드 스토리 보드에서 두개의 라벨이 있고 3개의 버튼이 있습니다. 버튼은 차례대로 action함수로 선언하였고, 2개의 라벨..
CocoaPods 에러 Cannot find 'Auth' in scope CocoaPods에서 pod 'Firebase/Auth' 설치를 한다고 해도, 자꾸 Auth를 친다고 위에 에러가 발생을 하여서 계속 몇 시간 에러찾는데 시간을 보냈다. 찾은 해결 방안을 찾았다 https://codecrew.codewithchris.com/t/cannot-find-firestore-in-scope/17275/3 Cannot find 'Firestore' in scope Hi Chris, I have installed the Firebase via cocoapods. Pod version is: 1.11.2 XCode version is: 13.2.1 OS: MacOS Monterey 12.1 Pods installed: Firebase/Analytics, Firebase/Auth & F..
UINavigationController 이 글은 공부하는 내용을 정리하는 목적으로 적는 글이오니 언제든 건전한 비판은 환영합니다. 먼저 Apple에 있는 공식 문서를 가져왔다. https://developer.apple.com/documentation/uikit/uinavigationcontroller Apple Developer Documentation developer.apple.com 먼저 OverView를 보면 A container view controller that defines a stack-based scheme for navigating hierarchical content. 계층적 콘텐츠를 탐색하기 위한 스택 기반 체계를 정의하는 컨테이너 뷰 컨트롤러. 이게 무슨 이야기면? 애플 문서에서 일부분만 설명된 것을 가져오면 내비게..
UserDefaults 및 싱글톤 UserDefaults란 무엇인가? 간단히 표현하면 핸드폰 내에 있는 저장소 입니다. 예를 들면 XCODE에서 시뮬레이션을 실행시키고 다시 실행시켰을 때 저장이 안되고 코드로 작성했던 것만 나오지 않나요? 예를 들면 array에다가 3개의 숫자를 넣어놓고 시뮬레이션 상에서 추가 했을 때 화면이 나왔는데 다시 시뮬레이션을 켜보니 다시 초기화 되는 모습들이요. 위에 그림같이 추가하였을 때 생겨나지만 다시 시뮬레이션을 가동시키면 안되는것등. 그리고 사용자 기본설정과 같은 단일데이터에 적합하며 또는 대량의 유사한 데이터를 저장하는 경우에 사용하는 것이 좋습니다. 타입 클래스는 float, double, integer, boolean등과 NSData, NSString, NSNumber, NSDate, NSArra..
다크모드와 벡터 작업 이 글은 공부하는 것을 정리하는 목적으로 쓰는 글 입니다. 언제든지 건전한 비판은 환영합니다~~ 다크 모드에 따른 색상 변경 사용자의 배경 화면에 따라 색상이나 사진은 다르게 나올 수 있다 예를 들자면 핸드폰의 배경 화면이 사용자에 따라 어두울 수 있고, 밝을 수도 있습니다. 사진과 색상은 바뀌어야 합니다. 그러면 XCODE상에서 어떻게 바꿔야 할까요? Assets 1. 먼저 Assets에 들어간다 2. 마우스 오른쪽을 눌러서 New Color set을 눌러서 생성하여 준다 3. Show the Attribute Inspector를 클릭 후에 맨 밑에 있는 Show Color Panel를 눌러준다. 4. 누르고 난 후에 스포이드로 색상을 골라주거나 선택한다. 5. Appearances 칸에서 Any,Li..
MVC 패턴 공부하는 것을 정리하는 목적으로 사용하고 있습니다. 건전한 비판은 언제나 환영합니다 ~~ 이러한 코드를 만들기 위해서는 main에서 storyboard를 이용해 UI 배치후에 ViewController에다가 코드를 치시면 됩니다. // // ViewController.swift // Quizzler-iOS13 // // Created by Angela Yu on 12/07/2019. // Copyright © 2019 The App Brewery. All rights reserved. // import UIKit class ViewController: UIViewController { @IBOutlet weak var questionLabel: UILabel! @IBOutlet weak var trueB..