분류 전체보기
-
NavigationLinkSwiftUI 2021. 9. 11. 14:43
안녕하세요. 그린입니다🟢 이번 포스팅에서는 SwiftUI에서 NavigationLink를 학습해보겠습니다💁🏻 NavigationLink? 이하 네비게이션 링크라 칭하겠습니다! 네비게이션 링크는 간단합니다. UIKit 환경에서도 뷰간 전환되는 방식이 있죠? SwiftUI에서는 네비게이션 링크를 통해 뷰 전환을 할 수 있습니다. NavigationLink 선언 struct NavigationLink where Label : View, Destination : View 네비게이션 링크는 위와 같이 라벨과 목적지를 가지고 선언할 수 있습니다. 여기서 라벨은 예를들어 라벨을 눌러주었을때 Destination의 뷰로 전환되는걸 말합니다. 간단하죠? 그럼 한번 예시를 보겠습니다. 예시는 애플 공식 문서를 참고하겠습니..
-
Overlay & ZStackSwiftUI 2021. 9. 10. 20:00
안녕하세요. 그린입니다🟢 이번 포스팅에서는 Overlay와 ZStack에 대해 학습해보겠습니다🧑🏻💻 왜 알아야하죠? SwiftUI로 뷰를 구성하다보면 Overlay와 ZStack이 비슷한 기능을 해준다는 인식을 받았습니다. 동일하게 뷰 위에 다른 어떠한 UI를 얹어주는것이죠. 그런데 분명한 두 방식의 차이가 있는데 알아보길 미루다가 이제야 알아보게 되었습니다🥲 그럼 어떤점에서 비슷하고 차이가 있는지 그리고 뷰가 어떻게 얹어져 보이게 되는지 알아보겠습니다! Overlay 우선 오버레이에 대해 알아보겠습니다. 오버레이는 현재 뷰를 기준으로 하위 뷰를 얹어줍니다. 즉 바로 상위 뷰와 하위 뷰가 연관성이 있다고 볼 수 있으며 다른 뷰에는 영향을 끼치지 않습니다. 즉 전체적인 뷰의 요소로 자리잡아 구성되기 보다..
-
KeyPathSwift 2021. 9. 4. 10:34
안녕하세요. 그린입니다🟢 이번 포스팅에서는 KeyPath에 대해 학습해보겠습니다🧑🏻💻 KeyPath? 아.. 계속 영어로 치기 귀찮은 한국인이라 요기서부터 본문은 키패스라고 타이핑하겠습니다! 키패스를 왜 학습하게 되었나하면 Composable Architecture를 실무에서 사용하면서 하위 리듀서를 상위 리듀서에서 가져와 액션을 구현할때가 있습니다. 음.. 예를들어 모두 홈 모듈에 지도뷰 모듈도 있고 리스트 모듈도 있다고 쳤을때 지도뷰 모듈에서 어떤 에러가 발생하면 홈 모듈에서 얼럿을 띄워줘야 하는 경우를 가정할 수 있습니다. 그러니까 모듈간 종속을 보면 이렇게 되겠네요! 으.. 만들고 보니 징그럽지만 무튼 이렇습니다. 다양한 하위 모듈이 Home 모듈에 속해있죠? 이럴때 홈 모듈에서 하위 모듈의 상..
-
Dictionary.init(uniqueKeysWithValues:)Swift 2021. 8. 31. 19:30
안녕하세요. 그린입니다🟢 이번 포스팅에서는 Dictionary.init(uniqueKeysWithValues:)에 대해 학습해보겠습니다💁🏻 딕셔너리가 뭐에요?? 우선 딕셔너리는 key와 value로 이루어진 데이터를 담는 컨테이너입니다. 특징이라하면 각 value는 고유의 유일한 key와 연결되어 있습니다. 딕셔너리는 array처럼 순서가 있지 않기에 각 물려있는 key값으로 value값을 찾을 수 있습니다. 즉 딕셔너리를 표현한다면 Dictionary로 표현할 수 있습니다📑 그렇다면 딕셔너리의 키값은 고유의 값이니 Hashable 해야겠쬬!? 그런데 우리가 쓰는 딕셔너리의 키값은 대부분 swift에서 기본 제공하는 Int, String, enum 등등일겁니다! 해당 기본제공되는 자료형 타입들은 이미 H..
-
합을 이용한 알고리즘Algorithm 2021. 8. 29. 11:55
아래 문제는 코딜리티에서 제공하는 Passing Cars의 문제입니다🧑🏻💻 문제 제시 A non-empty array A consisting of N integers is given. The consecutive elements of array A represent consecutive cars on a road. Array A contains only 0s and/or 1s: - 0 represents a car traveling east - 1 represents a car traveling west. The goal is to count passing cars. We say that a pair of cars (P, Q), where 0 ≤ P < Q < N, is passing when P is..
-
화면 캡쳐 및 녹화 방지iOS 2021. 8. 28. 09:54
안녕하세요. 그린입니다🟢 이번 포스팅에서는 화면 캡쳐 및 녹화 방지에 대해 포스팅해보겠습니다🧑🏻💻 제공하는 앱에서 화면 캡쳐와 녹화를 원천적으로 차단할 수 있을까요? 우선, 가능은 합니다. 단 우리의 코드만으론 할 수 없습니다. 무슨 소리인지 감이 안오시죠? 간략히 말해보자면, iOS에서 화면 캡쳐를 하는것은 OS의 영역입니다. 이에, 방지 기능이 구현된 라이브러리나 어떠한 솔루션을 사용하지 않는다면 코드만으론 방지를 할 수 없습니다. 그럼 어떤식으로 캡쳐와 녹화를 방지할 수 있을까요? 원천적으로 기능이 되지 않게는 할 수 없으니 사용자에게 캡쳐와 녹화가 시작 될때 얼럿을 노출시켜주면 됩니다. 그러면 사용자도 의도를 인지할것입니다. 만약 더 나아가 얼럿만으로는 안되고 캡쳐나 녹화를 이후에 무슨 일이 생..
-
순수함수와 사이드이펙트Swift 2021. 8. 22. 13:29
안녕하세요. 그린입니다🟢 이번 포스팅에서는 정말 정말 간략하게 순수함수와 사이드이펙트에 대해 알아보겠습니다🧐 다들 순수함수와 사이드이펙트는 들어보셨을거라 생각해요! 저도 막연하게 어떤거다~~ 하는것만 알고 제대로 사용하진 못했던것 같아요. 음.. 앱을 개발하면서 객체지향 중심적으로 사고가 박혀있어서인지 순수함수를 쓰려던 부분은 고작해야 클로저로 처리하거나 통신할때 등 틀에 박혀있게 생각했어요. 그러던중 ReactiveX를 공부하고 Composable Architecutre로 구조를 잡아가면서 순수함수와 사이드이펙트에 대해 많이 접하네요😱 우선 간략하게 순수함수와 사이드이펙트에 대해 말해보겠습니다. 순수함수 순수함수는 말그대로 순수한 함수입니다! 즉, 순수함수의 결과값은 항상 동일해야합니다. 외부 요인(사..
-
Multiple Firebase EnvironmentsiOS 2021. 8. 21. 00:06
안녕하세요. 그린입니다🟢 이번 포스팅에서는 다중 파이어베이스 환경을 구축하는 방법에 대해 포스팅하겠습니다. 다중 파이어베이스 환경 구축이 왜 필요할까요? 개발을 하다보면 Prod 환경과 Dev 환경에서 다른 DB를 바라볼때가 있습니다. 만약 실제 프로덕션 파이어베이스를 가지고 테스트를 진행하면 DB 값이 바뀌게 되는 문제가 발생하니까 Dev 파이어베이스 DB 환경을 구축하는 경우가 많습니다. 그러니까 그런 Dev 파이어베이스 환경을 Xcode에서 가져오려면 다중 파이어베이스 환경 구축이 필요합니다! 자 그럼 왜 파이어베이스 환경 구축이 필요한지 알아보았는데요! 그럼 어떻게하면 구축할 수 있을까 알아봅시다. 다중 파이어베이스 환경 구축하기 생각보다 되게되게 간단합니다! 1. Firebase에서 각각의 SD..