일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- rxswift
- IOS프로그래밍
- 카카오톡채팅봇
- 웹크롤링
- 프로그래머스
- 스위프트
- 리프2기
- 파이썬중급
- 인프런
- 토플공부수기
- 자바스크립트
- 노드JS
- 인프런파이썬강의
- 교환학생토플
- Python3
- 토플
- swift
- 우리를위한프로그래밍
- IOS
- 파이썬
- 인프런오리지널
- uikit
- 인프런파이썬
- 유학토플
- nodeJS
- JS
- 파이썬웹크롤링
- 파이썬중급강의
- 인프런강의
- SwiftUI
- Today
- Total
목록앱 (58)
먹고 기도하고 코딩하라
2줄 요약: 이 글은 API로 데이터를 받아와서 리스트뷰로 띄우는 중에 생긴 에러를 다루고 있음. 데이터를 json 디코딩해서 모델로 변경하지 않고 바로 쓰고 있다면, 실제로는 값이 없는 프로퍼티를 참조했을 때 이런 에러가 날 수 있음. 본문 원래 swift로 개발하던 앱이 있었는데 언니가 안드로이드로도 내라고 해서 플러터로 급 개발 중이다. 검색 기능을 구현하던 중 문제가 생겼다. RangeError (end): Invalid value: Only valid value is 0: 4 검색해보니 0: 1 이런 건 있어도 0: 4 이런 에러는 없었다. 왜 이런 에러가 나는지 알 수가 없었음. 이쯤에서 API에 데이터 요청을 하고 받아와서 위젯에 그리는 코드를 한 번 살펴보자. // 데이터 요청 getJSO..

한줄요약 : let calendar = FSCalendar(frame: .zero) calendar.delegate = self FSCalendarDelegateApperance 프로토콜 준수하고 이 코드 추가 extension ViewController: FSCalendarDelegateAppearance { // 토요일 파랑, 일요일 빨강으로 만들기 func calendar(_ calendar: FSCalendar, appearance: FSCalendarAppearance, titleDefaultColorFor date: Date) -> UIColor? { let day = Calendar.current.component(.weekday, from: date) - 1 if Calendar.curre..

스크롤뷰의 Content Layout Guide, Frame Layout Guide 등에 대해서는 설명하지 않고 어떻게 만드는지만 살펴봅니다. 코드, 스토리보드 2가지 방식과 세로/가로 방향 스크롤뷰를 만드는 방법을 모두 다룹니다. 이 글을 참고했으며 좀 더 자세하게 작성했습니다. 0. 스크롤뷰의 이해 스크롤뷰는 실제로 스크롤돼서 보일 뷰들을 담는 Content Layout과 스크린에 보이는 만큼의 Frame Layout을 가집니다. (Content Layout 영역 >= Frame Layout 영역) 이걸 확실히 이해를 해야 Frame Layout에 priority 왜 낮추는지도 이해가 됩니다. 1. 코드 일단 스토리보드를 삭제하고 구현한다고 가정하고 ViewController 소스 코드만 적습니다. ..

어떤 문서를 보다가 pushViewController와 show 방법을 이야기하면서 필자는 show를 더 선호한다고 쓰인 문장을 봤다. 궁금해졌다. pushViewController와 show 방식 모두 내비게이션 컨트롤러 기반으로 움직이는 게 아닌가? 좀 더 자세히 살펴봐야겠다는 생각이 들어 문서를 찾아보고, 실험도 함께 곁들이려 한다. 문서 일단 pushViewController부터 본다. pushViewController(_:animated:) 뷰 컨트롤러를 수신자(receiver)의 스택에 푸시하고 디스플레이를 업데이트한다. func pushViewController( _ viewController: UIViewController, animated: Bool ) viewController : 스택..

1시간 정도 정말 많이 찾아보고 문서를 읽고 또 읽었지만 등잔 밑이 어둡다고 문제는 가까이에 있었다. 요약 : Podfile의 platform 주석을 해제하고, 현재 개발하는 프로젝트의 빌드 타겟에 맞는 버전을 적어주세요. 만들고 있는 앱에 파이어베이스를 붙여 구글로 로그인할 수 있도록 서비스를 만들고 있었다. 다음은 pod init 후 workspace를 열어 AppDelegate 파일을 수정한 코드이다. import UIKit import FirebaseCore import GoogleSignIn @main class AppDelegate: UIResponder, UIApplicationDelegate, GIDSignInDelegate { func application(_ application: UI..

UICollectionView를 알아보기 전에 먼저 Collection View라는 건 뭘 뜻하는건지 알아보자. 문서를 참고했다. Collection View는 설정할 수 있고, 커스텀할 수 있는 레이아웃을 이용해 중첩된 뷰를 보여주는 역할을 한다. 컬렉션 뷰는 순서가 있는 콘텐츠(사진 앱의 사진 그리드 등)의 셋(set)을 관리하고 시각적으로 표현한다. 컬렉션 뷰는 다른 많은 객체들과 함께 쓰일 수 있다. Cells. 셀은 콘텐츠 하나하나에 대해 시각적 표현 제공 Layouts. 레이아웃은 컬렉션 뷰 콘텐츠에 시각적으로 잘 배치된 레이아웃 제공 data source object. 이 데이터 소스는 UICollectionViewDataSource 프로토콜을 따라야 하고, 컬렉션 뷰에 데이터를 제공하는 역..
공식 문서로 살펴보자. App App 프로토콜을 따르는 구조체를 선언해 앱을 만들 수 있음 body 연산 프로퍼티를 구현해 앱 콘텐츠를 정의 @main struct MyApp: App { var body: some Scene { WindowGroup { Text("Hello, world!") } } } 이 경우, App 구조체 선언 윗줄에 들어가는 @main 어트리뷰트는 MyApp이 앱의 시작점(entry point)이 된다는 것을 가리킴 App 프로토콜은 기본적으로 앱을 실행할 수 있는 main() 메소드 구현을 제공하지만, 전체 앱 파일 중에서 딱 1개에만 entry point가 있어야 함 App의 body는 Scene 프로토콜을 따르는 객체들로 구성할 수 있으며, 각 scene은 뷰 계층(view ..
다른 언어에서 '객체'로 불리는 것은 Dart에서 Map이라는 자료형으로 다루고 있다. Map은 쉽게 말해 key-value 쌍으로 이뤄진 객체이다. 키, 값은 각각 어떤 자료형이든지 상관없다. Map은 동적 컬렉션 자료형으로, 늘리고 줄일 수 있다. 또한 Map은 이터레이션 가능한 객체이다. 1. Map 선언 제일 간단한 방법으로 중괄호 { }를 써서 선언하는 방법이 있다. 중괄호 안에 바로 키: 값을 넣어도 상관없고, 아래 예제 코드처럼 일단 빈 Map을 선언한 다음 값을 넣는 방법도 있다. Map my_map = {}; my_map['name'] = 'my map'; print(my_map);// {name: my map} Map을 선언하는 또다른 방법은 new Map() 생성자를 사용하는 것이다...