iOS (53) 썸네일형 리스트형 [iOS] Fatslane + Github Actions로 CI/CD 파이프라인 구축하기 (2편 - Github Actions 살펴보기) [iOS] Fastlane + Github Actions로 CI/CD 파이프라인 구축하기 (1편 - CI/CD란 무엇일까?) Github Actions란? Github Actions는 Build, test, deploy 등의 종합적인 Workflow를 자동화할 수 있는 CI/CD 플랫폼이다. 코드 리뷰, 브랜치 관리, 이슈 우선순위 관리 등의 다양한 WorkFlow에 적용할 수 있다고 한다. 공식 문서 링크로 이동하면 Github Actions에 대한 전반적인 내용을 확인할 수 있다. Github Actions는 Events와 Workflow를 중심으로 자동화가 이루어지는 것이 가장 큰 특징이다. 사용자가 미리 정의한 Workflow는 특정 Github Events들이 발생하는 것을 감지하고 실행될 수 .. [iOS] Fastlane + Github Actions로 CI/CD 파이프라인 구축하기 (1편 - CI/CD란 무엇일까?) CI/CD란? Continuous Integration / Continuous Delivery 지속적 통합, 빌드, 테스트 / 지속적 배포 개발자들이 코드를 짜고 테스트를 작성한 코드를 깃허브 Repository에 Push한다. 그러면 팀원들에게 그 내용이 공유가 된다. 여기서 CI/CD 서비스가 역할을 한다. CI/CD 서비스는 개발자가 미리 해둔 설정에 따라 빌드나 테스트를 자동으로 실행한다. 빌드가 성공적으로 되는 것이 확인이 되면, 심사 요청 또한 자동으로 진행한다. 만약 빌드나 테스트가 실패하면, 개발자들에게 어디가 실패했는지 메일이나 슬랙으로 알리고, 이를 인지한 개발자들은 문제가 있는 코드나 테스트를 수정할 수 있다. CI/CD 서비스는 위와 같은 과정을 반복하기 때문에, 새 버전의 소프트웨.. [iOS] Naver Maps API를 이용하여 지도 앱 제작하기 (1편 - Naver Maps API의 특징 및 프로젝트에 import하기) 지도 앱 개발을 위한 Naver Maps API iOS 앱 개발에서 사용할 수 있는 지도는 애플 기본 제공인 MapKit과, 외부 라이브러리인 Kakao API, Naver Maps API 등이 있다. MapKit은 구글 지도를 이용하고, Kakao는 다음 지도를 이용하며, Naver Maps API는 네이버 지도를 이용한다. 각각의 프레임워크, 라이브러리마다 장단점이 있지만 국내 iOS 지도 앱에서 가장 많이 눈에 띄는 API는 Naver Maps API이다. Naver Maps API는 국내 지도이기 때문에 지도 정보가 자세하고 정확하며, 개발자 문서가 swift 및 한글로 작성되어 있어 사용하기 쉬우며 사용자들에게 친숙한 UI를 가지고 있다는 장점이 있다. 우선 Naver Maps API의 대략적인.. [iOS] iOS에서 사용할 수 있는 로컬 Database (1편 - SQLite, CoreData, Realm 비교하기) iOS에서 사용할 수 있는 로컬 DB DB(Database)란 데이터들을 저장하고 있는 공간을 말하고, DBMS란 이러한 DB를 손쉽게 관리할 수 있도록 도와주는 도구이다. 대표적으로 MariaDB, MySQL 등이 있다. 그리고 RDBMS는 Relational Database Management System으로, 데이터를 테이블 단위로 관리하는 관계형 데이터베이스 관리 도구를 뜻한다. 마찬가지로 RDB(관계형 데이터베이스)를 관리하는 도구라고 생각하면 된다. 그리고 로컬 DB란 특정 어플리케이션 내부에 데이터를 저장하는 공간을 말한다. 당연히 iOS에도 이러한 로컬 DB를 위한 프레임워크가 준비되어 있다. iOS에서 Application 개발에서 사용할 수 있는 로컬 DB는 크게 3가지로 나뉜다. SQ.. [iOS / FireBase] Push Notification 구현하기 (2편 - FCM을 이용한 푸시알림 구현) [iOS] Push Notification 구현하기 (1편 - Remote Notification과 APNs의 개념) 저번 글에서는 Remote Notification 기능을 구현하기 위한 용어와 APNs의 역할에 대해서 다루었다. 이번 글에서는 Provider Server를 FireBase Cloud Messaging 기능으로 대체하여 Push Notification을 실제로 구현해볼 것이다. FireBase Cloud Messaging(이하 FCM)을 이용하는 가장 큰 이유는 콘솔을 통해서 보낼 메시지를 손쉽게 조작 가능하고, 원래는 자체 Server에서 해야할 일을 간편하게 처리해준다는 점에 있다. 위의 그림에서 볼 수 있듯이 비개발자도 콘솔을 통해 보낼 메시지를 관리하고, 스케줄링 할 수 있으며 .. [iOS / Firebase] Push Notification 구현하기 (1편 - Remote Notification과 APNs의 개념) [iOS / FireBase] Push Notification 구현하기 (2편 - FCM을 이용한 푸시알림 구현) Remote Notification Remote notifications는 Push notifications라고도 하며, 앱이 실행중이지 않을 때에도 작은 양의 데이터를 특정 디바이스에 보내는 기능을 말한다. Remote Notification이 필요한 이유 애플에서 제공하는 Notifcation은 Local Notification과 Remote Notification으로 나뉘는데, Local Notification의 경우에는 정해진 시간, 정해진 위치, 정해진 시간간격, 고정된 알림만을 제공한다는 한계가 있다. 불특정한 시간(mobile team이 원하는 시간), 불특정 인원(특정 대상에게.. [iOS / Firebase] FireBase Remote config과 A/B Test (1편 - 개념 알아보기) FireBase Remote Config이란? Firebase Remote Config은 앱 업데이트 없이 Cloud에 저장된 정보를 통해 앱의 동작과 모양을 변경할 수 있는 서비스이다. 일반적으로 iOS 앱을 업데이트하고, 새로운 버전이 유저에게 반영되기까지 24~48시간 정도가 소요된다. 이는 즉각적인 공지사항이나 업데이트가 필요할 때 치명적으로 작용할 수 있고, 유저의 요청사항이 발생했을 때 빠른 대응이 불가능하게 만든다. 따라서 이러한 점을 보완하기 위해서 Firebase Remote Config을 이용하여 실시간 공지사항을 띄우거나 변경사항을 반영할 수 있다. Firebase Remote Config는 기본적으로 클라우드 기반 key-value 저장소이다. 여러 parameter를 설정해 놓은 .. [Swift] Local Notification을 이용하여 유저에게 알림 보내기 Local Notifcation이란 무엇일까? Local Notifcation(이하 로컬 알림)은 앱 내부에서 생성한 특정 메시지를 전달 유저에게 전달하는 알림이며, 사용자의 관심을 끄는 방법 중의 하나이다. 알림이 도착하면 App Icon의 뱃지에 특정 문자열을 표기할 수 있으며, 이러한 알림들을 알림 센터에 남길 수 있다. 로컬 알림의 가장 큰 특징은 정해진 시점, 정해진 위치, 정해진 시간 간격에 맞게 미리 알림을 Custom해 두고, 그 상황이 실제로 일어나면 알림이 유저에게 전달된다는 것이다. 따라서 시점이 언제가 될지 알 수 없고, 내용을 미리 작성해 둘 수 없는 경우에는 APNs(애플 푸시 알림 서비스)와 같은 Remote Notifcation을 이용해야 한다. 본격적으로 유저에게 알림의 권.. [Swift] Alamofire를 Moya처럼 사용해보자! By Router Pattern (4편 - EventLogger로 통신 결과 확인하기) [Swift] Alamofire를 Moya처럼 사용해보자! By Router Pattern (1편 - Foundation Setting) [Swift] Alamofire를 Moya처럼 사용해보자! By Router Pattern (2편 - Services, Routers 구현) [Swift] Alamofire를 Moya처럼 사용해보자! By Router Pattern (3편 - body, queryBody, requestPlain, Multipart 구현) 3편까지는 다양한 request 타입이나 task의 종류에 따른 대응을 하는 과정이었습니다. 이번 편에서는 개발 과정에서 Network 통신의 상태를 편하게 확인할 수 있도록 하는 EventLogger를 제작해 보겠습니다. EventMonitor 프로.. [Swift] Alamofire를 Moya처럼 사용해보자! By Router Pattern (3편 - body, queryBody, requestPlain, Multipart 구현) [Swift] Alamofire를 Moya처럼 사용해보자! By Router Pattern (1편 - Foundation Setting) [Swift] Alamofire를 Moya처럼 사용해보자! By Router Pattern (2편 - Services, Routers 구현) 지난 2편까지는 Alamofire를 Moya처럼 사용하기 위한 Foundation을 설계하고, VC에서 Service에 존재하는 싱글턴 객체를 이용하여 Post 통신 메서드를 직접 호출까지 해보았습니다. 이번 편에서는 다양한 request 타입 또는 메서드에 대응하기 위해 코드를 조금 수정해 보겠습니다. RequestParams 열거형 Refactoring HttpBody, Query 등등 다양한 리퀘스트 타입에 대응하기 위해 열.. 이전 1 2 3 4 5 6 다음