반응형

Programming 183

[iOS] Clean Architecture, 내 생각

Clean Architecture 아래 글의 원문은 엉클밥의 블로그입니다. 엉클밥 (로버트 C 마틴) - https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html 도움되는 Reference 갓제드 - https://zeddios.tistory.com/1065 곰튀김 - https://www.youtube.com/watch?v=jVyA5DV6r8w 클린 아키텍처에 대해 정리해보자 이 글은 유명한 로버트 C 마틴 (엉클밥)이 제안한 아키텍처이다. 엉클밥은 그동한 개발하면서 많은 아키텍처를 보았는데 이들 세부사항은 다르지만 서로 유사성을 가지고 있다. 아키텍처들의 동일한 목표는 관심사 분리이다. 이를 위해 소프트웨어를 계층(lay..

Programming/iOS 2021.10.09

[iOS] MVVM Pattern

MVVM Pattern MVVM M : Model → Data V : View (ViewController) → Presentation Logic 위치 VM : ViewModel → Business Logic 위치, UI 관련 코드는 존재하지 않음 (→ import UIKit ❌ ) 조금 풀어서 설명해보면 뷰 모델은 모델을 알지만 모델은 뷰 모델을 알지 못한다. 뷰는 뷰 모델을 알지만 뷰 모델은 뷰를 알지 못한다. → 결국, UI와 Presentation Logic, Business Logic을 분리하고자 하는 게 MVVM 아키텍처라 할 수 있다. 그래서 MVVM Pattern으로 작성된 프로그램은 명확한 테스트가 가능하다. 실제로 프로젝트에 적용해보니.. 최근 회사에서 프로젝트를 리팩토링할 수 있는 기..

Programming/iOS 2021.10.08

[iOS] MVC Pattern

MVC iOS의 MVC는 왜 문제가 되는가? 먼저, 일반적인 MVC 패턴을 살펴보자. M : Model V : View C : Controller 사용자가 화면을 Controller를 조작하면 Controller는 Model을 통해서 데이터를 가져오고 그 정보를 바탕으로 시각적인 표현을 담당하는 View를 제어해서 사용자에게 전달하게 된다. UI와 Business Logic을 분리할 수 있는 패턴이기 때문에 잘 사용한 MVC 패턴은 쉽게 변경할 수 있는 프로젝트가 된다. 그럼 Apple의 MVC를 한번 보자. 아래 링크로 이동하면 그림이 하나 나오는 데 위와 비슷한 그림이다. 정말 iOS에서 그림과 같은 개발이 가능할까? Model-View-Controller 현실 Apple's MVC (Mass..

Programming/iOS 2021.10.07

[iOS/Swift] didFinishLaunchingWithOptions 알아보기, 푸시로 앱 실행할 때 처리하기

didFinishLaunchingWithOptions 푸시를 클릭한 것과 같이 앱이 시작한 이유를 찾아 원하는 동작대로 하려면 어떻게 해야할까? 오늘 푸시 관련 기능을 추가하다가 앱이 완전 종료된 상태(메모리에도 없음)에서 푸시를 클릭하여 앱을 실행한 경우 원하는 페이지로 이동하지 않는 것을 확인하였다. 푸시 클릭으로 앱이 실행되었을 때를 기준으로 앱이 시작될 때 원하는 동작을 하려면 어떻게 해야하는지 확인해보고자한다. 1. didFinishLaunchingWithOptions https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1622921-application 프로젝트 생성 시 기본으로 들어가있는 AppDelegate 클래스에 ..

Programming/iOS 2021.10.06

[따라하기/iOS] App Switcher - 앱 화면 가리기

App Switcher - 앱 화면 가리기 iOS에서는 홈바 스와이프 또는 홈 버튼 두번을 클릭해 App Switcher를 사용할 수 있다. 이때 카카오톡, 은행앱 화면이 Blur나 다른 화면으로 가려지는데 이 기능을 어떻게 만들 수 있는지 알아보기로 한다. App Switcher(앱 전환하기)는 뭘까? App Switcher 사용법 https://support.apple.com/ko-kr/HT202070! App Switcher는 다른 앱으로 빠르게 전환할 수 있도록 하는 기능이다. 아마 대부분 이름은 몰라도 아래 사진을 보면 어떤 기능인지 알고 있을 것이다. 어떻게 하면 화면을 가릴 수 있을까? App switcher 상태가 감지되면 화면을 바꾼다. 앱이 실행되면 다시 화면을 바꾼다. App Swit..

Programming/iOS 2021.10.02

SwiftGen 라이브러리 간단 설명 & 사용법

