일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- GIT
- xcode
- stanford
- 알고리즘
- 청년취업사관학교후기
- CS193p
- flutter #state # stateful #stateless
- MVVM
- 코딩테스트
- Masil
- xml
- 스위프트
- IOS
- WidgetTree
- 프로젝트회고
- Swift
- ImageSlider
- flutter
- 오늘의 색상
- 프로그래머스
- collectionView
- colorofdays
- process
- SwiftUI
- UIKit
- UserDefault
- 조건문
- 백준
- 새싹후기
- 스터디
- Today
- Total
목록분류 전체보기 (105)
개발을 시작하는 이야기
강의 보기 : Youtube :: Stanford Animation 애니메이션 효과는 변화가 발생했을 때만 나타난다. 1. View가 이미 UI에 들어가 있는 상태에서 ViewModifier의 인자가 바뀌었을 때 2. shape가 바뀌었을 때 3. UI 내부의 View가 생기거나 사라질 때 UI상의 View container에 추가되는 경우 UI상의 View container에 제거되는 경우 if-else, ForEach문 애니메이션을 실행하는 세 가지 방법 Implicit Animation .animation(Animation) View Modifier를 이용한 방식 duration, delay, repear, curve 등 직접 지정할 수 있다. .animation 앞의 모든 View Modifier..
프로그래머스의 코딩테스트 연습 Level 1부터 하나씩 차근차근 해보기. 문제 설명 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. 제한 조건 n과 m은 각각 1000 이하인 자연수입니다. 예시 입력 5 3 출력 ***** ***** ***** Solution.Swift import Foundation let n = readLine()!.components(separatedBy: [" "]).map { Int($0)! } let (a, b) = (n[0], n[1]) for _ in 0..
강의 보기 : Youtube :: Stanford Protocol 특정 기능을 수행에 필요한 필수적인 속성이나 메서드를 정의한다. protocol Moveable { func move(by: Int) var hasMoved: Bool { get } var distanceFromStart: Int { get set } } struct PortableThing: Moveable { func move(by: Int) { print("\(by)만큼 움직입니다") } var hasMoved var distanceFromStart } 프로토콜은 또 다른 프로토콜을 따를 수 있다. protocol Moveable { var hasMoved: Bool { get } } protocol Messagable: Moveab..
접근제어가 있다는 건 알고 있지만, 이걸 사용하지 않아도 잘 작동하는데 굳이 왜 사용해야 하는지, 사용한다면 어떤 식으로 어느 정도 수준까지 사용해야 하는지 알아보고 내 앱에 적용하기 위해 작성함. 객체지향 프로그래밍 패러다임에서 캡슐화와 은닉화는 중요한 개념 중 하나이고, 이를 구현하기 위한 핵심 기능이 접근제어라고 한다. 캡슐화와 은닉화를 구현하는 이유는 외부에서 보거나 접근하면 안 되는 코드가 있기 때문이다. 불필요한 접근으로 의도치 않는 결과를 초래하거나 꼭 필요한 부분만을 제공해야 하는데 전체 코드가 노출될 가능성이 있을 때 접근제어를 이용한다. 접근제어는 접근수준 키워드를 통해 구현할 수 있는데, 각 타입(클래스, 구조체, 열거형 등)에 특정 접근 수준을 부여할 수 있고, 타입 내부의 프로퍼티..
강의 보기 : Youtube :: Stanford @State, @Binding @State는 단어 그대로 현재 상태를 나타내는 속성으로, 뷰의 어떤 값을 저장하는 데 사용된다. 현재 뷰 UI의 특정 상태를 저장하기 위해 만들어진 것이기 때문에 보통 Private로 지정하여 사용한다. @State 속성의 프로퍼티 값은 재 할당을 하더라도 변경되지 않는데 @Binding 변수를 통해서 변경이 가능하다. @Binding은 단어 그대로 구속력 있는, 묶여 있다는 뜻으로, @State 속성으로 선언된 프로퍼티와 묶여 있다고 생각하면 된다. @State는 주가 되는 뷰에 선언을 해주고, 선언된 프로퍼티를 다른 뷰에서 사용하기 위해서는 @Binding을 사용한다. 그리고 사용 시에는 $를 앞에 붙여주어 Bindin..
강의 보기 : Youtube :: Stanford 이번 강의에서 주된 내용은 Enum과 Optional에 대한 이야기 Enum 값타입으로 관련 데이터를 가지고 있을수 있다. enum의 상태 체크는 switch를 이용한다. break는 아무 일도 하고 싶지 않을 때 사용한다. default는 기본값에 해당하는, 케이스가 없는 경우 사용한다. if문의 else 와 같은 느낌 switch에서 열거형을 case로 구분할때, 튜플에서 label을 추가해서 해당 값에 접근할 수 있다. 저장프로퍼티는 가질수 없고, 함수 사용은 가능하다. CaseIterable를 이용해서 모든 타입에 접근할 수 있다. enum A: CaseIterable { case a case b case c } for e in A.allCases..
강의 보기 : Youtube :: Stanford MVC : UIKit 기반의 디자인 패턴 MVVM : SwiftUI를 위한 디자인 패턴 각각의 디자인 패턴에 대한 설명은 일전에 작성해둔 글의 링크로 대체한다. Struct와 Class Struct Class Value type Reference type Copied when passed or assigned Passed around via pointers Copy on write Automatically reference counted Functionak programming Object-oriented programming No inheritance Inheritance (single) "Free" init initializes All vars "Fr..
강의 보기 : YouTube :: Stanford struct ContentView: View { var body: some View { HStack { ZStack { RoundedRectangle(cornerRadius: 20.0) .stroke(lineWidth: 3) Text("Hello, CS193p!") } ZStack { RoundedRectangle(cornerRadius: 20.0) .stroke(lineWidth: 3) Text("Hello, CS193p!") } ZStack { RoundedRectangle(cornerRadius: 20.0) .stroke(lineWidth: 3) Text("Hello, CS193p!") } ZStack { RoundedRectangle(cornerR..
강의 보기 : YouTube :: Stanford 12분까지는 오리엔테이션 및 제작할 프로젝트에 대한 설명 15분까지는 Xcode에 대한 설명 및 설치 21분까지 프로젝트 생성에 대한 설명이다. 33분까지가 생성된 파일과 Preview화면, Assets, Project 파일들에 대한 설명들이다. 기본기는 이미 알고있다거나, 다시 리마인드로 듣는다면 33분부터 봐도 될 듯하다. 물론 나는 처음부터 시청. SwiftUI 상태 기반 프레임워크로 뷰의 Reference를 가져오거나 뷰를 임의로 수정할 수 없음. struct ContentView: View { var body: some View { Text("Hello, world!") .padding() } } some은 Opaque Type, 불투명한 타입..
앱을 구동하면 데이터를 로딩하다가 알림 창과 함께 강제 종료가 되는 오류를 해결하려고 다시금 프로젝트를 열고 뒤적이다 원론적인 오류는 해결하지 못하고 Uncategirized 오류만 해결한채로 오류의 원인을 찾으며, 지도 탭을 업데이트하기로 했다. Uncategirized 오류 해결 : [Error]Uncategorized 이미 문화유산에 대한 Annotation들은 사용하고 있지만 Annotation을 선택하면 아무 효과가 없었다. 초기 Storyboard로 작성했을 때는 containerView 효과를 주려고 했었으나, 이당시 PickerView를 containerView로 작성을 해주어서 하나의 Storyboard에 두 개의 ContainerView를 컨트롤하기가 힘들어서 잠시 중단을 했었다. 후..