Framework, Library
Apple 내외적으로 제공되는 다양한 Framework와 Library에 대해 공부한 내용을 정리합니다.
-
1️⃣ 이번 글에서 구현하고자 하는 기능은? 이번 글에서는 URL 링크를 저장하고, 해당 링크를 앱 안에서 웹 페이지로 띄울 때 사용한 모든 기능들에 대해서 정리해보겠다. 이번 프로젝트에서 앱 내 웹 콘텐츠를 표출시키는 방식으로 WKWebView를 사용했다. WKWebView란 Apple의 기본 프레임워크 WebKit를 기반으로 동작하는 뷰이며, 네이티브 앱과 웹 콘텐츠 사이의 상호작용을 도와주는 다양한 기능을 지원하는 화면이다. 대표적으로, 웹 뷰의 내비게이션(뒤로 가기, 앞으로 가기) 동작이나 새로고침, 페이지의 타이틀, URL 같은 기본적인 정보들을 받아올 수 있으며, 심지어는 웹 페이지의 로딩 상태나 스크롤 위치 같은 디테일한 부분도 사용할 수 있다. 💡 앱 사용에 있어 외부 URL 연결 방식에 ..
[WebKit] WKWebView를 사용해서 앱 사용 중, 웹으로 연결시켜보자1️⃣ 이번 글에서 구현하고자 하는 기능은? 이번 글에서는 URL 링크를 저장하고, 해당 링크를 앱 안에서 웹 페이지로 띄울 때 사용한 모든 기능들에 대해서 정리해보겠다. 이번 프로젝트에서 앱 내 웹 콘텐츠를 표출시키는 방식으로 WKWebView를 사용했다. WKWebView란 Apple의 기본 프레임워크 WebKit를 기반으로 동작하는 뷰이며, 네이티브 앱과 웹 콘텐츠 사이의 상호작용을 도와주는 다양한 기능을 지원하는 화면이다. 대표적으로, 웹 뷰의 내비게이션(뒤로 가기, 앞으로 가기) 동작이나 새로고침, 페이지의 타이틀, URL 같은 기본적인 정보들을 받아올 수 있으며, 심지어는 웹 페이지의 로딩 상태나 스크롤 위치 같은 디테일한 부분도 사용할 수 있다. 💡 앱 사용에 있어 외부 URL 연결 방식에 ..
2024.02.15 -
💡Then이란? Code Base로 iOS 개발을 할 때, 조금 더 UI 인스턴스를 직관적이고 편하게 만들 수 있도록 도와주는 라이브러리다. ✍🏻 Then 라이브러리 깃허브 살펴보기 클로저를 기반으로 사용한다. 특히, 단축인자 이름을 이용해서 길고긴 뷰 이름을 일일이 작성하지 않고, $0과 같이 간단하게 표현할 수 있다는 것이 인상적이다. 💡Then을 설치해보자! Podfile에 pod 'Then'을 작성해주기만 하면 된다. ✍🏻 Podfile 설치하는 방법을 모르겠다면? 💡그래서, 어떻게 Then을 사용하는데? UI 인스턴스를 선언해 주고, 그 뒤에 then이라는 키워드와 함께 클로저를 열어주기만 하면 되는 아주 간단한 방법이다. UI 인스턴스를 선언해주고, 그 안에 전달할 UI 객체와 특성을 지정해서..
[Library] Code Base에서 UI 인스턴스를 직관적으로 만들어보자, Then💡Then이란? Code Base로 iOS 개발을 할 때, 조금 더 UI 인스턴스를 직관적이고 편하게 만들 수 있도록 도와주는 라이브러리다. ✍🏻 Then 라이브러리 깃허브 살펴보기 클로저를 기반으로 사용한다. 특히, 단축인자 이름을 이용해서 길고긴 뷰 이름을 일일이 작성하지 않고, $0과 같이 간단하게 표현할 수 있다는 것이 인상적이다. 💡Then을 설치해보자! Podfile에 pod 'Then'을 작성해주기만 하면 된다. ✍🏻 Podfile 설치하는 방법을 모르겠다면? 💡그래서, 어떻게 Then을 사용하는데? UI 인스턴스를 선언해 주고, 그 뒤에 then이라는 키워드와 함께 클로저를 열어주기만 하면 되는 아주 간단한 방법이다. UI 인스턴스를 선언해주고, 그 안에 전달할 UI 객체와 특성을 지정해서..
2023.10.17 -
💡 CocoaPods (Podfile)을 설치해주는 과정을 간단하게 훑어보자! 1. sudo gem install cocoapods 명령어를 터미널에 입력한다. ✔️ CocoaPods (iOS 개발에서 외부 라이브러리를 쉽게 불러오게 해주는 대표적인 의존성 관리 도구)를 설치하는 명령어. ✔️ 터미널에 자물쇠🔒 모양이 나오면 맥북 비밀번호를 입력하면 되고, 지정해 둔 비번이 없으면 그냥 enter를 누르면 된다. ✔️ 비밀번호를 입력해도 아무것도 입력되지 않는 것처럼 보이는 게 정상이니, 그냥 비밀번호 상관하지 말고 입력하면 된다! ✔️ pod --version 명령어를 이용해서 이미 설치되어 있거나, 정상적으로 설치되었는지 확인해 줄 수 있다. 2. 터미널에서 프로젝트가 있는 폴더로 이동해서 pod i..
[CocoaPods] Podfile 설치 방법과 설치하면서 발생했던 Sandbox: rsync.samba deny(1) 에러 해결방법💡 CocoaPods (Podfile)을 설치해주는 과정을 간단하게 훑어보자! 1. sudo gem install cocoapods 명령어를 터미널에 입력한다. ✔️ CocoaPods (iOS 개발에서 외부 라이브러리를 쉽게 불러오게 해주는 대표적인 의존성 관리 도구)를 설치하는 명령어. ✔️ 터미널에 자물쇠🔒 모양이 나오면 맥북 비밀번호를 입력하면 되고, 지정해 둔 비번이 없으면 그냥 enter를 누르면 된다. ✔️ 비밀번호를 입력해도 아무것도 입력되지 않는 것처럼 보이는 게 정상이니, 그냥 비밀번호 상관하지 말고 입력하면 된다! ✔️ pod --version 명령어를 이용해서 이미 설치되어 있거나, 정상적으로 설치되었는지 확인해 줄 수 있다. 2. 터미널에서 프로젝트가 있는 폴더로 이동해서 pod i..
2023.10.15 -
내 블로그에서 올라오는 글의 비중을 보면 알겠지만, 현재는 iOS 개발을 공부하는 비중이 내 개발 공부의 8할 이상을 차지하고 있다. 지금 나는 릴리즈 프로젝트도 진행해 보고, 다양한 라이브러리와 문서들을 참고하고, RxSwift, 디자인 패턴, 아키텍처 등을 공부하면서 iOS 개발자가 되기 위한 지식을 조금씩 길러가는 중이다. 그럼에도 불구하고, 나는 항상 인공지능(AI), 머신러닝(ML), 딥러닝(DL) 분야에 대한 배움의 갈증을 느낀다. 우선 전역 후 복학을 하면, 학교에서는 소프트웨어융합학과 "데이터 사이언스 트랙" 커리큘럼을 따라가야 하기에, 지금 내가 주로 하고 있는 클라이언트 개발보다는 데이터 사이언스, 머신러닝 분야에 대한 공부가 자의든 타의든 더 주축이 돼야 한다는 이유가 크다. 하지만 ..
[CoreML] Apple도 AI 한다고 (1) - CoreML의 기본 개념을 배워보자내 블로그에서 올라오는 글의 비중을 보면 알겠지만, 현재는 iOS 개발을 공부하는 비중이 내 개발 공부의 8할 이상을 차지하고 있다. 지금 나는 릴리즈 프로젝트도 진행해 보고, 다양한 라이브러리와 문서들을 참고하고, RxSwift, 디자인 패턴, 아키텍처 등을 공부하면서 iOS 개발자가 되기 위한 지식을 조금씩 길러가는 중이다. 그럼에도 불구하고, 나는 항상 인공지능(AI), 머신러닝(ML), 딥러닝(DL) 분야에 대한 배움의 갈증을 느낀다. 우선 전역 후 복학을 하면, 학교에서는 소프트웨어융합학과 "데이터 사이언스 트랙" 커리큘럼을 따라가야 하기에, 지금 내가 주로 하고 있는 클라이언트 개발보다는 데이터 사이언스, 머신러닝 분야에 대한 공부가 자의든 타의든 더 주축이 돼야 한다는 이유가 크다. 하지만 ..
2023.04.14 -
본격 떡밥 회수 프로젝트(?) [Social Login] Access Token과 Refresh Token, 그리고 Auto Login까지 이번 나다 NADA 어플 릴리즈를 준비하면서 가장 많이 공부한 부분이 "로그인"과 관련된 부분일 거다. 처음 아요끼리 담당 기능, 파트를 나눌 때, 내가 로그인을 맡겠다고 (겁 없이) 지원했었는데... mini-min-dev.tistory.com 지난번 글에서 로그인 부분을 정리하면서, 토큰과 자동 로그인, UserDefaults까지 모든 내용을 다 공부했었지만, 유일하게 하나 다른 블로그 링크를 첨부해둔 채로 남겨둔 부분이 있었다. 그 부분은 바로 iOS에서 보안과 관련된 정보를 다루는 방법인 "Keychain" 내용 부분이었다. 첫 릴리즈 버전에서는 keychai..
[Social Login] 토큰 데이터 저장 공간을 Keychain으로 바꿔보자본격 떡밥 회수 프로젝트(?) [Social Login] Access Token과 Refresh Token, 그리고 Auto Login까지 이번 나다 NADA 어플 릴리즈를 준비하면서 가장 많이 공부한 부분이 "로그인"과 관련된 부분일 거다. 처음 아요끼리 담당 기능, 파트를 나눌 때, 내가 로그인을 맡겠다고 (겁 없이) 지원했었는데... mini-min-dev.tistory.com 지난번 글에서 로그인 부분을 정리하면서, 토큰과 자동 로그인, UserDefaults까지 모든 내용을 다 공부했었지만, 유일하게 하나 다른 블로그 링크를 첨부해둔 채로 남겨둔 부분이 있었다. 그 부분은 바로 iOS에서 보안과 관련된 정보를 다루는 방법인 "Keychain" 내용 부분이었다. 첫 릴리즈 버전에서는 keychai..
2022.01.16 -
서버 선배와 Moya 선배 처음 공부하기 너무 어려웠다. 하지만 어떻게 하겠노...무조건 성장하기 위해서... 공부해야지..... 오늘은 또 하나 헷갈리는 개념이었던 request-parameter와 request-query 내용을 각각 Moya 라이브러리에서 어떻게 사용하는지, 두 차이점은 어떻게 되는지에 대해서 정리해보도록 하겠다. (👇🏻Moya 라이브러리를 정리해둔 글은 아래에 있습니다 ^___^) [Library] Alamofire의 단점을 보완한 네트워킹 라이브러리, Moya 1️⃣ Moya? 보통 iOS에서 네트워킹을 구현할 때는 URLSession을 사용하게 된다. 그리고 그 URLSession을 이용한 네트워킹을 조금 더 간편하기 위해, 앞에서도 다룬 적이 있는 Alamofire 라이브러리..
[Library] Moya #2 - request-parameter, request-query 이해하기서버 선배와 Moya 선배 처음 공부하기 너무 어려웠다. 하지만 어떻게 하겠노...무조건 성장하기 위해서... 공부해야지..... 오늘은 또 하나 헷갈리는 개념이었던 request-parameter와 request-query 내용을 각각 Moya 라이브러리에서 어떻게 사용하는지, 두 차이점은 어떻게 되는지에 대해서 정리해보도록 하겠다. (👇🏻Moya 라이브러리를 정리해둔 글은 아래에 있습니다 ^___^) [Library] Alamofire의 단점을 보완한 네트워킹 라이브러리, Moya 1️⃣ Moya? 보통 iOS에서 네트워킹을 구현할 때는 URLSession을 사용하게 된다. 그리고 그 URLSession을 이용한 네트워킹을 조금 더 간편하기 위해, 앞에서도 다룬 적이 있는 Alamofire 라이브러리..
2022.01.12 -
이번 나다 NADA 어플 릴리즈를 준비하면서 가장 많이 공부한 부분이 "로그인"과 관련된 부분일 거다. 처음 아요끼리 담당 기능, 파트를 나눌 때, 내가 로그인을 맡겠다고 (겁 없이) 지원했었는데... 왜 그랬는지... 모르겠다... 사실 로그인이 이렇게 공부할 점이 많고 많은 이슈가 생길지는 몰랐기 때문ㅇ..... 아무튼 그래도 배운 점은 진짜 많았다. 사실, 서버에 '서'자도 모르는 나였는데, 내가 도-약할 수 있었던 두 가지 계기가 첫째는 라이브러리 Moya를 사용했을 때, 둘째는 소셜 로그인 API를 사용했을 때일 것이다. 아무튼, 오늘은 내가 피나게(?) 공부했었던 로그인에 대한 추가적인 내용들을 정리해보는 시간을 가져보도록 하겠다. (공부했던 두 가지 소셜 로그인 방법(카카오톡, 애플)은 아래..
[Social Login] Access Token과 Refresh Token, 그리고 Auto Login까지이번 나다 NADA 어플 릴리즈를 준비하면서 가장 많이 공부한 부분이 "로그인"과 관련된 부분일 거다. 처음 아요끼리 담당 기능, 파트를 나눌 때, 내가 로그인을 맡겠다고 (겁 없이) 지원했었는데... 왜 그랬는지... 모르겠다... 사실 로그인이 이렇게 공부할 점이 많고 많은 이슈가 생길지는 몰랐기 때문ㅇ..... 아무튼 그래도 배운 점은 진짜 많았다. 사실, 서버에 '서'자도 모르는 나였는데, 내가 도-약할 수 있었던 두 가지 계기가 첫째는 라이브러리 Moya를 사용했을 때, 둘째는 소셜 로그인 API를 사용했을 때일 것이다. 아무튼, 오늘은 내가 피나게(?) 공부했었던 로그인에 대한 추가적인 내용들을 정리해보는 시간을 가져보도록 하겠다. (공부했던 두 가지 소셜 로그인 방법(카카오톡, 애플)은 아래..
2022.01.05 -
아주 예전에 작성했던 "소셜 로그인" 시리즈, 오랜만에 그 2탄을 써보려고 한다. 오늘은 "Apple 로그인"에 대해서 알아보도록 하자. (👇🏻예전 카카오톡 소셜 로그인을 다뤘던 글은 아래에서 확인할 수 있습니다!👇🏻) [iOS] 소셜 로그인을 구현해보자! 1탄 - 카카오톡 로그인 오늘은 최신 어플이라면, 빠지지 않고 가장 기본적으로 들어가는 기능 "소셜 로그인"에 대해 시리즈로 글을 다루어보려 한다. 오늘은 그 첫 번째로, 카카오톡 간편 로그인에 대해 다뤄보겠다. Kak mini-min-dev.tistory.com 예전 카카오톡 로그인을 다뤘을 때는 "카카오 개발자 페이지"에 나와있는 공식 설명을 따랐는데, 오늘은 애플의 공식문서에 나와있는 설명을 기반으로 따라가 보려 한다. Apple Develope..
[Social Login] 소셜 로그인을 구현해보자! 2탄 - Apple 로그인아주 예전에 작성했던 "소셜 로그인" 시리즈, 오랜만에 그 2탄을 써보려고 한다. 오늘은 "Apple 로그인"에 대해서 알아보도록 하자. (👇🏻예전 카카오톡 소셜 로그인을 다뤘던 글은 아래에서 확인할 수 있습니다!👇🏻) [iOS] 소셜 로그인을 구현해보자! 1탄 - 카카오톡 로그인 오늘은 최신 어플이라면, 빠지지 않고 가장 기본적으로 들어가는 기능 "소셜 로그인"에 대해 시리즈로 글을 다루어보려 한다. 오늘은 그 첫 번째로, 카카오톡 간편 로그인에 대해 다뤄보겠다. Kak mini-min-dev.tistory.com 예전 카카오톡 로그인을 다뤘을 때는 "카카오 개발자 페이지"에 나와있는 공식 설명을 따랐는데, 오늘은 애플의 공식문서에 나와있는 설명을 기반으로 따라가 보려 한다. Apple Develope..
2021.12.27 -
1️⃣ Moya? 보통 iOS에서 네트워킹을 구현할 때는 URLSession을 사용하게 된다. 그리고 그 URLSession을 이용한 네트워킹을 조금 더 간편하기 위해, 앞에서도 다룬 적이 있는 Alamofire 라이브러리를 보편적으로 사용하곤 했다. 하지만, 이 Alamofire 라이브러리는 코드의 유지보수와 유닛 테스트(각 부분마다 정확하게 동작하는지 확인하는 절차 -> 모든 함수 단위단위마다 로그를 찍어볼 수 없으니)가 힘들다는 단점이 있었다. 그래서 등장한 것이 바로 이 Moya 라이브러리이다. Moya는 URLSession을 추상화한 Alamofire를, 다시 추상화한 라이브러리로 Network Layer를 템플릿 화해서 재사용성을 높이고, 개발자가 request, response에만 집중을 하..
[Library] Alamofire의 단점을 보완한 네트워킹 라이브러리, Moya1️⃣ Moya? 보통 iOS에서 네트워킹을 구현할 때는 URLSession을 사용하게 된다. 그리고 그 URLSession을 이용한 네트워킹을 조금 더 간편하기 위해, 앞에서도 다룬 적이 있는 Alamofire 라이브러리를 보편적으로 사용하곤 했다. 하지만, 이 Alamofire 라이브러리는 코드의 유지보수와 유닛 테스트(각 부분마다 정확하게 동작하는지 확인하는 절차 -> 모든 함수 단위단위마다 로그를 찍어볼 수 없으니)가 힘들다는 단점이 있었다. 그래서 등장한 것이 바로 이 Moya 라이브러리이다. Moya는 URLSession을 추상화한 Alamofire를, 다시 추상화한 라이브러리로 Network Layer를 템플릿 화해서 재사용성을 높이고, 개발자가 request, response에만 집중을 하..
2021.12.17 -
💡 SnapKit이란? iOS 개발에서 UI를 코드로 구현할 때 (AutoLayout을 잡을 때) 편리하게 도와주는 라이브러리이다. 스토리보드나 SwiftUI를 이미 경험해본 사람에게 있어, 코드 베이스로만 UI를 구성한다는 것은 매우 겁나는 일이다. 나도 처음에는 편한 스토리보드, xib 등이 있는데, 굳이 코드로 UI를 짜야하는 이유가 뭐가 있을까? 했는데, 개발을 계속 공부하다 보니 어쩔 수 없이 코드 베이스로 개발을 해야 하는 상황이 생기게 되더라. (협업, 유지 보수의 편리함, 속도 빠름, 파일 가벼움, conflict 발생 가능성이 적다 등의 장점 등등) 그렇다고 무작정 코드로 UI를 짜다보면, 라벨 하나를 넣더라도 코드의 길이가 엄청 길어지는 본인을 목격할 수 있었는데, 이 긴 코드를 조금이..
[Library] AutoLayout을 짧은 코드로 구현하려면, SnapKit💡 SnapKit이란? iOS 개발에서 UI를 코드로 구현할 때 (AutoLayout을 잡을 때) 편리하게 도와주는 라이브러리이다. 스토리보드나 SwiftUI를 이미 경험해본 사람에게 있어, 코드 베이스로만 UI를 구성한다는 것은 매우 겁나는 일이다. 나도 처음에는 편한 스토리보드, xib 등이 있는데, 굳이 코드로 UI를 짜야하는 이유가 뭐가 있을까? 했는데, 개발을 계속 공부하다 보니 어쩔 수 없이 코드 베이스로 개발을 해야 하는 상황이 생기게 되더라. (협업, 유지 보수의 편리함, 속도 빠름, 파일 가벼움, conflict 발생 가능성이 적다 등의 장점 등등) 그렇다고 무작정 코드로 UI를 짜다보면, 라벨 하나를 넣더라도 코드의 길이가 엄청 길어지는 본인을 목격할 수 있었는데, 이 긴 코드를 조금이..
2021.11.16 -
나다 릴리즈를 준비하면서, 현규 선배의 도움으로 SwiftLint라는 것을 처음 접해보았다. SwiftLint란 코딩 컨벤션을 자동으로 확인해주는 도구이다. 프로젝트에 SwiftLint를 적용시켜 코딩을 하면, 협업을 진행하더라도 모든 개발자가 일관된 코드를 작성할 수 있게 도와주게 된다. *어떤 규칙을 안지키면 Warning이 발생하고, 어떤 규칙을 안지키면 Error가 발생해 빌드 자체를 막는 형태로 컨벤션을 지키도록 도와준다 물론 스스로 공부를 할 때, 일관된 코딩 컨벤션을 사용할 때도 마찬가지이다. 예전에 코딩 컨벤션에 대해 다룬 글도 있으니, 궁금하면 읽고 오자. [iOS] 내가 보려고 정리하는 Coding Convention (feat. Style Share) 개발자로서 협업을 하게 되면, 같..
[Library] 코딩 컨벤션을 자동으로 도와주는, SwiftLint 적용방법나다 릴리즈를 준비하면서, 현규 선배의 도움으로 SwiftLint라는 것을 처음 접해보았다. SwiftLint란 코딩 컨벤션을 자동으로 확인해주는 도구이다. 프로젝트에 SwiftLint를 적용시켜 코딩을 하면, 협업을 진행하더라도 모든 개발자가 일관된 코드를 작성할 수 있게 도와주게 된다. *어떤 규칙을 안지키면 Warning이 발생하고, 어떤 규칙을 안지키면 Error가 발생해 빌드 자체를 막는 형태로 컨벤션을 지키도록 도와준다 물론 스스로 공부를 할 때, 일관된 코딩 컨벤션을 사용할 때도 마찬가지이다. 예전에 코딩 컨벤션에 대해 다룬 글도 있으니, 궁금하면 읽고 오자. [iOS] 내가 보려고 정리하는 Coding Convention (feat. Style Share) 개발자로서 협업을 하게 되면, 같..
2021.10.02 -
오늘은 최신 어플이라면, 빠지지 않고 가장 기본적으로 들어가는 기능 "소셜 로그인"에 대해 시리즈로 글을 다루어보려 한다. 오늘은 그 첫 번째로, 카카오톡 간편 로그인에 대해 다뤄보겠다. Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com 1️⃣ 카카오 개발자 웹사이트에서 해줘야 할 것들 카카오 소셜 로그인을 사용하려면, 카카오 개발자 웹사이트에 애플리케이션을 등록해줘야만 한다. 앱 아이콘, 앱 이름, 사업자명을 정확하게 작성하고 저장을 눌러 애플리케이션을 추가해주자. 이때 추가한 아이콘, 이름, 사업자명은 사용자에게 표출될 때 아래 오른쪽 사진과 ..
[Social Login] 소셜 로그인을 구현해보자! 1탄 - 카카오톡 로그인오늘은 최신 어플이라면, 빠지지 않고 가장 기본적으로 들어가는 기능 "소셜 로그인"에 대해 시리즈로 글을 다루어보려 한다. 오늘은 그 첫 번째로, 카카오톡 간편 로그인에 대해 다뤄보겠다. Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com 1️⃣ 카카오 개발자 웹사이트에서 해줘야 할 것들 카카오 소셜 로그인을 사용하려면, 카카오 개발자 웹사이트에 애플리케이션을 등록해줘야만 한다. 앱 아이콘, 앱 이름, 사업자명을 정확하게 작성하고 저장을 눌러 애플리케이션을 추가해주자. 이때 추가한 아이콘, 이름, 사업자명은 사용자에게 표출될 때 아래 오른쪽 사진과 ..
2021.09.22