iOS에서 로컬데이터베이스를 쓸 때 보통 SQLite, CoreData, Realm 을 사용합니다. 이중에서 CoreData는 애플이 제공하는 것이고 SQLite와 Realm은 써드파티 라이브러리 입니다. SQLite는 sql문을 써야하는 반면, CoreData와 Realm는 sql문을 안써도 됩니다. CoreData와 Realm은 데이터를 Object로 다루기 때문에 더 편하고 간단하게 느껴집니다. (하지만 2020년에 올라온 SQLite 좋다는 글. 아직 안읽어봄.) https://www.raywenderlich.com/6620276-sqlite-with-swift-tutorial-getting-started SQLite With Swift Tutorial: Getting Started In this..
iOS에서 서버와 통신할때 주로 Alamofire를 많이 씁니다. 얼마전 저의 블로그 첫글을 찾아봤는데, Alamofire와 관련된 내용이더라구요..! 😱 이렇게 Alamofire는 iOS 시작할때 많은 사람들이 기본적으로 쓰는 네트웤 라이브러리라고 할 수 있는 것 같아요 하지만 Alamofire 를 안쓰면 보통 URLSession.shared.dataTask을 통해 이런식으로 코드를 작성합니다. Alamofire의 내부를 살펴보기전에, URLSession과 URLSessionDataTask에 대해서 살펴보려고 합니다 :-) URLSession URLSession 은 특정한 URL를 이용하여 데이터를 다운로드하고 업로드하기 위한 API를 제공합니다. 관련 Delgegate는 URLSessionDelega..
저는 얼마전에 Unit Test를 돌리면 objc[60376]: Class _TtC4RIBs6Worker is implemented in both ~/Library/Developer/CoreSimulator/Devices/3A6725C3-27B5-4AD4-AE45-74695DC574BD/data/Containers/Bundle/Application/EEED6AE8-0469-42AD-84F2-B470FFB6CFCE/SimpleMemo.app/Frameworks/RIBs.framework/RIBs (0x104851920) and ~/Library/Developer/Xcode/DerivedData/SimpleMemo-gpgaamoyiqvqbnaehzbepweorlts/Build/Products/Debug-ip..
[1] Podfile.lock을 여는 명렁어 open podfile.lock [2] cocoapod 버전 업그레이드 아래 명령어로 현재 버전을 확인하고 pod --version 원하는 버전으로 업데이트 시켜주세요 sudo gem install cocoapods -v 1.9.1 ruby 버전이 너무 낮아서 에러가 날 때가 있습니다. 그럴때는 이 블로그를 참고해서 ruby 버전 업 해줍니다. [3] 로컬 캐쉬를 지울때 아래 명령어로 로컬 캐쉬리스트를 출력할 수 있습니다. pod cache list 그리고 아래 명령어로 로컬 캐쉬들을 모두 지울 수 있습니다. pod cache clean --all (www.stackoverflow.com/questions/46428752/how-to-clear-or-clean..
🎅 간단 요약 🎄 [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..
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. ..
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..
- Total
- Today
- Yesterday
- flutter build mode
- 플러터 싱글톤
- Flutter Text Gradient
- 플러터 얼럿
- flutter 앱 출시
- Dart Factory
- Django FCM
- 장고 Custom Management Command
- Django Firebase Cloud Messaging
- SerializerMethodField
- github actions
- Flutter 로딩
- Watch App for iOS App vs Watch App
- ipad multitasking
- cocoapod
- Flutter Spacer
- Django Heroku Scheduler
- Sketch 누끼
- Python Type Hint
- Flutter Clipboard
- METAL
- ribs
- flutter dynamic link
- PencilKit
- drf custom error
- flutter deep link
- Flutter getter setter
- 장고 URL querystring
- DRF APIException
- 구글 Geocoding API
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |