🎅 간단 요약 🎄 [1] 깃헙에 레포지토리를 하나 만듭니다 [2] 소스트리에 클론해줍니다 [3] 해당 폴더에 들어가서 SPM을 만들어줍니다. 명렁어: swift package init [4] 빌드가 잘 되는 지 확인합니다 명령어: swift build [5] 테스트를 잘 돌리는 지 확인합니다 명령어: swift test [6] 프로젝트를 만들어줍니다 명령어: swift package generate-xcodeproj 그리고 프로젝트가 잘 열리는 지 열어봅니다 명령어: xed . (현재 폴더에 있는 프로젝트를 열어주는 명령어입니다) 이렇게 잘 열렸습니다. 예전에는 이렇게 구성되어있었는데, 이렇게 프로젝트가 생겼습니다. [7] (옵션) dependencies를 설정해줍니다 현재 Package.swift에 가..
Cocoapod 라이브러리 만들어보기 포스팅을 쓰면서, SPM으로도 이 라이브러리를 import하는 방법을 찾아보고 싶었는데, 기록합니다. ⚠️ 이 포스팅은 저의 의식의 흐름(?) 순서대로 구성되어있으므로 깔끔한 순서를 보고 싶으신 분은 Supporting Swift Package Manager in your Pod in 5 simple steps 이 글을 참조하세요!_! ⚠️ [1] 나의 라이브러리 폴더에 들어가서 밑의 명령어를 칩니다. swift package init 그러면 이렇게 Package.swift 등등의 파일을 만들어줍니다. 이 변경사항을 커밋해줍니다. [2] 나의 라이브러리를 올려둔 깃헙에 들어가서 새로운 릴리즈 버전을 만들어줍니다. 0.1.0 에서 0.1.1로 Latest Release..
XCTUnwrap 은 말그대로 테스트에서 언래핑을 해야하는 상황에서 쓰는 언래핑함수이다. 나는 테스트에서는 그냥 느낌표로 강제 언래핑을 해주는데, TDD 스터디하는 책에서는 이 함수를 이용하여 언래핑을 해주는 것을 보았다. 그래서 두 방식이 무엇이 다른지 기록한다. 값이 nil이 상황에서 강제언래핑을 하면 Fatal error가 난다. => 테스트 실패로 표시안됨. XCTUnwrap으로 언래핑을 해주면 해당 라인에서 테스트 실패가 난다. => 테스트 실패로 표시됨.
XCTAssert에는 line 파라미터가 있습니다. (XCTAssert의 친구들인 XCTAssertEqual과 XCTAssertTrue 등등 에도 있습니다.) failure이 일어난 라인을 넘겨주면, 해당 라인에서 실패했다는 표시를 띄워줍니다. 이게 언제 쓰이냐면....!!!! Assert문을 하나의 함수로 빼서 여러 테스트 함수에서 사용할때 유용하게 쓰입니다 [1] line을 넘겨주지 않았을때 이 상태에서 testSecondText를 돌려보면 딱 Assert함수에서 실패메세지가 뜹니다 그리고 testFirstText를 돌려보면 딱 Assert함수에서 실패메세지가 뜹니다 [2] line을 넘겨줄 때 testSecondText를 돌려보면 실패한 해당 테스트안에서 실패메세지가 표시됩니다 testFirstTe..
1. 환경설정 Blue View의 subview는 Yellow View Yellow View의 subview는 GreenView & PurpleView 인 형태로 실험을 준비합니다 일일이 돌려보기 귀찮으니 Preview를 준비합니다. 그리고 blueView에 shadow를 주세요..!! blueView에 shadow를 줬으니 Preview에서 blueView 밑에 shadow가 들어간 것을 볼 수 있습니당..!! 여기까지 실험 전, 환경설정한 코드 입니다 2. 실험 이제 여기서 blueView의 background를 clear로 줘봅시다 짠! 자식뷰인 yellow view한테 shadow가 적용된 것을 볼 수 있습니다. 그 다음 yellowView의 backgroundcolor도 clear로 설정해줍니다..
XCODE 11 + macOS Catalina 라면 Xcode Preview 기능을 쓸 수 있습니다. SwiftUI가 아니라 기존 UIKit로 짰던 코드도 Preview기능을 사용할 수 있습니다!! 이제 @IBDesignable쓰거나 디바이스 별로 빌드해서 View를 확인해보지 않아도 됩니다 (감동..🥺) 첫번째, UIView를 Preview로 보기 RankingBarView라는 View를 예를 들어보겠습니다. 이 View는 1위, 2위 같은 랭킹을 보여주는 막대그래프이고 막대그래프가 올라가는 애니매이션도 사용할 수 있습니다. 이 뷰를 Preview로 보기 위해서 3가지 절차를 거쳐주세요 : ) 1. 환경 설정해주기 이렇게 환경설정 해줍니다. 우리는 #if 와 #endif 안에서 작업해줄 것입니다 2. ..
ReactorKit으로 단방향 반응형 앱 만들기(전수열) 의 라이브 코딩 예제를 따라해본 것을 정리 -- !! 우선 ReactorKit에 대한 개념은 미디엄 과 슬라이드 에 잘 설명되어있습니다. 간단히 플로우만 보자면 1. View는 Action(사용자 입력 등)을 Reactor에게 전달한다 2. Reactor는 전달받은 Action에 따라 비즈니스 로직을 수행한다. 3. 그 후 Reactor는 상태를 변경하여 View에게 전달한다 Reactor를 좀 더 자세히 들여다보면 이런 그림입니다 Reactor는 Action이 들어오면 두 단계에 거쳐서 State를 변경하는 것을 볼 수 있습니다 1. mutate() 함수 - Action 스트림을 Mutation 스트림으로 변환하는 역할 - 이곳에서 네트워킹이나 ..
UIView에 관해 많이 까먹어서 옛날에 들었던 Stanford iOS 강의 중 View 부분을 다시 듣고 있는데, 까먹지 않게 정리 중 --! [1] bounds가 change되면 다시 draw를 하는가?! * 예제로 보여주신 것 이렇게 뷰를 만드셨고, 돌려보면 이렇게 나옵니다 - 기본 설정에서 (contenMode가 scaleToFill..!!) rotate할 때 - 이렇게 contentMode를 Redraw로 바꾸고 rotate할 때 => 이렇게 설정하면 bounds가 change 될때, drawRect을 다시 부르게 됩니다 이 내용 관련 정말 정리 잘한 블로그! https://useyourloaf.com/blog/stretching-redrawing-and-positioning-with-conte..
1. 기본 세팅하기 [1] 터미널을 켜고 원하는 폴더에 들어가준 뒤, 다음과 같은 명령어로 라이브러리를 만들어줍니다 pod lib create 프로젝트 이름 저는 이렇게 documents에 'SpeechBubbleView' 라는 프로젝트 이름으로 만들어줬음--!! [2] 그러면 이런 질문들을 물어보는데, 대답해줍니다 (ios앞의 ㅑ 는 오타입니다... 😥) 저는 ios 플랫폼이고, 언어는 swift이고, 라이브러리 예시를 보여주고 싶어서 데모 애플리케이션을 넣을 것이고, 테스트는 빼준다~ 라고 대답했습니다 그러면 SpeechBubbleView 프로젝트가 뿅- 하고 생기고 열립니다 [3] 그 다음 깃헙에 들어가서 저장소를 만듭니다 여기 두번째 블럭의 'push an existing repository fr..
UIWindow에 대한 간단한 설명 (from stanford ios) UIWindow의 대한 자세한 설명은 친절한 제드님과 알파카오빠님의 글을 읽고 오세요 :) https://zeddios.tistory.com/283 iOS ) UIWindow. 그리고 UIView 안녕하세요 :) Zedd입니다. 오늘은 UIWindow와 UIView에 대해서 공부를 해볼거에요. 위 사진들은 UIWindow, UIView라고 검색하면 바로 볼 수 있는 사진들이에요. UIWindow위에 UIView가 올라가 있는 모습을 볼.. zeddios.tistory.com https://wnstkdyu.github.io/2017/12/29/uiwindow/ UIWindow 공부 UIWindow 객체에 대해 가장 최상단에 위치한 화면..
- Total
- Today
- Yesterday
- ipad multitasking
- Flutter Spacer
- flutter build mode
- flutter dynamic link
- 장고 Custom Management Command
- cocoapod
- DRF APIException
- Python Type Hint
- Flutter Text Gradient
- 플러터 싱글톤
- Flutter getter setter
- PencilKit
- 장고 URL querystring
- SerializerMethodField
- Flutter Clipboard
- drf custom error
- 플러터 얼럿
- Django FCM
- 구글 Geocoding API
- Flutter 로딩
- Watch App for iOS App vs Watch App
- METAL
- Django Heroku Scheduler
- flutter 앱 출시
- github actions
- Django Firebase Cloud Messaging
- Sketch 누끼
- Dart Factory
- ribs
- flutter deep link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |