MOBILE/ios (28) 썸네일형 리스트형 [iOS] RxSwift 마스터하기 1. escaping closure swift에서 closure는 일급 객체라서 범위 내에서 캡쳐되는데 만약에 다른 쓰레드에서 closure를 실행하는 코드라면? 안됨... 왜냐면 closure는 downloadJson 함수 안에서만 실행될 수 있는데 이건 비동기로 다른 스레드에서 처리되니까 메서드가 끝나고 난 뒤에 실행되기 때문.. func downloadJson(_ url: String, completion: @escaping (String?) -> Void) { DispatchQueue.global().async { let url = URL(string: url)! let data = try! Data(contentsOf: url) let json = String(data: data, encodin.. [iOS] Alamofire를 사용하여 비동기 서버 통신하기 0. Alamofire iOS 에서는 URLSession이라는 데이터/서버 통신용 프레임워크를 제공하지만 이는 사용하기 매~우 불편하다. Alamofire는 이러한 URLRequest + URLSession를 래핑한 구조를 가진 라이브러리이다. 즉 네트워킹 도구이다. 이 라이브러리를 사용하고자 한다면 기본적인 네트워킹 지식이 필요하다. [iOS] URLSession을 사용하여 POST method 통신하기 HTTP의 기본 구조 HTTP는 요청을 일정한 형식의 텍스트 기반 메세지로 변환한 메세지 형식을 말한다. 크게 요청, 응답으로 구분된다. 메세지는 모두 다음과 같은 구조이다. Line - Header - Body Line은 메 josushell.tistory.com 1. Alamofire 프로젝트에 반.. [iOS] 화면 전환 method Present(_:)와 stack 메모리 보호되어 있는 글입니다. [iOS] coreML 사용하여 multi class classification 모델 생성 및 프로젝트 반입하기 프로젝트를 진행하던 중 multi class classification을 해야할 일이 생겼다. 프로젝트가 아직 진행 중이라 다 말할 수는 없지만 사용자의 선택지에 따라 선택에 맞는 결과를 분류하여 class 중 하나를 보여줘야 하는 것이 목표다. 기계학습에서 배운 지식을 활용하면 multi class classification에는 여러 가지 모델을 사용할 수 있다. logistic regression, MLP, SVM 등등이 있다. 그런데 apple에서는 coreML이라는 것을 제공하는데 이 안에 tabular 데이터를 classification 해주는 라이브러리가 있다. 사실 공개된 swift ML 라이브러리도 많고, 직접 구현하는 것도 재미가 있지만 이미 있는 걸 최대한 활용하는 것이 개발자의 덕목(.. [iOS] Apple Developer Document: UICollectionView 인턴하면서 UIcollectionView 다루는 일이 있어서 그냥 공식 문서를 정독하기로 했다. 읽어서 직접 번역한 자료이기 때문에 이해하기 쉽게 의역한 부분이 있다. https://developer.apple.com/documentation/uikit/uicollectionview Apple Developer Documentation developer.apple.com UICollectionView 커스텀 가능한 레이아웃을 사용하여 정렬된 데이터 아이템들을 관리하고 나타내는 객체 Overview UI에 collection view를 추가할 때, 개발자의 앱에서 주요한 일은 collection view와 관련된 데이터를 관리하는 것이다. Collection view는 data source 객체에서 데이터.. [iOS] SnapKit을 사용하여 AutoLayout constraint 설정하기 AutoLayout을 사용하여 쉽게 view 객체들 간의 constraint를 설정하는 라이브러리를 알아보자 실제로 인턴 다니는 회사에서 사용하는 라이브러리인데, 처음 접해보고 진짜 너무 편하고 좋아서 사이드 프로젝트에도 적용하고 있음.. 1. SnapKit 공식 문서 snapkit은 cocoapod을 통해 설치 가능하다. GitHub - SnapKit/SnapKit: A Swift Autolayout DSL for iOS & OS X A Swift Autolayout DSL for iOS & OS X. Contribute to SnapKit/SnapKit development by creating an account on GitHub. github.com 깃허브를 방문하면 자세한 정보들을 얻을 수 있고.. [iOS] UIKit 알림창 UIAlertController customizing 하기 UIKit에서 알림창을 띄우는 객체는 UIAlertController이다. 경고창과 액션 시트 두 가지를 모두 구현 가능하며 다음과 같이 구현할 수 있다. 1. Alert 구현 let alert = UIAlertController(title: "Alert", message: "Alert창 입니다.", preferredStyle: .alert) alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil)) self.present(alert, animated: true); 위와 같이 알림창의 버튼은 UIAlertAction 객체이며 이 객체를 addAction 메소드를 사용하여 UIAlertController 객체에 추가해줘야 한다. 2.. [iOS] GCD의 기본: DispatchQueue의 종류와 특성 지난 번에는 GCD가 무엇인지 기본을 알아보았다. [iOS] GCD의 기본: sync, async, serial, concurrent ios multi-threading ios에서 멀티 스레딩을 지원하는 방식은 Thread, OperationQueue, GCD 이다. 이 중에서 Thread는 복잡하고 critical section을 막기 위한 lock, semaphore 등의 동기화 기법을 개발자가 직접.. josushell.tistory.com 이번에는 ios에서 제공하는 queue의 종류와 각각의 특성에 대해 알아보자. 위의 포스팅을 읽고 오는 것은 많은 도움이 된다. DispatchQueue 앱의 main thread 또는 background thread에서 serial, concurrent 하게 .. 이전 1 2 3 4 다음