SwiftGen SwiftGen/SwiftGen 라이브러리 링크 SwiftGen 간단 설명 SwiftGen 라이브러리는 프로젝트의 리소스를 자동으로 Swift 코드로 생성해주는 도구이다. (ex. 이미지, 다국어 문구, 색상 등의 리소스, 파일 확장자도 다양하게 지원함) 이 라이브러리를 사용하면 리소스를 편하게 사용할 수 있고 리소스의 변경이 일어났을 때 (없는 리소스를 참조한다던가) 에러를 빠르게 찾을 수 있다. Xcode에서 이미지나 색상 등을 사용하려면 이름을 string 으로 사용하는데 오타가 나도 에러가 나지않아 틀린 것을 찾기 어렵다. 그런데 SwiftGen으로 생성된 코드로 리소스를 사용하면 위와 같은 상황을 방지할 수 있다. 설치법 SwiftGen의 설치법은 여러가지가 있다. ZIP, Co..

Programming/iOS 2021.07.12

[Flutter] flutter run하는데 갑자기 에러날 때

시초는 플러터 프로젝트 리팩토링을 하면서 폴더 구조를 조금씩 바꾸다가 한번에 바꿨었는데.. 그 이후로부터 빌드가 실패하기 시작했다. 커밋 돌아가도 안되고.. 이상했는데 막 해보다가 겨우겨우 해결했다.. 추가로 카카오 sdk에서도 오류가 나서 버전을 올려 설치했다. 더보기 Launching lib/main.dart on iPhone 12 Pro Max in debug mode... Running pod install... 1.1s CocoaPods' output: ↳ Preparing Analyzing dependencies Inspecting targets to integrate Using `ARCHS` setting to build architectures of target `Pods-Runner`: ..

Programming/Flutter 2021.02.11

Firebase hosting with Github actions

사이드 프로젝트에 들어가는 개인정보 처리 방침 페이지를 firebase hosting을 이용해서 만들었었습니다. firebase hosting은 firebase에서 무료로 제공하는 호스팅 기능입니다. 사용방법이 꽤 쉽기 때문에 어렵지 않게 사용할 수 있는데, 사이드 프로젝트를 같이 하는 개발자에게 배포하는 방법을 알려줘야 하니 귀찮은 마음이 생겨... github actions를 적용해보기로 했습니다. firebase 공식문서 firebase.google.com/docs/hosting/github-integration GitHub 풀 요청을 통해 라이브 및 미리보기 채널에 배포 | Firebase GitHub 작업을 통해 Firebase 호스팅에 배포를 통합 할 수 있습니다. 이 GitHub 작업이 수행..

Programming/기타 2021.01.23

[iOS 14] (내가 찾은) iOS 14 대응 할 거리들

(내가 찾은) iOS 14 대응 할 거리들 매년 돌아오는 OS 대응은.. 정말 지칩니다. Android는 변경점들을 친절히 모아주는 반면 애플은 릴리즈 노트 정도? 친절 갑 Android (매우 자세함)(https://developer.android.com/about/versions/10/highlights) iOS는 이런 내용들을 제공해줍니다. 꽤 자세하긴 하네요..흠흠;; iOS & iPadOS 14 Release Notes iOS SDK의 새로운 기능 안드로이드는 안드로이드요, iOS는 iOS로다. (https://developer.apple.com/forums/thread/654188) 제가 찾은 iOS 14 대응거리를 나열해봅니다. 1. 위치 권한 획득 API Deprecated CLLocati..

Programming/iOS 2020.12.22

[iOS 14] AppTrackingTransparency framework 이슈 처리하기

iOS 14 - AppTrackingTransparency framework 이슈 처리하기 너무 빡쳐서 적는 글 공식문서 - 사용자 개인정보 및 데이터 사용 - App Store - Apple Developer iOS 14 등등 부터 AppTrackingTransparency 프레임워크(ATT)를 통해 사용자의 허가를 받아야만 사용자를 추적하거나 사용자 기기의 광고 식별자에 접근할 수 있게 정책이 추가되었다. 그래서 아래와 같은 상황이라면 허가를 받아야하는데,, 타사 소유의 앱 및 웹사이트에서 수집한 사용자 데이터에 기반하여 앱에 맞춤형 광고를 표시하는 경우. 데이터 브로커와 기기 위치 데이터 또는 이메일 목록을 공유하는 경우. 이메일, 광고 ID 또는 기타 ID 목록을 타사 광고 네트워크와 공유하고 해..

Programming/iOS 2020.09.26
728x90
반응형