터미널

코코아팟 라이브러리 생성

라이브러리를 만들 경로로 이동하여 라이브러리를 만들어준다.

 

pod lib create 이름

 

그 뒤에 나오는 5가지 질문에 대답해준다.

1. 어떤 플랫폼을 사용하시겠습니까?

iOS

2. 어떤 언어를 사용하시겠습니까?

Swift

3. 라이브러리에 데모 애플리케이션을 포함하시겠습니까?

Yes

데모 앱으로 테스트를 해볼 수 있다.

4. 어떤 테스팅 프레임워크를 사용할 것인가?

None

5. 보기 기반 테스트를 하시겠습니까?

No

 

4번과 5번을 Quick, Yes 로 입력하면 오류가 걸릴 수도 있다.

 

이렇게 하면 pod이 설치되고 Xcode 프로젝트가 자동으로 실행된다.

 


Xcode

라이브러리 수정

Pods - Development Pods - 라이브러리 이름 - ReplaceMe.swift

파일 이름을 라이브러리명으로 수정하고 파일 내용을 입력한다.

외부에서 import 해서 사용하기 위해서 반드시 open 이나 public 으로 작성해야 한다.

 

라이브러리 테스트

Example 에 있는 ViewController를 수정하여 테스트를 해본다.

아까 라이브러리 생성할때 3번에 Yes 체크한게 이부분이다!

실행하면 출력이 잘 되는걸 확인할 수 있다.

 

Podspec 수정

 

git 원격 저장소 생성

레파지토리 이름은 라이브러리에 맞추어 주고 public으로 생성해줍니다.

 

깃허브 레파지토리 확인

깃허브로 들어가서 확인해보면 아래와 같이 올라와 있습니다.

(저는 출시하고 캡쳐한거라 pod, license 가 변경되어 있는데 처음 올리면 비어져 있어요.)

 

코코아팟에 배포하기

podspec 확인

터미널

먼저 .podspec 파일에 이상이 없는지 체크해야한다.

터미널에서 라이브러리 프로젝트 경로로 이동한다. 그리고 명령어를 입력한다.

pod spec lint

 

만약 '원격 저장소'에 0.1.0 버전 태그가 없다는 에러가 뜬다면 태그를 만들어줘야 한다.

 

0.1.0 태그 버전 업데이트

Xcode

Xcode에서 Commit 및 Push to remote를 같이 해준다.

터미널

라이브러리 프로젝트 경로의 터미널에서 명령어를 입력해준다.

git tag 0.1.0
git push origin 0.1.0

0.1.0 버전 태그를 붙이고 레파지토리에 push 해주는 것이다.

 

그리고 다시 podspec 파일 체크를 해준다.

pod spec lint

여기에서 에러나 경고가 없다면 passed validation 이 뜬다.

(경고를 그냥 무시하고 싶으면 pod spec lint --allow-warnings 입력)

 

코코아팟에 등록하기

pod에 등록해 주기 위해 터미널에 명령어를 입력한다.

pod trunk register 이메일주소 이름

 

이메일로 이동해서 링크를 확인한다.

코코아팟 사이트로 이동되고 셋업이 완료되었다고 뜬다.

 

코코아팟에 출시하기

터미널에서 라이브러리를 코코아팟에 푸쉬해준다.

pod trunk push 라이브러리이름.podspec

여기에서 자신의 맥이 M1 이라면 에러가 뜹니다. M1 터미널 호환문제로 인한 에러입니다.

그러면 아래와 같이 명령어를 수정해주세요.

arch -x86_64 pod trunk push 라이브러리이름.podspec

arch -x86_64 명령어는 터미널을 인텔맥처럼 돌아가게 만들어주는 명령어입니다.

(코코아팟 설치할때와 마찬가지 에러)

 

그리고 경고를 무시하고 싶으면 명령어를 다시 수정합니다.

arch -x86_64 pod trunk push 라이브러리이름.podspec --allow-warnings

 

성공하면 축하한다는 메시지를 받게되요.

 

코코아팟 출시 확인하기

위에 보이는 링크(https://cocoapods.org/pods/ReusingFramework)를 인터넷주소창에 입력하면 자신의 깃허브 레파지토리로 이동됩니다.

pod: v0.1.0, license:MIT 로 변경되어 있으면 성공입니다.

 

정말 간혹 변경이 안되어 있을 수 있는데 코코아팟 사이트(https://cocoapods.org/)로 이동시 Internel Server Error 가 뜨면서 로드가 안될 수 있는데 코코아팟 내부 서버 문제입니다.(제 경우가 그랬어요...)

 

코코아팟 설치로 내가 등록한 라이브러리가 잘 불러와지는지 확인해보면 됩니다.

'iOS > 기술' 카테고리의 다른 글

MVVM, Reactive, RxSwift  (0) 2021.08.17
REST API 란?  (0) 2021.08.17
React Native 란?  (0) 2021.08.17

출처: https://www.youtube.com/watch?v=hkRvC0_LnZk 

MVC, MVP, MVVM 차이점

영상은 MVC, MVP, MVVM 의 차이점에 대한 영상입니다.

'iOS > 기술' 카테고리의 다른 글

코코아팟 출시하기  (2) 2021.09.28
REST API 란?  (0) 2021.08.17
React Native 란?  (0) 2021.08.17

[출처] [IT지식/API] REST API란? (feat. HTTP 응답 코드)|작성자 Jaeeun

 

1. REST?

Representational state transfer의 약자로, 백엔드와 클라이언트의 커뮤니케이션 방식을 의미한다.

특정 기술을 의미하는 것이 아니라, HTTP로 통신할 때 가장 적합한 방식을 말하는 것으로

URL을 통해 자원을 명시하고, HTTP Method를 통해 해당 자원에 대한 행위를 정의한다.

즉, 소프트웨어가 관리하는 데이터, 이미지 등의 정보를 주고 받는 가장 적합한 방법인 것이다.

다른 말로는 RESTful Web services라고도 불린다.

2. REST의 구성요소

1) 자원(URL)

자원은 데이터를 의미하며, 다른 말로는 리소스라고도 불린다.

그리고 이러한 리소스는 URI(URL)을 통해서 표현된다.

출처 : https://www.youtube.com/watch?v=PmY3dWcCxXI

이때, 여러 개의 데이터를 한 번에 식별하고 싶다면 데이터를 묶음의 URI를 사용하는데

이를 Collection이라고 부른다.

그리고 컬렉션 안에 있는 각각의 데이터를 Element라고 부른다.

즉, 컬렉션은 복수의 형태를 띠며 Element가 모여있는 것을 의미한다.

REST API는 URL을 보면, 어떤 자원인지 쉽게 파악할 수 있다(슬래시로 구분).

2) 행위(HTTP Method)

