본문 바로가기

Swift

(28)
[iOS] No 4. Scale up 기본 애니메이션에 변화 주기 with AnchorPoint + 발생 가능한 에러 해결하기 안녕하세요. JourneyOfFaith 앱을 개발하며 4번째 포스트를 작성하게 되었습니다. 이번에는 BorderAnchor를 통해 연필로 밑줄을 긋는 효과인, 제가 원했던 시작점에서 도달점까지 보여지는 애니메이션 효과를 주는 방법에 대해 소개하려구 합니다! 화면 소개 여기 빨간색 점선 영역 안에 초록색이 맨 처음 보여질 때 빨간색 영역 왼쪽 엣지 부분에서부터 보여져서 오른쪽으로 커지는 애니메이션을 주려고 합니다! 이렇게 width가 0이었다가 "3일 동안" 글자 크기만큼의 width까지 underline이 자연스레 연필로 긋듯 그어지는 효과를 연출해보려구 합니다. 본격적인 애니메이션NSUnderline에서 지원하는 여러 style보다 thickness가 좀 커져야 했었어서 저는 Layer를 추가했습..
[Programmers][Swift] 110 옮기기 - Level3 [프로그래머스] 110 옮기기[ 링크 ]간단한 문제 요약0과 1로 이루어진 어떤 문자열 x에 대해서 x에 있는 "110"을 뽑아, 임의의 위치에 삽입합니다."를 반복하여 만들어진 x를 사전 순으로 만들자. (최대한 작은 수로 만들자)문제 풀이110을 전부 추출하고, 나머지 문자열들에 대해서 마지막 원소부터 0이 존재하는지 여부 체크 후 해당 원소 뒤에 붙이거나, 0이 없다면 110 배열을 붙인다면 사전순으로 정렬됨. 110을 추출해서 뒤로 옮기거나 앞으로 옮긴 결과.. 110이 이어져있다는게 특징이었는데 규칙 찾기가 어렵다.. 문제를 풀면서 String.Index를 적극 활용했는데 시간초과가 걸렸다.let solution: ([String]) -> [String] = { $0.map(minimize) }..
[프로그래머스][Swift] 표 편집 - Level3 프로그래머스 표 편집[링크]간단한 문제 요약명령어 기반으로 표의 행을 선택, 삭제, 복구하는 과제를 맡았다. 파란색으로 칠해진 칸이 현재 선택된 행이고, 한 번에 한 행만 선택할 수 있구 표의 범위를 벗어날 수 없다."U X": 현재 선택된 행에서 X칸 위에 있는 행을 선택합니다."D X": 현재 선택된 행에서 X칸 아래에 있는 행을 선택합니다."C" : 현재 선택된 행을 삭제한 후, 바로 아래 행을 선택합니다. 단, 삭제된 행이 가장 마지막 행인 경우 바로 윗 행을 선택합니다."Z" : 가장 최근에 삭제된 행을 원래대로 복구합니다. 단, 현재 선택된 행은 바뀌지 않습니다.문제 풀이어떻게 삭제한 정보를 가져올 수 있을까?, 어떻게 삭제하지 않은 행들만 탐색할 수 있을까?, 답 출력할 때 어떻게 행들의 삭..
[프로그래머스][Swift] 등대 - Level3 프로그래머스 문제 [ 링크 ] 간단한 문제 요약n개의 등대가 있고, 등대와 등대 사이 오가는 뱃길은 n-1개 존재한다. 어느 등대에서 출발하든, 다른 모든 등대로 이동할 수 있다. 몇개의 등대만을 켜서 전력을 아끼려구 한다. 한 뱃길의 양쪽 끝 등대 중 적어도 하나는 켜져있도록 등대를 켜 두어야 한다.문제 풀이처음엔 그리디하게 문제를 접근했는데 가장 많이 연결된 등대를 키지 않고도 그 주위의 등대들을 켜 두면, 최소한의 켜진 등대 개수가 구해질 수 있었습니다. (x) "한 정점에서 다른 모든 등대로 이동할 수 있다 + n개의 등대 및 뱃길은 n-1개 존재한다." 에서 이 문제는 사이클이 없는 그래프임을 알 수 있습니다. (트리)(n개의 정점 중 간선이 n-1개)  dfs와 dp를 통해 특정 정점에서 등대..
[Swift Package] No1. Swift Package 편하게 접근해보기🤩 | #의존성 #Package.swift #ACL 안녕하세요. 오랜만에.. 포스트를 다시 작성하네요. 이번 포스트는 Swift Package에 대해서 탐구해보려고 합니다. A Package의 특정 타겟에서 외부 repository 의존성 추가 및 로컬 library 의존성 추가. Package.swift에 대해 파해치려구 합니다."An Introduction to Swift Package Manager"( kodeco 링크 )글을 활용해서 제가 아는 지식도 정리할 겸... 이게 예전에 올려진 글이라 몇 명령어는 실행이 되지 않을 수 있어서, 제 스타일대로 커스텀을 하며 파해치려구 합니다. 오늘의 키워드!Package.swifttargetLibraryProductDependency[ 주요 개념들 ]약간 개념을 간단하게 정리하겠습니다.  1. Package..
[iOS] super 클래스에서 발생되는 delegate! sub class의 delegate로 한번에 처리하기 | Base view #1 안녕하세요. 벌써 수확의 계절이 왔네요. (전 이제부터 시작인데,,🌻 ㅎㅎ) 요즘은 앱 개발을 할 때 어떻게 공통적인 코드들을 줄일 수 있고 쉽게 활용할 수 있을지를 고민하며 개발을 합니다. 오늘은 view 타입의 Base(super) class에서 선언한 delegate와, base class를 상속받은 sub class에서 어떻게 sub class에서 추가적으로 발생하는 또 다른 delegate를 super class의 delegate와 같이 sub class의 한 개의 프로퍼티에서 수행할 수 있는지 해결 과정을 글로 작성하려고 합니다: ] 공통 뷰와 BaseDelegate를 구현하게 된 상황 지금 개발중인 "여행을 가다" 앱에서는 위와 같은 컴포넌트들이 있습니다. 제가 생각했을 때 이 사진에서 공통..
[iOS architecture] Swift에서 MVVM과 MVC 아키텍처 차이점 자세히 파해치기! | ViewModel, Model의 역할 구분하기!!!! 안녕하세요. 이번 포스트는 MVVM 아키텍처를 사용할 때 Combine framework로 input/output을 정의하기 전에 MVVM과 MVC의 차이점을 파해쳐보면 좋을 것 같아 글을 따로 작성하게 되었습니다. 소프티어 부트캠프 활동을 하며 새로 알게된 내용이 많아 정리도 할 겸 글을 작성하게 되었습니다. 중요. 가장 중요하다고 생각이 드는 MVC와 MVVM의 차이가 무엇인지 생각하기 MVC와 MVVM의 차이점이 무엇일까요? 지금 당장 차이점을 모른다면 ViewModel을 선언해서 사용 할 이유도 없고 input/output binding으로 흐름을 제어하는 이유가 없습니다. 굳이 MVVM을 사용하는 이유도 없습니다. 제 글을 통해 조금이라도 도움이 되셨으면 좋겠지만 제가 표현을 잘 못해서 글이 조..
[iOS] UnitTest?! 테스트 코드를 짜면 좋은 이유 | Protocol을 통한 의존성 주입+역전 개념 완전 뿌수기 안녕하세요!! 요즘 에어컨 빵빵한 곳에 있으니 공부가 잘 되네요. 오늘 "테스트 코드"를 일부 주제로 열정 빵빵한 부트캠프 팀원들과 의논하며 테스트 코드에 대해 의견을 나누며 공부 했습니다!!! 제가 테스트 코드를 작성하며 알게된 뜻밖의 장점?과 프로토콜을 사용하는 이유와 프로토콜의 장 단점, 의존성 주입과 역전 원칙에 대해서 소개하려고 합니다. 추가로 제가 이해한 Stub과 Mock에 대해서 차이도 소개할 것입니다. 소프티어 부스트캠프.. JK님 덕에 정말 좋은 개념들을 알아가게됬습니다... Unit Test. 누구세요? 뭘 테스트하는 거죠? Unit test를 소개하기 전에, 우선 테스트 코드!는 내가 또는 다른 개발자가 구현한 일부 기능이 잘 동작되는지!! sut(system under test)의..