변수(variable)는 값을 수정할 수 있고, 상수(constant)는 그렇지 않습니다. 변수는 var로 선언하고, 상수는 let으로 선언합니다.Swift는 정적 타이핑 언어입니다. 즉, 변수나 상수를 정의할 때 그 자료형(타입)이 어떤 것인지를 명시해주어야 하는 언
함수는 func 키워드를 사용해서 정의하고, -> 를 사용해서 함수의 반환 타입을 지정합니다.Swift에서는 독특하게 함수를 호출할 때 파라미터 이름을 함께 써주어야 합니다.파라미터 이름을 \_로 정의하면 함수를 호출할 때 파라미터 이름을 생략할 수 있게 됩니다....
비동기 작업에서는 중요한 것 중 하나가 ⭐️스레드 (thread)⭐️를 잘 고려하는 것이다! Swift Combine의 Operator 에서 Scheduler를 파라미터로 사용하면,무거운 작업을 메인스레드가 아닌 다른 스레드에서 작업할수 있다!: publisher 가
UIKit에서 리스트와 그리드를 구현하는 방법에는 UICollectionView와 UITableView 두가지가 있다. UICollectionView를 이용해서 리스트 및 그리드를 개발할때는 3가지만 고려하면 된다!
UICollectionView를 이용하여 그리드를 구현할 때,점점 복잡한 구현이 생기면서, 기존방식 사용시 이슈가 생길때가 있다. Controller와 UI 가 들고 있는 데이터가 일치하지 않으면,앱에서는 어느것이 더 맞는 데이터인지 판단하기 어렵다 😖이를 근본적으로
당근마켓과 같은 서비스에서 금액을 나타낼 때, 1000원 단위로 콤마(,)가 있는 것을 볼 수 있다.이를 Swift에서 구현하는 방법은 아래와 같다.아래 메소드는 금액(price) 을 파라미터로 받아서 포매팅된 금액 을 String으로 반환한다.NumberFormatt
SwiftUI에서 TextEditor를 사용할 때,키보드를 자동으로 보여주면 유저에게 TextEditor의 존재를 잘 전달할 수 있다.사용 방법은 다음과 같다.TextEditor를 감싸고 있는 VStack의 바깥에 onAppear 을 설정하였다.DispathQueue.
모달은 사용자에게 일시적으로 집중을 요하는 컨텐츠를 표시할때 사용된다.Swift UIKit 에서 모달을 사용하는 방법을 알아보자.
Swift 와 Combine을 익히기 위해 평소에 자주 사용하는 앱인 '알라미' 앱을 비슷하게 구현해보고 있다.홈화면에서 우측하단 Floating Button을 누르면 새로운 알람을 만들 수 있는 구조이다.Storage에 새로운 알람 데이터를 저장하는 것까지는 구현을
TableView 안에 CollectionView를 담아 섹션 별 컨텐츠를 가로로 스크롤해서 볼 수 있는 구조를 디자인하려 한다.ViewController 파일에 extension으로 UITableViewDelegate을 추가하고 Header 관련 코드를 작성한다.⓵
SwiftUI에서 NavigationLink 를 이용하여 View를 이동하였을 때,Navigation Bar Item 설정을 아무것도 하지 않을 경우에는back button(<)과 이동 전 View의 navigation title (ex: 쩝쩝박사) 이 함께 보인
SwiftUI의 Realm 데이터 삭제를 하는 과정에서 자꾸 해당 에러가 발생하였다.. 🤯 Terminating app due to uncaught exception 'RLMException', reason: 'Object has been deleted or in
앨범 접근 권한을 거부한 유저에게 '권한 설정' 페이지로 이동할 수 있도록 alert 창을 보여주는 상황이다.SwiftUI에서 View를 사용하지 않고 프로그램 상으로 UIAlertController를 띄우는 방법이 필요하다.UIAlertController의 title
쩝쩝박사를 앱 스토어에 출시하고 친구들에게 홍보를 하는데 친구가"소맹아 왜 언어가 영어야?" 라고 물었다!잉? 나는 한국어로 설정하고 출시했는데?!검색을 해보니 Xcode에 개발 언어가 영어로 설정되어 있어서 앱 스토어에도 동일하게 적용된 거였다 🙀그래서 부랴부랴 찾
MultiLine TextField를 구현할 때,Tappable Area가 기본값 (1줄)로 설정되어 있어 불편한 UX를 유발한다..!TextField의 frame 내의 범위에서 아무데나 탭해도 focus가 활성화될 수 있게 만드는 방법이다.탭 Area를 조정하고자 하
: 이벤트 처리 연산자들을 통해 비동기 이벤트를 처리할 수 있게 하는 프레임워크Publisher: 생산자, 배출자, 크리에이터Subscriber: 소비자, 구독자Operator: 마법사, 가공하는 사람데이터를 배출구체적인 Output, Failure 타입 정의빌트인 P
Bundler 와 Gemfile 을 이용해서 fastlane 의존성 관리하기1-1. 터미널에서 gem install bundler 입력해서 번들러 설치만약, 에러가 발생했다면 아래 절차를 따른다.brew updatebrew install rbenv ruby-build
: HTTP/HTTPS를 통해 콘텐츠(데이터)를 주고받는 API를 제공하는 클래스이 API는 인증 지원을 위한 많은 델리게이트 메서드를 제공하며,애플리케이션이 실행 중이지 않거나 일시 중단된 동안 백그라운드 작업을 통해 콘텐츠를 다운로드하는 것을 수행하기도 한다. UR
NSDiffableDataSourceSnapshot 을 이용하여 UICollectionView에 띄울 데이터를 다룰 때,기존 snapshot 에 추가되는 데이터를 연결하는 방식과기존 snapshot 을 업데이트하는 방식을 구현하는 방법을 각각 알아보자.가계부 앱을 예로
return 시, 키보드 내리기 & cursor 비활성화 textfield 터치 시, cursor 활성화textfield 내 formatting (가격 형태)https://developer.apple.com/documentation/uikit/uitextfi
Swift 에는 Queue 가 없다..! 😱프로그래머스 코테준비를 하면서 Array로 큐 연산을 하다보니 시간초과가 발생했다 ㅠㅠSwift로 Queue 와 앞뒤로 삽입/삭제가 가능한 Deque (덱)을 구현한 코드를 활용했더니 시간초과 해결! 🥰temp에 Array
Counter 구현 Dictionary에서 max value 찾는법 특정 value를 가진 key 찾는 방법
sqrt(): 제곱근 구하는 함수trunc(): 소수점 버리는 함수yellow = 24 일 때,arr = (24,1), (12,2), (8,3), (6,4)
Swift에서 Tuple로 이루어진 배열이 특정 Tuple을 갖고 있는지 확인하는 함수이다.프로그래머스에서 교점에 별 만들기 문제를 푸는 과정에 사용하였다!https://youngdeveloper.tistory.com/67
Swift에서 substring 함수를 구현하는 방법을 알아보자.
UIKit 앱에서 UIDatePicker을 사용하는데 선택된 날짜의 시간대가 잘못 출력된다
key-value 쌍으로 디바이스에 데이터를 저장하는 기능을 제공하는 인터페이스인 UserDefaults의 특정 Key의 변화를 비동기적으로 반영하는 방법을 알아보자!사용하고자 하는 key의 이름(link)과 type(String)을 지정하여 Extension을 작성해
Combine의 Publisher = Rx의 ObservableCombine의 Subscriber = Rx의 Observer하지만, Publisher는 프로토콜이고 AnyPublisher는 Publisher을 따르는 struct이다.Subscriber는 프로토콜이고 A
사람마다 MVVM 을 구현하는 방식이 가지각색입니다.ReactorKit은 그런 부분에 있어서 어느정도 제약을 두어서 좀 더 정형화된 방식으로 구현할 수 있게 만들어준다.ReactorKit은 크게 View와 Reactor로 이루어져있으며,View 는 Reactor 에게
Coordinator: 움직임을 조정하는 사람Coordinator Pattern: view controller로 부터 화면 전환의 부담을 줄여주고, 화면 전환을 보다 더 관리하기 쉽도록 도와주기 위한 패턴Coordinator Pattern은 2015년, Soroush
비동기 작업의 결과물을 @escaping completion으로 콜백 하지 않고, 리턴 값으로 전달해줄 수는 없을까?
Swift 4.1부터 기존의 flatMap이 compactMap으로 바뀐다. (flatMap 남아있음)
Objective-C에서 비동기 작업을 위해 자주 사용하는 GCD(Grand Central Dispatch) 의 단점을 파악해보고,이를 보완하기 위한 뉴페이스(?) Swift Concurrency와 비교해보자.
SwiftUI를 활용한 위젯 구현에 대한 기본적인 부분을 정리
우리가 사용하는 대다수 웹, 앱에서 구글 광고를 볼 수 있는데, iOS에서 구글 애드몹 SDK를 적용해 볼 기회가 생겼다.구글 애드몹 SDK 적용법은 구글 애드몹 공식 홈페이지의 가이드를 따랐으니 참고 바란다. (\*안드로이드도 동일 홈페이지에 가이드 있음)구글 애드몹