분류 전체보기
-
SwiftUI - refreshableSwiftUI 2022. 12. 8. 10:16
안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI의 List에서 사용 가능한 refreshable이라는 새로 고침 기능에 대해 알아보겠습니다🙌 우선 해당 기능은 iOS 15 부터 사용이 가능해요! 참고로 WWDC2021에서 소개되었습니다. 비교적 어떻게 보면 최신 메서드이기에 현업에서 13, 14부터 지원을 한다면 사용할 순 없습니다. 그렇지만 앞으로 미니멈 타겟은 점차 올려갈것이고 배워두면 좋기에 이참에 한번 트라이 해봅니다🙌 여러분 모두 테이블뷰 혹은 컬렉션뷰로 된 즉, 리스트로 데이터가 뿌려진 뷰의 경우 최상단에서 아래로 드래깅 시 새로 고침이 되면서 데이터를 최신으로 갱신하는 그런 기능을 가진 앱을 아주 많이 보셨고 익숙하실거라 생각합니다. 모두에게 사실은 친숙한 기능이긴한데 SwiftUI..
-
프로그래머스 - k진수에서 소수 개수 구하기Algorithm 2022. 12. 7. 15:22
아래 문제는 프로그래머스에서 제공하는 k진수에서 소수 개수 구하기의 문제입니다🧑🏻💻 문제 제시 더보기 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소수 오른쪽에만 0이 있고 왼쪽에는 아무것도 없는 경우 0P처럼 소수 왼쪽에만 0이 있고 오른쪽에는 아무것도 없는 경우 P처럼 소수 양쪽에 아무것도 없는 경우 단, P는 각 자릿수에 0을 포함하지 않는 소수입니다. 예를 들어, 101은 P가 될 수 없습니다. 예를 들어, 437674을 3진수로 바꾸면 211020101011입니다. 여기서 찾을 수 있는 조건에 맞는 소수는 왼쪽부터 순서대로 211, 2,..
-
프로그래머스 - 귤 고르기Algorithm 2022. 12. 6. 23:20
아래 문제는 프로그래머스에서 제공하는 귤 고르기의 문제입니다🧑🏻💻 문제 제시 더보기 경화는 과수원에서 귤을 수확했습니다. 경화는 수확한 귤 중 'k'개를 골라 상자 하나에 담아 판매하려고 합니다. 그런데 수확한 귤의 크기가 일정하지 않아 보기에 좋지 않다고 생각한 경화는 귤을 크기별로 분류했을 때 서로 다른 종류의 수를 최소화하고 싶습니다. 예를 들어, 경화가 수확한 귤 8개의 크기가 [1, 3, 2, 5, 4, 5, 2, 3] 이라고 합시다. 경화가 귤 6개를 판매하고 싶다면, 크기가 1, 4인 귤을 제외한 여섯 개의 귤을 상자에 담으면, 귤의 크기의 종류가 2, 3, 5로 총 3가지가 되며 이때가 서로 다른 종류가 최소일 때입니다. 경화가 한 상자에 담으려는 귤의 개수 k와 귤의 크기를 담은 배열 ..
-
SwiftUI - antialiased & interpolationSwiftUI 2022. 12. 6. 14:47
안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI의 이미지를 조금 더 매끄럽게 보간하는 메서드들에 대해 학습하겠습니다🙌 오늘 소개할 두가지는 antialiased와 interpolation입니다. 그럼 순차적으로 알아보겠습니다! antialiased? 안티 에일리어싱이 뭘까요? 사전적인 의미부터 한번 파악해보죠. 우선 에일리어싱은 디지털 샘플링에서 출력이 왜곡되는 현상 즉, 계단 현상을 의미합니다. 이미지 같이 렌더링된 컨텐츠를 보여줄때 출력되는 이미지의 픽셀이 깨지거나 가장자리가 울퉁불퉁 해지게 나타나는 현상입니다. 여기서 안티가 붙었으니 이러한 매끄럽지 못한 출력을 매끄럽게 만들어주는 메서드겠죠? 실제 공식문서에서는 아래와 같이 소개하고 있습니다. "이미지를 렌더링할 때 SwiftUI가 안티 ..
-
프로그래머스 - 점 찍기Algorithm 2022. 12. 3. 09:23
아래 문제는 프로그래머스에서 제공하는 점 찍기의 문제입니다🧑🏻💻 문제 제시 더보기 좌표평면을 좋아하는 진수는 x축과 y축이 직교하는 2차원 좌표평면에 점을 찍으면서 놀고 있습니다. 진수는 두 양의 정수 k, d가 주어질 때 다음과 같이 점을 찍으려 합니다. 원점(0, 0)으로부터 x축 방향으로 a*k(a = 0, 1, 2, 3 ...), y축 방향으로 b*k(b = 0, 1, 2, 3 ...)만큼 떨어진 위치에 점을 찍습니다. 원점과 거리가 d를 넘는 위치에는 점을 찍지 않습니다. 예를 들어, k가 2, d가 4인 경우에는 (0, 0), (0, 2), (0, 4), (2, 0), (2, 2), (4, 0) 위치에 점을 찍어 총 6개의 점을 찍습니다. 정수 k와 원점과의 거리를 나타내는 정수 d가 주어졌..
-
SwiftUI - renderingModeSwiftUI 2022. 12. 2. 10:14
안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI에서 Image를 사용함에 있어 renderingMode라는것에 대해 학습해보겠습니다🙌 오늘 도대체 뭐할거?! 프로젝트를 만들다보면 당연히 이미지 에셋이 필요할 경우가 있습니다. 대부분 아이콘 같은 것들을 SVG 파일 형식으로 에셋에 담아 사용하는 경우가 많은데요. 이때 이미지를 에셋에 담는다면 우측 Image Set의 Render As 항목을 볼 수 있습니다. 그럼 아래와 같이 3가지의 선택 옵션이 있습니다. 자 오늘 다뤄볼것이 이거에요! 렌더링 모드가 어떤것이 있고 어떤 의미를 갖는지와 매번 에셋 관리자에서 수정해주지 않아도 각 코드에서 변경할 수 있도록 renderingMode 메서드를 활용하는 방법과 실제 구동 시 어떤 차이가 있는지 알아보겠..
-
전역적인 Window 객체를 이용해 LoadingView 띄우기SwiftUI 2022. 11. 29. 16:40
안녕하세요. 그린입니다🍏 이번 포스팅에서는 전역적으로 아예 뷰를 감싸버려 로딩뷰를 윈도우로 만들어 띄우는 방법을 포스팅 해보겠습니다! 왜 이런 구현이 필요하게 되었나요? 우선 각 피쳐에서 뷰를 구성함에 있어 바텀 영역이 존재할때도 있고 없을때도 있습니다. 즉, 각 다른 구성의 뷰에서 해당 로딩뷰를 종속으로 띄워준다면 보여지는 뷰의 패딩이 달라지기에 보여지는 위치가 달라질 수 있습니다. 이를 해결하기 위해 기존 뷰의 조합들이 이뤄진 윈도우 위에 새로운 윈도우를 만들어 덮어버리는 방식도 방법일것 같아 구현해봤어요! 이 구현을 위해서는 우선 띄워줄 로딩 뷰 자체를 만들어야 합니다. 그 다음으로는 로딩뷰를 담을 새롭게 공유할 윈도우 객체를 만들고 초기화 시 UIHostingController를 이용해 해당 로딩..
-
SwiftUI - LazyVGrid & LazyHGridSwiftUI 2022. 11. 24. 18:42
안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI에서의 LazyVGrid와 LazyHGrid에 대해 알아보겠습니다🙌 우선 UIKit 세상에서는 CollectionView라는것이 있습니다. SwiftUI에서도 쉽게 컬렉션뷰라고 생각하면 됩니다. Grid라는 의미 자체는 2차원의 행과 열을 구성하는 레이아웃이라는 뜻을 내포합니다. 그럼 SwiftUI에서 Grid를 나타내는 LazyVGrid와 LazyHGrid를 하나씩 보시죠! LazyVGrid VStack과 같이 세로 즉, 열이 우선되게 뷰가 정렬되고 싸이는 컨테이너 뷰입니다. Lazy가 붙은 이유는 필요할때만 해당 SubView를 정렬해 생성하기에 Lazy가 붙었습니다. struct LazyVGrid where Content : View 선언은 위..