본문 바로가기
  • Apple Developer Academy @ POSETECH 1기, 비전공자의 일지
  • WWDC 22 Swift Student Challenge Winner
  • 프라하에서 애플 아카데미 면접을 본 썰...

ios7

[Swift] 왜 프로젝트에서 protocol 을 그렇게 많이 쓸까? - 의존성 역전 주입에 대해 (DIP) - #1 드디어 sopt 합동 세미나 과제가 다 끝났다. 물론 내 뷰만... 아직 합쳐야한다. 그래서 오늘 딱 쉬면서, 영화도 한편 보고 프로젝트 구조나 패턴, cs 를 공부해야겠다 했다. 그래서 어떤 걸 먼저 공부할까하다가, project 에서 바로 사용할 수 있으면서도 디자인 패턴에도 관련된 것이 어떤게 있을까 고민했다. 그러다가 떠오른건 계속 궁금했었고, 또 다른 사람의 TIL 을 봐도 약간 이해가 덜 됐던 "의존성 역전 주입" 이 떠올랐다. 영어로는 Dependency Inversion Principle 이다. 간단히 말하면 "모듈끼리의 의존성을 직접적으로 묶지 말고, 간접적으로 묶어 의존성을 떨어뜨려 조금 더 유연한 구조를 가져가자." 라는 것이 되겠다. 자 각설을 각설하고 이걸 계속 알고 싶었던 이유부.. 2023. 5. 29.
UISrollView 그냥 이렇게 써보자. [예시 코드 딱!] 안녕하세요 피칸파이🥧입니다. 거의 1년 반 정도 개발을 하고 있는데, 스크롤뷰를 구현을 해본적이 없다. (제대로) 아마도 디자이너의 부재와, 스크롤을 한참을 내릴 정도의 컨텐츠이 담긴 앱을 다뤄본 적이 없어 그럴 것이다. (라고 하자.) 사용을 많이 해보진 않았지만, collectionView 와 tableView 를 그리면서 ScrollView 가 어떻게 이루어질지 대충 예상만 됐었다. ScrollView 내부에 subviews 가 있을거고 이 subviews 들을 ScrollView 의 layout 에 맞춰 조절하면 되지 않을까 했는데, 실제로 찾아보니 한 단계가 더 있었다. 예전에 잠깐 Stroyboard 를 쓸때도 ambiguous 위치 라면서 미친듯이 보라색 오류가 떴던 기억이 있다. 공식다큐를.. 2023. 5. 18.
SwiftLint 를 Xcode에 적용시키기 (이슈 및 헷갈렸던 점도 포함!) 이번엔 Sopt 합동세미나를 가졌다. 합동세미나에 대한 이야기는 아니지만, 정말 오랜만에 거의 반년만에 팀플을 하게 됐다. 그러면서 각자 어떤 것을 해봤으면 좋겠냐 라는 말에 lint 를 쓰자 라는 말이 나왔다. Swiftlint 를 써본 적은 있지만, 직접 세팅을 해본 적은 없었다. yml 에 대한 별로 좋지 못한 기억이 있어서... (Github Action... 하... 빨리해야하는데왜이렇게헷갈릴까) 하지만 그렇다고 안할 순 없지! 이러고는 여기저기 찾아봤는데 그렇게 어렵진 않았다. 하지만 진행하면서 헷갈리는 점이 있어서 따로 적었다. 또 나중에 나도 다시 보러 올지도 모르니깐? ✅ 총 5가지의 단계가 있다. 1. HomeBrew 를 설치하고, HomeBrew 를 통해 SwiftLint 를 설치한다.. 2023. 5. 15.
[URLSession(1)] Swift를 통해 JSON Encoding Decoding 할 때 받아온 JSON 의 Key 가 SnakeCase 라면 어떻게 할까? + 오류 (Codable, CodingKeys) 안녕하세요 피칸파이🥧 입니다. 이제는 인사를 계쏙 해야겠네요 Sopt 에서 서버 통신을 위해 Alamofire 를 세미나에서 배웠습니다. 서버 통신은 작년 애플 아카데미에서 UrlSession 으로 오픈API 를 다룰 때 잠깐 써보고 말아서 통신 자체가 낯설었는데요. 뭐 서버를 제대로 공부한적도 없었기에 구글을 오가며 봤던 얕은 통신 지식 밖에 없던 차에 encoding 과 decoding 에 대해서 조금 더 공부하고 싶었습니다. Codable 과 CodingKeys ...! 먼저 Codable 부터 알아봅시다! Codable: A type that can convert itself into and out of an external representation*. typealias Codable = Dec.. 2023. 5. 8.
UICollectionView 를 통해 애니메이션이 있는 Segmented TapView 구현해보기 UIKit, Swift, SnapKit 티빙 앱의 홈화면처럼 애니메이션이 있는 탭 화면을 만들고 싶었다. 탭 하단에 Underline 이 있고, 움직일 때 해당 cell 의 width 와 같으며, 애니메이션이 있는 화면 말이다. 처음의 계획은 다음과 같았다. 1. 따로 TapView 를 UIView 로 빼서 만들자. 2. UICollectionViewCell 에는 underline 을 넣어도 작동시킬 수 없으니 superview 인 TapView 에 underline 을 UIView 로 따로 빼서 didSelect 이 되면 움직이게 만들자. [ ISSUE ] 그런데 문제가 생겼다. cell 의 정보를 잘 받아와 width 와 cell 의 위치를 잘 취합했다. 하지만 보다시피 스크롤이 된다. 스크롤을 하게.. 2023. 5. 2.
UIKit UICollectionView 에서 초기값이 선택되어 있게 만들기 - PreSelected UICollectionView 를 쓰면서 초기 값이 선택이 되어 있어야 하는 상황에 맞닥뜨렸다. 콜렉션뷰나 테이블뷰나 보통 리스트를 만들고, select 할 것을 찾고 나서 누르는 상황이 나오기 때문에 어떤 cell 이 preSelected 라는게 된다는 건 자주 나올 수 없는 상황이다. 하지만 어떤 경우에는 꼭 필요한 경우가 있을 것이다. SOPT iOS 과제를 하던 중, Tving 의 컴포넌트를 구현하면서 진행하고 있었다. MVVM 로 진행하면서 이번에 처음으로 VC 에 직접 뷰를 그려보지 않겠다 라는 마음으로, 세부 View 를 따로 그리고 있었다. 위에 보이는 Header Tap View 를 UICollectionView 로 구현을 하고 있었는데, 첫 cell 이 기본적으로 선택이 되어 있었다. .. 2023. 5. 1.