분류 전체보기(91)
-
ViewBuilder 는 어떻게 만드는 걸까? - ②
앞서 ViewBuilder의 개념에서 하위 뷰 생성 클로저에 매개변수에 대한 속성으로 사용해 해당 클로저가 여러 하위 뷰를 제공할 수 있도록 해준다고 한다. 는 걸 알아봤다. 그런데 뷰빌더를 어떻게 만들어서 갖다쓰는 걸까?! custom container view 를 만들어서 레고 블록처럼 가져다 쓸수 있다고 해야할까.. 하위 뷰는 뷰 선언부를 작고 가볍게 재사용할 수 있는 블록으로 나누는 방법을 제공한다. 하위 뷰에는 한계가 있는 컨테이너 뷰의 콘텐트가 정적이기 때문에 하위 뷰가 레이아웃(Layout) 에 포함될 시점에 하위 뷰에 포함될 뷰를 동적으로 지정할 수 없다. 우선 백문이불여일타라고, 눈으로 보고, 코드부터 짜봤다. @ViewBuilder 를 생성하기 위한 조건. 1. 라는 제너릭 타입같은 놈..
2023.10.07 -
ViewBuilder 란 무엇일까? - ①
클로저에서 뷰를 구성하는 사용자 정의 매개변수 속성! @resultBuilder struct ViewBuilder ViewBuilder 를 하위 뷰 생성 클로저 매개 변수에 대한 매개변수 속성으로 사용하여 해당 클로저가 여러 하위 뷰를 제공할 수 있도록 해준다. 예를 들어, contextMenu 함수는 뷰 빌더를 통해 하나 이상의 뷰를 생성하는 클로저를 허용한다. NOTE 참고로,, contextMenu 는 watchOS 6.0 - 7.0 에서 deprecated(더 이상 사용되지 않음..) 되었따.. func contextMenu(@ViewBuilder menuItems: () -> MenuItems) -> some View where MenuItems : View Text("Turtle Rock") ..
2023.09.16 -
[ SwiftUI ] SwiftUI 기본 특징
SwiftUI 의 특성 1. 선언형 프로그래밍 ( Declarative programming) ⇒ User Interface 의 기능만 명시하면 됨! ⇒ 프로그램이 어떤 방법으로 해야하는지 나타내기보다 무엇이 같은지를 설명하는 경우 ‘선언형’ 이라고 한다. 반면, 명령형 프로그래밍은 알고리즘을 명시하고 목표는 명시하지 않는데 반해 선언형 프로그래밍은 목표를 명시하고 알고리즘을 명시하지 않는 것이다. e.g. html 마크업언어로 만들어지는 웹페이지 구조도 선언형인데, ,text,, 인 경우 그 외 SQL 의 SELECT 학생 FROM 야자반; 과 같이 무엇을 나타내야 하는지를 묘사하는 것이지, 어떤 방법으로 컴퓨터 화면에 페이지를 나타내야 하는지를 묘사하지 않는다. import SwiftUI struct..
2023.09.05 -
[ zsh ] 맥 터미널에서 내 프로젝트 파일 구조를 보고 싶다면?
맥 터미널에서 아래 명령어를 친다. 우선 🍻 brew 가 설치되어 있어야한다. github 통해 설치 $ git clone https://github.com/Homebrew/brew homebrew 더 자세한 설명은 brew brew_kr [Homebrew The Missing Package Manager for macOS (or Linux). brew.sh](https://brew.sh/index_ko) tree 설치방법 ( brew 가 설치되어 있다는 가정하에..) $ brew install tree 폴더 구조 보는 방법 $ tree 그 외 명령어 찾았다! 너다..이거 좋구나.. 1. 색 넣어서 파일 구조 구분 $ tree -C 색 들어가서 더 구분하기 좋구나~ 더보기 2. 디렉토리의 목록 보기 tr..
2023.08.25 -
RAM, 메모리 사용량 그거 줄이는 게 좋은건가?!
Mac 이 느린거 같다, 로딩이 돈다,, 블투 키보드도 가끔 연결이 됐다가 잘 안된다..이건 메모리랑 연관이 있으려나 모르겄다.. 그래도 이왕 램을 32GB나 샀는데 활성 상태를 열어보니 브라우저 열린 탭을 정리하고도 24GB 사용중이다. 뭐가 문제지? 그래서 알아보고 싶었다. 앱 메모리, 와이어드 메모리, 압축된 거 저거 다 뭐지.. 앱 메모리: 앱 및 프로세스가 사용 중인 메모리 와이어드 메모리 : 앱에 의해 예약된 메모리 ( 해제할 수 없음 ) 사용된 스왑 공간: macOS 에 의해 사용 중인 메모리 캐시된 파일 : 실제로 사용 가능한 메모리 메모리 압력 밑에 색이 칠해진 그래프가 보이실 겁니다. 차트가 빨갛거나 노란색이면 Mac이 메모리 부족으로 헐떡이고 있는 것을 의미합니다. 직관성이 떨어지지만..
2023.08.19 -
[ Array ] String 을 배열로 쪼개라!
본론을 시작하기에 앞서, 알고리즘과 나의 인연에 대해 잠깐 언급해보려고한다. 작년부터 백준 브론즈를 풀다가, readLine() 의 쓰임에 익숙치 않았지만, 풀어 나갔었다. 일목요연한 문법과 문법설명이라기 보단, 내가 생각하고 느꼈던 것에 대한 기록이다. 난 알고리즘 왕초보니까..😅 내 힘으로 해결하지 않고 풀다가 다른 사람들의 풀이를 보곤 했었는데, 그렇기엔 내 일시적 궁금증만 해소될 뿐이지 궁극적인 나의 알고리즘 내성력(?) 에 일절 도움이 되지 않았다. 그래도 작년 말부터는 다시 초심으로 돌아가 프로그래머스 코딩테스트 기초부터 풀고 있는중이다. 절대 다른 이들의 풀이법을 보고 싶지 않았다! 1. 우선, 문제에서 설명하는 것과 요구하는 것을 먼저 파악했다. 2. 그리고 나서 웬만하면, 제한사항을 두는..
2023.08.14