위의 리소스는 그저 데이터가 존재하는 것이기 때문에 어떠한 작업도 하지 못한다.

때문에 반드시 '행위'를 통해 데이터를 전달하거나 받아와야 한다.

행위의 방법에는 'POST, GET, PUT, DELETE' 4가지가 존재하며, 이를 Method라고 부른다.

HTTP REST Create → POST(생성) Read → GET(조회) Update → PUT(전체 수정) Delete → DELETE(삭제)

또한, REST API는 HTTP를 이용한 것이기 때문에 HTTP Method를 사용한다.

3) 자원의 형태 (JSON)

클라이언트가 HTTP Method를 통해서 데이터 조작을 요청하면, 서버가 적절한 응답을 보내게 된다.

이때 하나의 자원은 JSON, XML, TEXT 등 여러 형태로 표현된다.

보통은 JSON, XML을 통해 데이터를 주고 받는다.

3. REST API와 RESTFul

REST API는 REST 기반으로 서비스 API를 구현한 것을 의미한다.

1) REST API 설계 규칙

REST API를 올바르게 설계하기 위해서는 지켜야하는 몇가지 규칙이 있다.

URI는 동사보다는 명사를, 대문자보다는 소문자를 사용해야 한다. ② 행위를 포함하지 않는다.언더바(_) 대신 하이픈(-)을 사용한다. ④ 파일 확장자(.jgp 등)URI에 포함하지 않는다. ⑤ 마지막에 슬래시(/)를 포함하지 않는다. → 슬래시 구분자는 계층 관계를 나타낼때 사용하므로 맨 마지막에는 사용하지 않는 것이 좋다.

ex)

//행위를 포함하지 않는다. GET resource/delete/1 //X, uri에 delete 포함 DELETE resource/1 //O

2) RESTFul

RESTFul은 REST API를 제공하는 웹 서비스를 의미한다.

4. HTTP 응답 코드 의미

1) 성공

상태코드 의미
200 클라이언트 요청을 정상적으로 수행
201 클라이언트가 리소스 생성 요청, 성공적으로 생성됨(POST)

2) 실패

상태코드 의미
400 클라이언트 요청에서 문제가 발생했을 때
401 클라이언트가 인증되지 않은 상태에서 보호된 리소스를 요청했을 때
403 응답하고 싶지 않은 리소스를 클라이언트가 요청했을 때
405 클라이언트가 요청한 리소스에서 사용 불가능한 Method를 이용했을 때
상태코드 의미
301 리소스 URI가 변경되었을 때
상태코드 의미
500 서버에 문제가 있을 때

 

 

'iOS > 기술' 카테고리의 다른 글

코코아팟 출시하기  (2) 2021.09.28
MVVM, Reactive, RxSwift  (0) 2021.08.17
React Native 란?  (0) 2021.08.17

출처: https://blog.naver.com/dpszeagal33/222399097211

출처: https://blog.naver.com/inflearn/222341617669

탄생

React Native는 페이스북에서 2015년에 출시한 프레임워크입니다.

 

환경

iOS 앱과 안드로이드 앱을 모두 자바스크립트 환경에서 네이티브로 개발할 수 있는 환경입니다. 크로스 플랫폼 앱이지요.

때문에 node.js, iOS, 안드로이드를 위한 다양한 설정 과정이 필요합니다.

iOS 앱의 개발을 위해서는 OS X가 필수적입니다. 기술적으로 보자면 Android 앱의 개발은 플랫폼과는 별도로 독립적일 수 있지만 iOS 앱의 개발은 OS X 전용으로 개발이 되있습니다. 그래서 React Native로 앱을 개발하기 위해서는 맥 환경을 사용해야 합니다.

 

특징

첫번째, 자바스크립트 기반

자바스크립트 라이브러리의 한 종류인 리액트와 동일한 문법, 개념을 공유하고 있어요. 그래서 자바스크립트를 다룰 줄 아는 분이라면, 특히 리액트 라이브러리를 다룬 적이 있다면 쉽게 배울 수 있습니다. 페북, 인스타그램 앱의 일부를 리액트 네이티브로 제작하고 있어요.

 

두번째, 오픈소스

React Native는 오픈 소스로 커뮤니티가 활성화되어 있습니다. 모르는 정보가 있다면 블로그에서 정보를 찾아 볼수 있어서 이런 장점 덕분에 React Native는 크로스 플랫폼 개발의 한 축을 담당하고 있습니다.

'iOS > 기술' 카테고리의 다른 글

코코아팟 출시하기  (2) 2021.09.28
MVVM, Reactive, RxSwift  (0) 2021.08.17
REST API 란?  (0) 2021.08.17

+ Recent posts