iyOmSd/Title: Swift 106

[Swift] WWDC21 ARC in Swift: Basics and beyond

ARC에서 생길수 있는 객체생명주기에 따른 버그가 일어날 수 있는 상황을 알아보고 해결하는 방법을 제시하고 Xcode의 새로운 기술을 소개해주는 세션이에요 목차는 2개에요 Object lifetimes and ARC - 객체의 수명과 ARC Observable object lifetimes - 객체수명에 따른 버그문제 해결방법 Class는 Swift에서 참조유형이며 사용을 결정하면 Swift는 자동으로 참조카운트 또는 ARC를 통해서 메모리를 관리해요 Object lifetimes and ARC 아래와같이 객체 수명과 ARC에 대해 설명합니다 객체의 lifetime은 initialization에서 시작하고 마지막으로 사용할때 끝 ARC는 수명이 끝난후에 객체를 해제하여 메모리를 자동으로 관리 레퍼런스 카..

iyOmSd/Title: Swift 2021.07.24

[Swift] WWDC21 Meet Group Activities

이번에 WWDC를 보면서 기대되는 기능중 하나였어요 SharePlay! 페이스타임 할 때 화면공유 기능이죠 모두와 같이 볼 수 있고 그 화면에 접근 할 수도 있죠 Session GroupActivity를 하기전에 모든 사람들이 공유할 준비가 되야하고 세션에 들어오면 메시지와 텍스트, 오디오 및 비디오를 통신할 수 있어요 GroupActivity를 통해서 iOS, iPadOS, MacOS에서 작동하는 통합환경을 구축하고있고 WebKit을 사용하는 웹사이트에서도 사용할 수 있다고하네요 만약 아직 일어나지 않은 일을 보고 친구들이 웃고있다고 생각해봐라! 스포일러 경고..! 이러한 상황이 나오지 않게 AVFoundation에 완벽하게 통합된 재생 동기화 프로토콜을 구축했다네요 누군가가 재생을 누르면 그룹내의 모..

iyOmSd/Title: Swift 2021.07.11

[Swift] Shadow 그림자그리기

그림자를 구현할 때 헷갈려했던 기억이있어서 더 공부해보면서 정리를 해보려고해요! 그림자를 구현할때 사용할 속성으로는 CALayer에 있는 프로퍼티 5개를 사용해서 구현하구요! shadowColor: 그림자색 지정(디폴트 검정색) shadowOpacity: 그림자 투명도 지정(0 ~ 1) shadowRadius: 그림자의 블러 정도 지정 (0일때 선같이 진한 그림자 높을 수록 퍼지는 효과) shadowOffset: 그림자의 위치(기본 0,0 -> 부모의 위치를 따라감) shadowPath: 그림자의 모양을 커스텀 가능(디폴트 nil) 이때 layer의 masksToBounds값을 True로하면 그림자가 안보이니까 주의하세요! (기본값 false) 뷰 범위밖에 보이는 것들을 보이지 않게하겠다~ 라는 뜻입니다..

iyOmSd/Title: Swift 2021.07.08

[Swift] WWDC 21 Customize and resize sheets in UIKit

오랜만에 포스팅이네요! 일이 많아서... 한달..공백이..ㅠ 이번에 볼 게시글은 밑에서 올라와서 반만 보여지는 뷰?? 그런 걸 바텀시트라 부르는것 같아요 그러한 뷰를 힘들게 커스텀해서 띄우는 작업을 했을텐데 이제는! UISheetPresentationController를 이용해서 바텀시트를 띄울 수 있는 방법을 제시해줘요 보통 present형식을 이용해서 간단하게 구현할 수 있어요 WWDC2021에서 소개됬기때문에 iOS15+ 구요 ㅎㅎ 코드를 보면서 하나씩 살펴갈게요~~! guard let nextVC = storyboard?.instantiateViewController(withIdentifier: "ViewController") else { return } nextVC.view.backgroundC..

iyOmSd/Title: Swift 2021.06.28

[Swift] Image Resize

이미지가 커서 메모리를 많이 잡아먹다보면 메모리부족으로 앱이 죽어버리는 경우가 생기죠..! 이러한 현상을 줄이고자 이미지 사이즈를 줄여서 다시 만들어내는데 그 작업을 해볼까해요 이미지작업을 위해서 사용할 클래스부터 알아볼게요 UIGraphicsBeginImageContext 와 UIGraphicsImageRenderer 가 있는데요둘의 차이는 구식과 신식의 차이에요 UIGraphicsBeginImageContext iOS2+ SRGB 포맷 스택을 사용해서 처리하는 것 같더라구요 UIGraphicsBeginImageContext을 이용해서 context를 생성해주고 원하는 처리를 해주고 UIGraphicsGetImageFromCurrentImageContext를 이용해서 context에 적용된이용해서 이미..

