분류 전체보기
-
옵셔널을 다루는 방법들Swift 2022. 8. 8. 12:16
안녕하세요. 그린입니다🟢 이번 포스팅에서는 Swift에서 옵셔널을 다루는 방법들에 대해 소개하려 합니다🙌 우선 옵셔널 참 많이 들어보셨죠? Swift를 익히면서 당연히 안들어볼 수 없었을테고요. 그럼 우선 아주 심플하게 프리뷰로 옵셔널이 뭔지 딱 간략하게 정의하고 가죠! 옵셔널(Optional)? Swift 언어의 대표적인 하나의 특성은 안정성입니다. 즉 런타임 시 에러가 날때 이 오류를 nil값을 반환해줍니다. 그 이유는 들어온 nil값을 캐치해 개발자가 코드내에서 처리할 수 있도록 하기 위함이죠. 그렇다면 이 nil값을 받을 수 있는 타입이 필요할거에요. 기본 자료형 타입들에서는 nil값을 받을 시 앱 크래쉬가 날거니까요. 그렇기 위해 옵셔널이 존재합니다. 즉 말 그대로 옵셔널하기에 "값이 있을수도 ..
-
기본 타입을 Extension하여 편리하게 사용하기Swift 2022. 8. 4. 13:51
안녕하세요. 그린입니다🟢 이번 포스팅에서는 기본 타입을 Extension해서 조금 유의미하게 프론트 개발에서 사용하는것을 포스팅해보려 합니다🙋🏻 대게 앱 개발을 하다보면 서버에서 내려온 데이터를 다루게 되죠. 예를들어 TimeStamp로 내려온 시간을 우리는 앱에서 커스텀하게 "2022년 8월 3일 15시 30분"과 같이 다양한 형식으로 포맷팅을 시킬 경우가 많습니다. 이를 편리하게 익스텐션으로 구현해놓는다면 프로퍼티만 가져다 쓰게 되니 아주 편리할거라 생각해요. 이런것처럼 오늘 주제는 작게 나눈다면 3가지가 될것 같습니다. 아주 간단한 코드이기에 바로 해보시죠! 날짜/요일/시간에 대해 Date -> String과 String -> Date 구현하기 Date -> String 우선 서버에서 내려온 날짜에..
-
NSCache vs URLCacheiOS 2022. 8. 1. 10:25
안녕하세요. 그린입니다🟢 이번 포스팅에서는 오랜만에 간단한 주제인 NSCache와 URLCache의 차이를 알아보려고 합니다🙌 그럼 본론으로 바로 들어가시죠! 우선 둘다 Cache라는 개념에서는 동일할거에요. 그럼 Cache가 뭔지 간단히 살펴볼까요? Cache란? 캐시의 정의는 데이터나 값을 미리 복사해 놓는 임시 장소를 말합니다. 캐시는 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우 혹은 값을 다시 계산하는 시간을 세이브 하고 싶은 경우에 사용됩니다. 캐시에 데이터를 미리 복사해 놓으면 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근할 수 있습니다. 그럼으로 캐시는 시스템의 효율성을 위해 여러 분야에서 두루 쓰이고 있습니다. 이것이 캐시의 정의입니다. iOS에서 사용..
-
SwiftUI에서 MVVM 사용을 멈춰야 하는가?SwiftUI 2022. 7. 28. 11:12
안녕하세요. 그린입니다🟢 이번 포스팅에서는 요즘 아니 예전부터 조금 말이 많이 나오고 있던 SwiftUI를 쓰면서 MVVM 아키텍쳐 사용을 지양하는 의견들이 많이 나오고 있습니다. 이에 한 개발자가 생각을 정리한 레퍼런스를 보면서 제 의견도 같이 한번 정리해볼까합니다🙌 우선 많은 레퍼런스를 이것을 위해 봤는데요. 그중에서 지금부터 이 포스팅에 정리할 글들의 원본은 아래에서 참고했다고 보시면 됩니다! 물론 저기서 제 의견과 다른 부분도 있고 조금 더 정리해볼 부분도 있어서 이 부분에는 제 의견을 가미했습니다~ https://qiita.com/karamage/items/8a9c76caff187d3eb838 「SwiftUIでMVVMを採用するのは止めよう」と思い至った理由 - Qiita ※2022/04/23 追記 ..
-
SkeletonUILibrary 2022. 7. 25. 10:30
안녕하세요. 그린입니다🟢 이번 포스팅에서는 아주 예전부터 궁금했었는데 까먹고 있던 라이브러리 하나 보고 가려고합니다ㅎㅎ 바로 SkeletonUI 라는 외부 라이브러리입니다. 데이터를 받아올때 패칭이 완료되기전에 빈 공간으로 UI를 보여주는것보다 아래와 같은 이러한 데이터가 들어올 영역에 대해 뼈대를 잡는것이라 보면 될것 같아요. 이로 인해 조금 더 자연스러운 UI 경험을 시켜줄 수 있으며 빈 뷰로 나오면 버그라고 인식하기 쉬운 반면 이런것들을 적용시켜두면 로딩중이구나~ 라고 인식할 수 있어 사용자 경험에 더 좋은 영향을 끼칩니다🙌 그럼 이걸 쉽게 구현해놓은 SkeletonUI에 대해 알아보시죠! 아마 아주 간단할것 같아요 이번 포스팅은ㅎㅎ SkeletonUI? 공식 리드미에서의 설명이 아주 간단히 되어 ..
-
@main vs @UIApplicationMainiOS 2022. 7. 21. 09:32
안녕하세요. 그린입니다🟢 이번 포스팅에서는 @main과 @UIApplicationMain이 무엇인지 그리고 어떤 차이가 있는지 학습해보겠습니다🙌 swift 5.3 이전부터 Xcode를 통해 프로젝트를 만들어보시고 경험해보신분이라면 이 두 키워드에 대해 모두 보셨을거에요. 그럼 실제적으로 이 두 키워드는 어떤 친구고, 무슨 차이이며 어떤걸써야하는지에 대해서 정리해보겠습니다! @main 쉽게 말해 이 키워드는 프로그램의 진입점을 나타내줍니다. 어느 프로그램이던지 시작점 즉 Entry Point는 존재해야하죠. Swift에서는 @main을 통해 어디서부터 이 앱이 최초 실행되고 시작될지를 명시해주는 키워드입니다. 이 키워드는 Swift 5.3 이상(Xcode 12)부터 사용된 키워드로 바로 이어서 설명하겠지만..
-
Tuist 도입으로 swiftGen 겉어내기 (with. TuistGenerator)Tuist 2022. 7. 18. 11:08
안녕하세요. 그린입니다🟢 이번 포스팅에서는 Tuist를 도입함으로 TuistGenerator를 통해 에셋 등의 리소스 관리를 제공해줌으로 기존 사용하던 swiftGen을 걷어내며 어떻게 대체하여 사용하는지 학습해보겠습니다🙌 혹시 Tuist가 무엇인지 선행이 필요하시다면 요 아래를 참고해주세요! https://green1229.tistory.com/262 Tuist 안녕하세요. 그린입니다🟢 이번 포스팅에서는 대망의 Tuist에 대해 알아보고 도입해보겠습니다🙌 우선 다들 Tuist에 대해 들어보셨나요? 현업에서 프로젝트를 하고 계시다면 아마 사용하던 안하 green1229.tistory.com 참고로 swiftGen은 R.swift처럼 에셋 리소스를 코드화 시켜 관리하고 사용할 수 있도록 도와주는 라이브러리..
-
UIKit에서 SwiftUI로 LifeCycle 변환하기iOS 2022. 7. 14. 09:07
안녕하세요. 그린입니다🟢 이번 포스팅에서는 아주 간단한걸 해보려합니다! 바로 UIKit 기반으로 만들어졌거나 사용되고 있는 앱을 SwiftUI 인터페이스 기반으로 바꿔보려고해요🙌 당연히 물론 처음에 프로젝트 생성 시 Interface 방식을 잘 고르면 상관없겠지만 알아두면 좋겠죠🕺🏻 Storyboard 기반 프로젝트 생성 우선 UIKit 기반으로 환경 셋팅을 하려면 프로젝트 생성 시 Storyboard로 인터페이스 설정을 해줘야합니다. 이러면 오늘 학습해볼 프로젝트가 생성됩니다. 저기서 아시겠지만 Interface는 Storyboard 그리고 SwiftUI 요 두개로 나눕니다. SwiftUI로 만들게 되면 스토리보드 파일이나 App/SceneDelegate 파일이 기본적으로 없으며 App 파일을 메인 시..