분류 전체보기
-
babel개발/react 2020. 12. 6. 14:12
babel은 JFX로 작성된 react javascript 파일을 브라우저에서 인식할 수 있도록 변경해주는 컴파일러다. 예시로 아래처럼 생긴 코드를 브라우저에 렌더링 하려고 하면 const appRoot = document.getElementById('app'); function renderApp() { // JSX - JavaScript XML var template = Hello react var appRoot = document.getElementById('app'); ReactDOM.render(template, appRoot); } renderApp() 요런 에러가뜬다. 이건 JFX로 작성된 형태를 브라우저에서 읽을 수 없기 때문이다. react에서 기본적으로 만들어주는 프로젝트를 사용하면 이런..
-
arrow function개발/react 2020. 12. 6. 13:59
요즘 트렌드 언어 답게 react에서 사용하는 javascript도 arrow function으로 함수를 줄일 수 있다. 자바에서 사용하는 람다나 swift의 closure 랑 비슷하게 이름없는 함수(anonymous) 를 사용해서 1회성의 함수를 따로 선언하지 않고 삽입해서 쓸 수 있는 기능이다. 이 함수들은 모양새는 다르지만 모두 똑같이 제곱값을 리턴하는 함수다. const square1 = function(x) { return x * x }; const square2 = (x) => { return x * x; }; const square3 = (x) => x * x; 객체 내에서 함수로 들어갈 때도 동일하게 줄일 수 있다. const user = { name: 'kwony', cities: ['p..
-
Realm개발/iOS 2020. 12. 5. 15:21
Realm은 오픈소스로 운영되는 모바일용 데이터베이스 클래스다. CoreData 처럼 관계형 데이터베이스를 읽고 쓰는 것을 지원하고있다. 개인적으로 CoreData를 사용하는 것 보다 훨씬 직관적이고 사용하기가 간편하다. 이번 포스트에서는 Realm을 Swift에 사용하는 방법을 간단히 정리해본다. 1. Realm cocoapod 임포트 pod 'RealmSwift', '~> 4.4.1' RealmSwift 라이브러리를 임포트시킨다. 몇 ios 버전에선 이전 Realm 버전으로 임포트하면 persmission 에러가 뜬다고 해서 4.4.1 버전으로 임의로 설정했다. 2. 클래스 설정 import Foundation import RealmSwift class Category: Object { @objc d..
-
CoreData개발/iOS 2020. 12. 5. 13:16
CoreData는 iOS 플랫폼 단에서 지원하는 관계형 데이터베이스 라이브러리다. XCode에서 지원하는 툴과 CoreData를 사용하면 SQL의 어려운 쿼리문을 사용하지 않고도 테이블을 만들고 데이터를 추가할 수 있다. 이번 포스트에서는 Xcode를 이용해 CoreData 를 초기화하고 기본 CRUD 작업을 수행하는 것을 다뤄보려고 한다. 1. Data Model 파일 생성 및 초기화 CoreData를 사용하려면 Data Model 타입의 파일을 하나 생성해야한다. New File을 클릭하고 필터로 data 를 입력해서 Data Model 타입의 파일을 하나 추가한다. 이 작업이 완료되면 AppDelegate.swift 파일에 아래 코드를 추가해야한다. 현재 앱에서 바라보고 있는 데이터 모델을 세팅해주..
-
UserDefaults개발/iOS 2020. 12. 5. 12:31
앱을 개발하다 보면 종종 단일의 데이터를 저장해야하는 경우가 생긴다. 예로 들면 어떤 가이드 화면을 보여줬는지 안보여줬는지 유무를 저장하는 Boolean 타입의 데이터나 영상의 음량을 미리 정해두는 Float 타입의 데이터값 같은 것들이 있다. 이런 데이터들은 관계형 데이터베이스로 저장하는 것 보다는 key - value로 저장하는게 효율적인데 iOS에서는 UserDefaults라는 라이브러리를 이용해 이 기능을 제공한다. 안드로이드를 경험한 개발자들은 SharedPreference 클래스와 비슷한 역할을 한다고 보면 될 것 같다. 사용하는 방법도 비슷하고 간편하다. class TodoListViewController: UITableViewController { let defaults = UserDefa..
-
IQKeyboardManager개발/iOS 2020. 11. 30. 11:07
iOS에서도 소프트 키보드를 토글하면 UI 뷰 화면을 덮어버리는 문제가 있었다. 안드에서는 그래도 activity 단에서 키보드가 뜰때 어떻게 UI 레이아웃을 변형할지 어느정도 조정이 가능한데 ios에서는 그런게 특별히 없는 것 같다. 키보드가 뜰 때 마다 OS에 물어봐서 keyboard의 height를 알아오고 그에 맞춰서 View를 올려줘야 한다고 하는데.. 매번 하기엔 꽤 번거로운 일이다. 다행히 삽질(?)을 미리 해두고 라이브러리 형태로 배포를 해뒀다고 한다. 라이브러리 이름은 IQKeyboardManager 이고 사용방법도 아주 간단하다. 먼저 cocoapod을 이용해 라이브러리를 임포트 하자. platform :ios, '13.0' target 'Flash Chat iOS13' do use_f..
-
URLSession개발/iOS 2020. 11. 30. 10:42
JAVA나 C, C++과 마찬가지로 swift 언어의 라이브러리를 이용해서 외부 서버랑 통신을 주고 받을 수 있다. 절차도 비슷한데 1. 먼저 통신할 주소를 URL 클래스로 생성하고 2. URLSession 을 만든 다음 3. URLSession에 아까 만든 주소로 task를 할당하고 응답시 처리할 코드를 입력하고 4. task를 실행한다. func performRequest(_ urlString: String) { // 1. Create a URL if let url = URL(string: urlString) { // 2. Create a URL session let session = URLSession(configuration: .default) // 3. Give the session a task..
-
Pod개발/iOS 2020. 11. 30. 10:32
안드로이드에서 build.gradle 파일을 수정해 파이어베이스나 외부 깃허브 라이브러리를 다운 받을 수 있었던 것처럼 Xcode에서는 cocoapod과 swiftpackage 라는 툴로 이런 기능을 제공하고 있는데 . swiftpackage는 비교적 최근에 애플에서 만들었고 사용하기도 간편하지만 보편화되지 않아서 아직까지는 cocoapod을 상요하는 추세라고 한다. 이번 포스트에서는 cocoapod을 사용해서 외부 라이브러리를 임포트 하는 방법을 다뤄보려고 한다. 1. cocoapod 설치하기 맥북에 cocoapod이 설치되지 않았다면 아래 명령어로 터미널을 켜서 cocoapod을 먼저 설치한다. sudo gem install cocoapods pod setup --verbose 2. 프로젝트에 pod..