일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Git Large File Storage
- iOS Target
- ios
- Ribs
- App Signing
- 클린아키텍쳐
- 메모리 접근 충돌
- UICoordinateSpace
- RxSwift
- SWIFT
- memory safety
- Dependency Rule
- Dispatch.main.sync
- iOS 버전 점유율
- 로버트마틴형
- RIBs Tutorial
- windowScene
- Concurrent
- 잡초가득블로그
- RxCocoa
- conflicting access to memory
- 대머리깃허브
- Github file size
- Apple Certificate
- Large File Storage
- swiftdocs
- Automatically manage signing
- rib
- coordinateSpace
- in-out
- Today
- Total
목록ios (11)
빙수왕의 개발일지
https://github.com/uber/RIBs/wiki/iOS-Tutorial-2 GitHub - uber/RIBs: Uber's cross-platform mobile architecture framework. Uber's cross-platform mobile architecture framework. - GitHub - uber/RIBs: Uber's cross-platform mobile architecture framework. github.com Tutorial2 wiki 설명 목표 로그인 후 게임 필드 보여주기를 할 것임. 자식 RIB가 부모 RIB와 소통하게 하기 부모 interactor가 원할 때 자식 RIB를 Attach/detach 하기 view-less RIB 만들기 view-..
튜토리얼 따라하기. https://github.com/uber/RIBs/tree/master/ios/tutorials/tutorial1 https://github.com/uber/RIBs/wiki/iOS-Tutorial-1 Tutorial1 사전작업 - RIBs 파일 생성을 위한 template 설치, pod install RIBs/ios/tooling 이동하여 template 설치 install-xcode-template.sh RIBs/ios/tutorials/tutorial1 이동하여 pod 설치 pod install pod install 하자마자 문제 발생. CocoaPods could not find compatible versions for pod "RxRelay" Podfile 열어봄 targ..
실제 디바이스에서 run 하고싶어요.. 우리는 앱을 개발하고, 배포한다. iOS 앱을 Simulator로 run할 때는 그냥 하면 된다. 하지만, 실제 핸드폰을 연결해서 run 하는 순간 우리는 다음과 같은 에러를 마주한다. Signing for "FirstSwiftUI" requires a development team. Select a development team in the Signing & Capabilities editor. Signing을 하는데 team이 필요하다.는 오류다. 음.. 실제 핸드폰에 연결하려면 Signing 이란걸 해야되는데, 그럴려면 team이 필요하다. 정도로 해석할 수 있다. 그리고 시키는 대로 Signing & Capabilities에 가보면 에러를 볼 수 있다. 그리..
iOS에는 안드로이드와 달리 체크박스가 없어서 UIButton을 이용해서 만들어야 한다. 기본 UIButton의 selected 상태를 사용하여 이미지를 변경해 줄 수도 있지만, 확장성을 생각해서 Custom Class를 만들어 보았다. /// 체크박스 class CheckBox: UIButton { /// 체크박스 이미지 var checkBoxResouces = OnOffResources( onImage: UIImage(named: DefaultResource.checkedImage), offImage: UIImage(named: DefaultResource.notCheckedImage) ) { didSet { self.setChecked(isChecked) } } enum DefaultResource..
swift는 struct와 enum같은 강력한 value type을 제공한다. 보통은 value type을 사용한다. reference type의 unintended sharing(의도하지 않은 공유)를 피하기 위해서. class를 사용한다면, 이것의 메모리는 ARC에 의해 관리된다. 이제 객체의 lifetime이 어떻게 관리되는지 보자. Object lifetimes and ARC Object의 생명주기는 initialization으로 시작되고, 마지막 사용으로 끝난다. ARC는 object의 생명주기가 끝나고 dealloc(해제) 한다. ARC는 객체의 reference count를 계속 track해서 객체의 lifecycle을 결정한다. ARC는 Swift compiler에 의해 retain과 re..
스토리보드만의, 앱의 흐름을 한눈에 볼 수 있다는 장점이 있고.. 내가 만들 앱의 규모가 크지 않아서 편하게 만들기에는 스토리보드를 써도 무관할 것 같지만, 사람 일은 모르기도 하고, 개인적으로는 코드로 UI를 구성하는게 유지보수측면에서 더 낫다고 생각해서 코드로 하기로 했다. 그리고 코드로 만드는 연습을 좀 하고싶었음!! 그래서 두번째로 한 일은 스토리보드를 삭제하는 것이다. 스토리 보드를 지우기 위해서는, 아래 과정이 필요하다. 1. storyboard파일을 지우고 Info.plist에 main으로 검색해서 나오는 항목 2개를 지운다. 2. AppDelegate 또는 SceneDelegate에서 window를 만들어주고, window의 rootViewController을 세팅해주고, 만든 window..
일단 프로젝트를 만들고, gitignore을 추가하고, 가장 먼저 정한 것은 타겟이다. 이런저런 소스를 작성할 때, 제공할 유저 타겟 최소버전을 명확하게 정해놔야 추후에 수정할 일이 없을 것 같았기 때문이다. Apple Store 지원에 따르면, 지금 iPhone 기기의 약 93%가 iOS 13 이상의 버전을 사용하고 있다고 한다. Deployment Target을 iOS 13으로 하면 7%를 커버하지 못하겠지만, 내가 만들 앱이 꼭 모든 버전 사람들에게 서비스를 제공해야만 하는 그런 류의 서비스(금융앱이라던지... )는 당연히 아니므로 그냥 속편하게 iOS 13으로 정했다. 아래 사이트를 참고하여 정했다. https://developer.apple.com/kr/support/app-store/ App ..
Memory Safety 기본적으로, Swift는 코드에서 안전하지 않은 동작이 발생하는걸 방지해준다. 예를들어, Swift는 변수를 사용하기 전에 초기화하도록 하고, 할당 해제(dellocated)후 메모리에 접근하지 않도록 하며, Array indices에서 out-of-bounds error가 있는지 확인한다. → 변수 초기화를 안하면 컴파일 오류를 낸다던가, 해제된 메모리에 접근하거나 array out of index 에러 발생 시 런타임에 오류가 떨어지는 것을 말하는듯 하다. Swift는 또한 동일한 메모리에 대한 다중 접근이 충돌(conflict)하지 않도록 한다. 어떻게? 메모리의 location을 수정하는 코드가 그 메모리에 단독으로 접근할 수 있도록 하는 방법으로. → 메모리의 위치를 수..