일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- flutter #state # stateful #stateless
- UIKit
- 새싹후기
- 청년취업사관학교후기
- 프로그래머스
- 코딩테스트
- 오늘의 색상
- WidgetTree
- 알고리즘
- 백준
- 조건문
- colorofdays
- ImageSlider
- CS193p
- xml
- Swift
- stanford
- collectionView
- SwiftUI
- IOS
- 프로젝트회고
- Masil
- process
- 스위프트
- GIT
- 스터디
- xcode
- flutter
- MVVM
- UserDefault
- Today
- Total
목록IOS (44)
개발을 시작하는 이야기
강의 보기 : 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를 컨트롤하기가 힘들어서 잠시 중단을 했었다. 후..
문화유산 앱의 지도 텝에서는 문화유산의 지역 정보를 가져와서 지도에 표시해주는 Annotation을 사용한다. 그런데, 문화유산의 수가 만 육천 개가 넘어가기 때문에 지도에 항상 모두를 표시해줄 수는 없기에 지역을 필터링해서 일부분만 보여주기로 하였다. 일단은 필터를 선택하는 filterButton과 PickerView를 키보드 영역에 보여주기 위해 빈 TextField를 제작했다. 을 MapView에 만들어 주었다. let filterButton: UIButton = { let button = UIButton() button.setImage(UIImage(named: "plus"), for: .normal) button.imageEdgeInsets = UIEdgeInsets(top: 12, left: ..
UIkit 역시 Foundation과 마찬가지로 Framework로 iOS와 tvOS에 들어가는 앱을 빌드하는데 필요한 핵심 오브젝트(core object)를 지원한다. 애플의 통합 개발 환경인 Xcode에서 프로젝트를 생성해서 개발을 시작하는데, Xcode는 UI 기반으로 앱을 빌드한다. UI의 요소가 오브젝트로써 가능하며 UIButton, UILabel, UITableView 등이 이에 속한다. 이런 오브젝트들의 인터렉션이나 콘텐츠 요소를 UIKit이 지원하는 방식이다. 대부분의 어플리케이션은 당연히 UIKit에 의존할 수밖에 없지만 제공하는 기능이 다양하고 커스텀이 가능하기 때문에 수없이 많은 사용자 경험을 제공할 수 있게 된다. 필수 요소 UIKit이 사용된 어플리케이션은 다음 두 가지 요소를 필..
SwiftUI를 UIKit과 비교를 했지만 UIKit에 대해서는 형식적으로만 알고 있고 실제로 이게 어떻게 동작하는지는 알지 못했기 때문에 Foundation 그리고 UIKit에 대해서 알아보려고 한다. iOS 개발을 처음 시작하면 가장 처음 마주하게 되는 프레임워크는 Foundation이다. 일단 공식문서부터 살펴보자면 데이터의 저장, Text처리, 날짜 및 시간 계산, 정렬 및 필터, 네트워킹을 포함한 앱 기능과 Framewoks의 기본이 되는 Framewok라고 한다. 사실상 우리가데이터 타입을 지정하거나 네트워킹 같은 App에서 기본적인 기능을 구현하기 위해서는 필수적으로 import 되어야 하는 Framework이고, 그래서 새로운 Swift파일을 만들면 기본적으로 Foundation이 impo..
이제 막 Swift 코딩에 익숙해지려고 하는 찰나 너무나도 UIKit에 익숙해져 있지만 새로 나온 SwiftUI도 알아야 하기 때문에 SwiftUI에 대한 공부를 시작해볼까 한다. SwiftUI는 2019 WWDC에서 처음 소개되었는데 기존의 UIKit을 이용한 개발과는 상반된 개념을 갖고 있다고 한다. 기존에는 스토리보드를 활용하여 화면의 구축과 흐름을 구성하고, ViewController에서 로직을 구현했다면, SwiftUI에서는 Swift 언어만으로 사용자 인터페이스를 구현할 수 있게 되었다. 물론 기존에도 가능은 했지만 더 간편하고 속도도 빨라졌다. SwiftUI의 특징 선언적 구문(Declarative syntax) 단순하면서도 직관적인 구문을 이용하여 화면을 구성할 수 있게 해준다. 기존 U..
앱이 업데이트를 지속하는 동안 예상치 못한 에러가 발생했다. 앱이 최초 실행 시 XML 데이터를 Realm에 저장하는 도중 앱이 알람 허용 창과 함께 종료돼버리고 만다. 그렇게 종료가 되면, 문화유산의 데이터를 제대로 받지 못한 상태로 종료되고 만다. 앱스토어나 TestFlight을 통해 앱을 받아 설치하면 애러가 발생하며 종료되는데, Xcode를 통해 빌드하면 문제없이 실행된다. 이 문제는 1.0.4 업데이트 이전에는 발생하지 않던 애러였다. 알람 요청 메시지를 띄우는 Cloud Messaging는 그보다 이전에 추가했었지만, 그때는 이런 문제가 발생하진 않았다. 이번 1.0.5 혹은 1.0.4 버전의 업데이트에서 문제가 발생했다고 생각이 들었다. 현재 Xcode의 오류 메시지는 1개의 이슈를 갖고 있..