iOS
-
ReactorKit으로 랜덤 통신 구현하기iOS 2021. 7. 10. 09:30
안녕하세요. 그린입니다🟢 이번 포스팅에서는 ReactorKit으로 랜덤한 통신을 구현해보겠습니다🧑🏻💻 우선 간략한 기능을 설명드리겠습니다. ReactorKit을 이용하여 리액터를 다룰 수 있는 아주 간단한 예제로 통신 시 GET에 ID 인덱스를 넘겨 통신할때 해당 인덱스를 랜덤하게 뽑고 통신 및 파싱한 후 ID와 타이틀을 UI에 3초마다 자동 갱신되도록 뷰를 업데이트 하는 기능을 가집니다🧑🏻💻 여기 포스팅에서는 필수 파일에 대한 구현들만 간단히 소개하고 아래 제 Git 레포 주소를 남겨두겠습니다! 더 참고하실 분들을 Git을 참고해주세요👍🏻 1. Model 1) JSON 구조체 - 통신 후 JSON 데이터를 파싱할 구조체를 생성합니다. import Foundation struct RandomInfo:..
-
Run LoopiOS 2021. 6. 1. 19:17
안녕하십니까. 그린입니다🟢이번 포스팅에서는 Run Loop(런루프)에 대해 학습해보겠습니다🧑🏻💻 런루프.. 어디서 많이 보고 런루프의 이벤트 처리 그림도 봤었는데 막상 생각해보니 제대로 이해하고 있지 않더라구요.그래서 이번 기회에 한번 파해쳐보겠습니다!Run Loop : 작업 스케쥴링과 전달된 이벤트를 처리하는 이벤트 처리 루프 : 런루프는 유저가 이벤트를 일으키고 그 이벤트들을 처리하는 프로세스 : 대표적으로 UIApplication이 메인 런루프를 뷰의 이벤트 및 업데이트를 처리해줄 때 활용 : 메인 런루프는 뷰와 관련 있기때문에 뷰하면 어디다..!? 메인 스레드에서 동작 : 런루프의 목적은 스레드에 작업이 있으면 하게하고 없으면 쉬도록 하는것에서 나옴 아래는 메인 스레드의 런루프 과정 동작..
-
CI / CDiOS 2021. 4. 29. 16:50
안녕하세요. 그린입니다🟢 이번 포스팅에서는 CI / CD에 대해 간략하게 학습해보겠습니다🧑🏻💻 CI - Continuous Integration (지속적 통합) - 빌드하고 테스트 자동화하는것 까지 의미 (최소한 테스트가 가능해야함) - 정기적 빌드 / 테스트 되어 팀 레파지토리에 통합하는 것을 말함 (앱의 변경사항) - 팀의 개발자들이 형상관리 툴로 공유하여 사용하는 환경이 되어야함 (깃헙 등) - Jenkins 같은 CI tool에 소스코드 변경을 보내고 처리 (빌드, 테스트, 머지를 진행하고 완료 결과를 알림) CD - Continuous Delivery / Deployment (배포 자동화) - CD가 되기 위해 항상 CI가 선행되어야함 - SW가 신뢰 가능한 수준에서 배포될 수 있도록 지속 관..
-
Machine LearningiOS 2021. 4. 20. 19:26
안녕하세요. 그린입니다🟢 이번 포스팅에서는 머신러닝에 대해 학습해보고 iOS 환경에서 머신러닝을 적용해보도록 하겠습니다🧑🏻💻 머신러닝 - 인공지능(AI)의 일종 분야로 초기에는 조건문을 통해 규칙을 정하고 인공지능을 구현하였는데 빠지는 조건이나 한계가 있어 기기 스스로 사례와 경험을 통해 학습하도록 한것을 머신러닝🤖 - 머신러닝 모델 생성하는 단계: training - 머신러닝 모델 사용해서 응답 받는 단계: prediction CoreML - 앱에 머신러닝(CoreML) 모델을 통합하는 애플의 프레임워크 - 앱은 Core ML API / 사용자 데이터를 가지고 기기에서 학습하고 예측하고 조정함 - 모델은 사진분류 / 픽셀에서 개체 감지 등의 모델 훈련 (코드 작성이 불가능하거나 비현실적인 작업 수행)..
-
Core AnimationiOS 2021. 4. 1. 18:44
안녕하세요. 그린입니다🟢 이번 포스팅에서는 저번 Core Graphics에 이어 Core Animation에 대해 학습하겠습니다🧑🏻💻 Core Animation? : 시각적 요소에 대해 그래픽 랜더링 및 구성을 통해 애니메이션을 만드는 프레임워크 : 시작 및 끝 포인트의 매개변수를 구성하고 애니메이션을 구현하면 Task가 자동으로 일을 수행함! : 드로잉 작업을 그래픽 하드웨어로 전달하여 레이어 객체가 조작할 수 있도록 렌더링 작업을 가속화해 앱 속도 및 품질의 다운없이 높은 프레임과 자연스러운 애니메이션을 보여줍니다👏 -> UIKit와 AppKit와 밀접한 관계!! : 드로잉 시스템 자체가 아닌 앱의 콘텐츠를 Layer를 가지고 관리한다는 점에서 코어 그래픽스와의 차이🌟 : 코어 애니메이션은 뷰가 아..
-
Homebrew & Vapor ToolboxiOS 2021. 3. 30. 14:30
안녕하세요. 그린입니다🟢 이번 포스팅에서는 Homebrew와 Vapor Toolbox에 대해 학습해보겠습니다👏 Homebrew? : 홈브루(Homebrew)는 오픈소스 소프트웨어 패키지 관리 시스템의 일종으로 macOS의 소프트웨어 설치를 지원해준다. 즉, macOS용 패키지 관리자로 소프트웨어의 쉬운 설치와 업데이트 및 삭제 등을 관리해준다. Homebrew 설치 및 패키지 관리 1) Xcode Command Line Tool 설치 $ xcode-select --install 2) Homebrew 설치 $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" : 터미널에 해당 커맨..
-
Core GraphicsiOS 2021. 3. 29. 16:41
안녕하세요. 그린입니다🟢 오늘 포스팅은 Core Graphics(코어 그래픽스)에 대해 알아보겠습니다🤓 Core Graphics란? : Quarts(쿼츠)라는 그래픽 라이브러리 안에 들어있는 기술을 활용하여 2D 렌더링, 수행 경로 기반 드로잉, 안티 얼리어싱 렌더링, 그라디언트, 이미지, 색상, PDF 문서 등등의 처리를 해주는 라이브러리!! : 코어 그래픽스 프레임 워크는 쿼츠 드로잉 엔진 기반으로한 2D 작업 (CG가 앞에 붙은것들..!) -> 2차원 그래픽을 그릴 수 있는 그래픽 라이브러리 Quarts? : 코어 그래픽스 + 코어 애니메이션으로 구성 (하나의 라이브러리가 아님) drawRect : 그리기를 해줌 점/좌표/픽셀 : CGFloat 형태로 왼쪽 상단 0,0 부터 위치를 나타내줌 CGSi..
-
LocalizationiOS 2021. 3. 25. 16:57
안녕하세요. 그린입니다! 이번 포스팅에서는 Localization, 지역화에 대해 알아보겠습니다.😃 지역화란? : 지역화는 현지화한다는 뜻을 가졌습니다. 즉, 해당 언어와 나라 지역에 맞게 앱을 설정해주는걸 뜻합니다. ++ 국제화(internationalization)를 I18N or i18n으로, 지역화(localization)를 L10N이나 l10n으로 표기합니다! 지역화의 전제조건 : 해당 앱이 지역화가 되려면 여러 국가에 배포되어 국제화 되어있는 앱이라는 조건이 있어야됩니다. 해당 앱이 한국에서만 사용되는 앱이라면 지역화가 의미 없을겁니다. 지역화 가능한 요소 : RTL, LTR (문화권에 따른 읽기/쓰기 방식), 언어, 시간, 날짜, 주소, 화폐단위 및 통화, 이미지 등등... 지역화와 접근성의..