🍎 SwiftUI에서 @Observable을 사용하자
·
🧑🏻‍💻 Dev
안녕하세요 여러분~! 오늘은 iOS 17부터 도입된 @Observable 매크로가 기존의 ObservableObject를 어떻게 대체하고 있는지 함께 살펴봅시다! 👀예전에는 이랬어요... ObservableObject + @PublishediOS 13부터 SwiftUI가 처음 나왔을 때, 우리는 데이터 바인딩을 위해 ObservableObject 프로토콜과 @Published 프로퍼티 래퍼를 사용했어요. 이거 써본 사람? 손! ✋class UserProfile: ObservableObject { @Published var username: String = "애플빠" @Published var level: Int = 1 @Published var isOnline: Bool = false}..
SwiftUI Spacer 사용 꿀팁
·
🧑🏻‍💻 Dev
SwiftUI에서 이런 레이아웃은 어떻게 구성할까? "고양이" 텍스트 길이는 바뀔 수 있는데 중앙에 와야하고 짝꿍은 그 옆에 나와야 하는 상황.HStack 으로 만들면 고양이와 짝꿍의 넓이가 합쳐진 채 중앙으로 정렬되서 "고양이"만 딱 중앙에 정렬이 안된다.ZStack 에 넣자니 텍스트 길이도 알아내야할 것 같고 복잡해진다.이럴 때 Spacer 를 활용하면 좋다.HStack { Spacer() Text("고양이") Spacer() .overlay(alignment: .leading) { Text("짝꿍") .padding(.leading, 6) }}
Swift Concurrency에서 메모리 누수 주의하기 🧐
·
🧑🏻‍💻 Dev
안녕하세요~ 메모리 누수 문제에 대해 더 자세히 알아볼게요! 이거 진짜 중요한 부분인데 많은 개발자들이 놓치는 함정이에요 ㅋㅋTask와 메모리 누수의 관계 💦Task는 비동기 작업을 시작하는 방법인데, 문제는 Task가 강한 참조(strong reference)를 생성한다는 점이에요. 만약 클로저 내에서 self를 캡처하면 뷰나 객체가 사라져도 Task가 완료될 때까지 메모리에서 해제되지 않을 수 있어요!func loadData() { Task { // 여기서 self를 강하게 캡처함 let data = await self.fetchSomething() self.processData(data) // 만약 Task가 오래 걸리는데 객체가 해제되어야 한다면? ..
Swift Concurrency: async/await 완전정복 🚀
·
🧑🏻‍💻 Dev
안녕하세요 여러분! 오늘은 Swift Concurrency의 핵심인 async/await에 대해 알아볼게요~ 😊왜 async/await가 필요한 거임? 🤔기존에 우리가 비동기 작업을 할 때는 completion handler를 사용했잖아요. 근데 이거 진짜 지옥이었음ㅋㅋ 콜백 지옥이라고도 하죠. 코드가 이렇게 됨:func fetchUserData(completion: @escaping (User?) -> Void) { fetchUserID { id in fetchUserProfile(id: id) { profile in fetchUserPosts(profile: profile) { posts in let user = User(id: id..
iOS17 숨겨진 기능들 34가지
·
⭐️ Tip
제어센터에 “나의 Watch 핑하기” 추가됨, 애플워치가 어딨는지 찾을 수 있음 사파리 주소표시줄에서 검색할때 자동완성이 완전히 나옴, 이전엔 잘 안나왔음 애플뮤직에 “크로스페이드” 기능 추가, 설정에서 옵션을 활성화 해야 합니다. 크로스페이드는 다음곡 재생시 점점 멀어졌다 가까워지면서 자연스럽게 재생되는 기능입니다. “화면 주시 거리” 기능 추가, 얼굴을 너무 가까이 대면 경고가 뜸. 스크린타임에서 활성화 날씨앱에 과거 날씨가 추가됨 미리알림 앱에 섹션이 추가됨, 칸반 보드 가능!! 스팟라이트 검색 결과로 시스템 설정 전환 가능, 예를들어 저전력 모드 검색해서 스팟라이트에서 바로 비활성할 수 있음 개인정보 보호 및 보안 → “민감한 콘텐츠 경고” 추가됨 잠금화면에서 시계 글꼴 굵기 사용자 지정 애플뮤직..
심플한 제품 만들기
·
카테고리 없음
심플한 제품은 한 가지 문제를 제대로 해결한다. 핵심인 것은 제대로, 그 외는 가능하게만 만든다. 고객이 원하는 것을 만들어야 할 때는 이 기능이 왜 필요한지나 어떻게 생겨야 하는지 보다, 언제 필요한지 물어보는 것이 더 큰 도움이 된다. 과제가 일상적인 루틴이 되려면 단순하고 반복적이어야한다. 좋은 도구라면 이미 갖추어져 있는 것에 추가 기능이나 선택 사양을 덧붙이는 것이 아니라, 주요 작업에서 집중이 분산되지 않도록 도와줄 수 있어야 한다. 단순함에서 중요한 것은 뒤섞이지 않았다는 점이지, 기능이 하나뿐이라는 점이 아니다. 이는 매우 중요하다. 단순한 삶을 산다면 반드시 만족이 따라올 것이다. 단순함은 행복에 있어 대단히 중요한 것이다. _달라이 라마 “진정한 단순함은 불필요한 장식이 없는 수준을 넘..
Arc, Edge, Vivaldi, Opera, Brave 브라우저에 구글 번역 사용하기
·
✍️ 리뷰
크롬 외의 브라우저를 사용하는 경우 한글 번역 기능이 없거나 구글 번역에 비해 만족스럽지 않은 경우가 많습니다. 이럴때 크롬에서 사용하는 환경과 거의 비슷하게 사용 가능하고, 전체 페이지 번역도 엄청 빠르고, 제일 만족스러운 번역 익스텐션을 소개합니다. 파이어폭스 애드온으로 있는 번역 익스텐션인데 익스텐션 스토어에는 없고 사이트에서 다운로드 후 직접 설치해 주어야 합니다. https://github.com/FilipePS/Traduzir-paginas-web GitHub - FilipePS/Traduzir-paginas-web: Translate your page in real time using Google or Yandex Translate your page in real time using Goog..
워커블 매직 데스크
·
✍️ 리뷰
요즘 거실 소파에서 맥북을 사용하는 일이 늘어나면서 뭔가 목이 불편함을 느낄때쯤 우연히 워커블 매직 데스크 광고를 보게 됐는데 별로 비싸지 않은 가격(29,800원)에 구매해봤습니다. 이런 용도로 사용이 가능하다는데 이렇게 쇼파에 앉아 있을때 허벅지 위에 두고 사용하니 넓은 면적이 생겨서 실용성도 좋고 없을때보다 확실히 편합니다. 식탁위에서 사용할땐 이렇게 뒤집어서 사용하는데 사진으로는 불편해 보일수있지만 생각보다 굉장히 편합니다. 상품 소개 사진처럼 노트북을 바닥에 닿을정도로 경사지게 놓지말고 걸쳐놓으면 손목 받침대 역할이 되서 편안합니다. 노트북 높이도 높아지니 거북목도 한결 편안합니다. 그리고 무게가 엄청 가벼워서 바로바로 꺼내 사용하기 좋구요. 이젠 노트북을 식탁이나 쇼파에서 사용할때면 항상 같이..
iOS AssistiveTouch를 이용하여 편하게 사용해 보자
·
✍️ 리뷰
제가 원래 아이폰se1을 사용하다가 이번에 13미니로 바꾸게 됐습니다. 근데 제일 불편한거 중 하나가 알림센터랑 제어센터를 한손으로 불러오기가 힘든점이었어요. 그래서 AssistiveTouch를 설정하고 사용하는데 단축어도 등록할 수가 있더라구요?! 생각보다 편하게 사용중이라 현재 사용중인 설정을 공유해보려고 합니다. 우선 AssistiveTouch는 아이폰의 설정 → 손쉬운 사용 → 터치 → AssistiveTouch를 On하면 사용할 수 있습니다. 그러면 이런 동그란 모양이 화면에 항상 뜨게 되는게 드래그해서 위치를 바꿀수 있습니다. 이제 저 아이의 기능을 나에게 맞게 바꿔주면 됩니다. AssistiveTouch의 설정에 가보면 단일탭, 이중탭, 길게누르기에 설정할 수 있는 항목들이 아주 많아요. 전..
Mac 알프레드(Alfred)의 아름다운 무료 대체재 Raycast
·
✍️ 리뷰
맥 유저라면 다들 Alfred를 많이 사용중일텐데요. 오늘 소개해드릴 서비스는 Alfred와 비슷하며 아름답고 강력한 기본 기능에 확장 구현도 더 쉬운 Raycast입니다. 이 서비스는 현재 공개 베타 기간이라 무료로 사용할 수 있고 추후 유료 플랜이 있을 예정이지만 핵심 기능은 무료라고 합니다. 아래는 선언서에 설명되어 있는 내용입니다. 공개 베타 기간 동안 Raycast는 무료로 사용할 수 있습니다. 결국 고급 사용자와 팀을 위한 유료 기능을 추가할 예정입니다. 명확한 수익 창출은 도구를 유지 관리하고 커뮤니티를 지원할 수 있음을 보장합니다. 핵심 기능은 무료로 유지됩니다. 알프레드와 사용법은 유사하니 기존에 사용하시는 분들은 별 어려움 없이 적응할 수 있을 것 같아요. 알프레드에 Workflow가 ..