일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Protocol
- optional
- 이니셜라이저
- type
- Swift
- property
- UIKit
- struct
- tuist
- Git
- enum
- Class
- url
- Unicode
- delegate
- Xcode
- extension
- Terminal
- initializer
- initalizer
- Method
- 디자인패턴
- 스위프트
- IOS
- init
- instance
- String
- Foundation
- 코딩테스트
- interpace
- Today
- Total
목록Swift (59)
아리의 iOS 탐구생활
요즘 공부할 때 구글링 보다는 GPT를 활용해서 공부를 하고 있는데요.이번에 WWDC24가 발표되면서 회사 팀 내에서 스터디를 시작하게 되었습니다.그러면서 제가 효율적으로 공부하기 위한 방법을 찾다가... 발견한 꿀팁을 공유하기 위해 작성하게 되었습니다. 특정 세션 내용을 간단하게 정리된 내용을 추출해보고 싶다.세션 영상을 보기 전에 약간의 이해도가 있는 상태에서 영상을 보면 좀 더 이해하기 쉽지 않을까? 해서 고민하다가 아래와 같은 방법을 생각하게 되었습니다. 특정 세션의 WWDC 유튜브 영상을 진입한다.해당 영상의 영어 자막 파일을 .txt 파일로 추출한다.아래 링크로 진입해서 유튜브 영상 링크를 붙여넣어 다운로드 버튼을 누르면 자막 파일을 만들어준다.https://downsub.com/GP..
GitHub - sunshinejr/SwiftyUserDefaults: Modern Swift API for NSUserDefaults Modern Swift API for NSUserDefaults. Contribute to sunshinejr/SwiftyUserDefaults development by creating an account on GitHub. github.com SwiftyUserDefaults는 한 곳에서 키를 정의하고, 값 유형을 쉽게 사용할 수 있으며, 컴파일 시 안전성과 편의성을 높여주는 컴파일 타임 검사를 무료로 이용할 수 있다고 한다. 한마디로 UserDefaults를 사용할 때, 타입 안전성과 코드의 간결성을 동시에 얻을 수 있는 아주 편리한 라이브러리다. Generic, ..
최근에 웹뷰 관련된 작업을 진행했는데, 웹뷰에서 보내는 메시지를 전달받아 화면을 이동하거나 띄우는 동작을 구현하였다. 사실 뭣도 모르고 기존 프로젝트에 작성되어있던 코드를 참고하여 작업을 완료하였기 때문에... 그냥 넘어가기 굉장히 찝찝하고 이해가 부족하다고 느껴서 정확히 이해하고 넘어가고 싶어서 정리하게 되었다. 내가 알아볼 키워드는 다음과 같다. WKScriptMessageHandler WKWebView evaluateJavaScript iOS에서 웹뷰를 사용할 때 양방향 통신을 하는 방법 WKScriptMessageHandler | Apple Developer Documentation An interface for receiving messages from JavaScript code running..
안녕하세요. 요즘에 취업 이후 글이 뜸해진 것 같아... 반성하고 다시 돌아온 아리입니다. 직장생활 뿐만 아니라... 어쩌다가 갑자기 강아지를 키우게 되어서 육아하느라고 정신이 없었습니다. (TMI) 취업에 성공하고 개발자로 회사생활을 시작한지 5개월이 다 되어가네요. 울집 강쥐도 태어난지 5개월이 되었어요.🥹 강아지와 함께 살게되면서 생각해야할 것과 할일이 많아져서 너무 바쁘지만 그래도 덕분에 행복하고 즐거운 생활을 하고 있답니다. 이번 글에서는 제가 회사 프로젝트에 Tuist를 적용하게 되었는데, 그 중 템플릿을 만들어 모듈 생성을 자동화하는 방법을 기록해보려고 합니다. 시작하기 전에 저희집 귀염둥이 사진 먼저 투척하고 시작하겠습니다. 💁🏻♀️ # tuist scafflod 해당 명령어를 사용해서 ..
YAPP 동아리 21기 iOS 2팀 핏프티 프로젝트를 진행하면서 겪었던 문제입니다. Tuist 4 버전부터는 발생하지 않으니 참고해주세요. # 문제 상황 먼저 dependencies에 Amplify 라이브러리 설치를 위해 SPM 목록에 아래와 같이 코드를 추가해주었다. import ProjectDescription import ProjectDescriptionHelpers let dependencies = Dependencies( carthage: [], swiftPackageManager: [ .remote( url: "https://github.com/kakao/kakao-ios-sdk", requirement: .upToNextMajor(from: "2.13.0") ), .remote( url: "..
다들 API KEY 관리를 어떻게 하시나요? 개발자마다 각각 방식이 다 다른 것 같아요. 이 글에서는 제가 협업하면서, 개인 프로젝트를 진행하면서 알게 된 관리 방법들을 적어보았습니다. 혹시 또 다른 방법이 있다면 공유해주세요. 😊🙏🏻 왜 API KEY를 숨겨야 할까? API Key를 숨기지 않고 깃허브에 그대로 올리면 다른 사람들도 API key를 볼 수 있어서 되돌릴 수 없는 일들이 벌어질 수도 있다. AWS 해킹당한 경험담 실제로 Github에 API KEY를 숨기지 않고 올려서 150만 원 정도 청구된 사례가 있다. 따라서 아무나 API 요청을 하지 못하도록, API KEY를 Github 레파지토리에 실수로라도 올리지 않도록 비밀스럽게 관리해주는 것이 중요하다. static 변수 활용하기 아래와 ..
YAPP 동아리 Dev. Camp 1차때 팀원들과 함께 해결한 문제이다. # 문제 상황 Tuist로 프로젝트 생성을 하였다. 생성을 하니, .xcworkspace 파일이 자동으로 생성된 .gitignore에 포함되어있었다. 아마 충돌을 대비해서 추가해둔 것 같다. 이후 Xcode Cloud 적용을 위해서 빌드를 시도했는데, .xcworkspace를 찾을 수 없다는 에러가 났다. Swift Package Dependencies Workspace Fitfty.xcworkspace does not exist at Fitfty/Fitfty.xcworkspace 이 문제를 해결하기 위해서 .gitignore에 등록되어있는 .xcworkspace를 제거하자니 매우 찝찝하였다. 협업 시 충돌 피하자고 등록해둔 것 같..
이번에 동아리 활동을 시작하게 되면서 프로젝트를 모듈화하여 관리해보자는 의견이 나와 Tuist를 사용해보게 되었다. 어떤 녀석인지 한번 알아보자!!! Tuist는 Xcode 프로젝트와의 생성, 유지 관리 및 상호 작용을 용이하게 하는 것을 목표로 하는 커맨드 라인 인터페이스(CLI, 명령줄 도구, 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식)이다. 바이너리로 배포되므로 종속성을 관리하기 위해 다른 도구에 의존하지 않고도 쉽게 설치하고 사용할 수 있다. 모듈화의 이점 모듈화로 나누어져 있으면 빌드 시 변경된 부분만 빌드하면 되기 때문에 빌드 속도가 향상된다는 장점이 있다. 모듈간 결합도는 낮추고 응집도를 높이는 형태 .pbxproj에 UUID의 conflict을 줄일 수 있다는 장점도 가지고 있다...
# 문제 상황 Github API로 스타표시를 변경한 후 (PUT), 사용자의 스타 체크한 레파지토리 목록을 불러올 때 (GET), 업데이트 된 목록이 아니라 기존에 불러왔었던 Response를 불러오는 문제로 레파지토리 목록이 업데이트가 제대로 되지 않는 현상이였다. 정확히는 바로 새 데이터로 업데이트 되지 않고, 몇초 이후에 다시 네트워크 요청을 하여 재시도하면 새 데이터를 불러오는듯한 현상이였다. # 고민 해보기 왜 PUT 이후 GET을 요청했을 때, 업데이트 된 레파지토리 목록을 불러오는데 시간이 걸릴까? API 자체적인 문제인가? 포스트맨으로도 테스트 해보자! 정상이다. 혹시 리스폰스를 캐시처리 하나...? 기존에 요청해서 받았던 리스폰스가 캐싱되어 새롭게 업데이트 된 데이터를 불러오는 것이 아..
와.. 블로그글 너무 오랜만에 쓴다.. 맨날 코드에 이리치이고... 저리치이며 바쁘게 살면서...혼자 메모장이나 TIL에 끄적거리다가... '와, 이건 정말 꼭 포스팅해야해!!!' 라는 의욕이 솟구쳐올라서 작성하게 되었다. 다들 도움이 많이 되었으면 좋겠다는 마음으로... 열심히 적어봤다. 초보 개발자 화이팅!!!!!!! 📚 글을 읽기 전에 필요한 개발 지식 URLSession 의존성 주입(DI) Alamofire RxSwift (조금만 알아도 되요... 비중이 적음.) 유닛 테스트를 할 때, 라이브러리인 Alamofire는 어떻게 테스트하면 좋을까? 검색했더니 URLProtocol 타입을 이용해서, 네트워크 요청 결과를 Mocking해서 테스트를 하는 것 같다. 그렇다면 나도 도전...!!! 먼저 Al..