iyOmSd/Title: Swift 2021.05.29

[Swift] UITableViewDiffableDataSource

iOS13+에서 사용할수 있는 API구요 WWDC19에서 소개됬고 TableView 및 CollectionView의 데이터의 업데이트를 쉽게 도와주는 역할이에요 보통 사용하고 있는 DataSource를 이용한 방식은 numberOfItemInSection cellForItemAt 와같은 함수를이용해서 위의 형식처럼 컨트롤러에게 섹션이몇개니? Cell이 몇개니? Cell은 어떻게 생겻니? 물어보면서 설정했었죠 설정이후 서버통신을 통해서 데이터를 불러와서 다시 업데이트를 진행하는과정에서... 아래처럼 에러가 나기도하죠 WWDC를 보면서 피식하기도하네요 🤣 이러한 문제점을 잡아서 새로 나온 것이 Diffable Data Source 입니다! 무엇이 더 좋은가~? TableView를 업데이트 하려했다면 begi..

iyOmSd/Title: Swift 2021.05.01

[Swift] UICollectionViewCompositionalLayout

WWDC19에서 소개된 내용이에요 CollectionView의 Layout을 커스텀하기 쉽게 만들어주는 역할을 해줘요 iOS13+ 에서 사용할 수 있는 API구요 들어가기앞서 이 레이아웃을 사용하기위해서 기본적으로 알아야할 개념들이있어요 NSCollectionLayoutSize NSCollectionLayoutItem NSCollectionLayoutGroup NSCollectionLayoutSection 여기에 추가적으로 NSCollectionLayoutSupplementaryItem NSCollectionLayoutBoundarySupplementaryItem 까지! (이부분은 헤더뷰 푸터뷰 필요없으면 안보셔도 OK) 왜알아야해...? UICollectionViewCompositionalLayout를..

iyOmSd/Title: Swift 2021.04.27

[Swift] 정규식으로 유효성 확인하기

정규식을 검색해보면 크게 NSRegularExpression타입과 NSPredicate타입이 있어요 둘의 차이는 NSPredicate - 메모리 내 필터링 이나 검색을 통한 패치 -> Collection안의 내용을 검색 혹은 필터하는 용도 NSRegularExpression - 유니코드 문자열에 적용되는 정규식의 표현 -> 정규식! 흔히말하는 정규표현식은 NSRegularExpression을 사용하구요! 타입이름도 좀더 정규표현식같죠? (같은 패턴으로 NSPredicate를 사용하면 맞는데 틀리다고 나오는경우가 있어요) 문법부터 보면 더 헷갈리기때문에 예제와함께 이해해볼게요 바로바로 확인할 수 있는 실습사이트는 www.regexpal.com Regex Tester - Javascript, PCRE, PH..

iyOmSd/Title: Swift 2021.03.20

[Swift] TTS 텍스트 음성전환 (AVSpeechSynthesizer)

문자를 음성으로 읽어주는 기능을 구현해볼거에요 TTS라고하죠 Text To Speech 쉽게 설명하면 사전에 발음듣기처럼 해당 단어를 말해주는거구요 이번에 사용할 클래스들은 AVFoundation에 있는 AVSpeechSynthesizer AVSpeechUtterance AVSpeechSynthesisVoice 를 사용해볼 거에요 AVSpeechSynthesizer 텍스트로부터 합성된 음성을 생성하고 진행중인 음성을 모니터링 하거나 제어 할 수 있는 객체 읽기가 끝날 때 혹은 취소할 때 해제된다고 하네요 Delegate도 정의되어있는데 Speech start Speech finish Character range will be spoken Speech paused Speech continued 원하는상황에..

iyOmSd/Title: Swift 2021.02.23

[Swift] AVAudioRecord, AVAudioPlayer, AVAudioEngine을 사용한 음성파일 재생, 녹음, 효과음 주기

음성을 다루는 프로젝트를 개발하기 앞서서 관련된 지식들을 공부해보려고 기본적인 음성재생, 음성녹음, 음성효과를 줄 수 있는 기능을 구현해봤어요 엄청 많은 클래스들이 있더라구요 하지만 하나를 알면 다른것들은 대충 어디에쓰일지 감이 와요 ㅎㅎ 이 게시글에서 다룰 타입은 import AVFoundation 을 꼭 해주시구요! AVAudioRecord AVAudioPlayer AVAudioSession AVAudioEngine AVAudioPlayerNode AVAudioFile AVAudioPCMBuffer AVAudioUnitTimePitch AVAudioUnitDistortion AVAudioUnitReverb 엄청많죠? ㅎ... 저도 하면서 엄청 헷갈렷어요.. 음성을 듣기위해서는 샘플음성파일을 직접가져와..

iyOmSd/Title: Swift 2021.02.19