전체 글 167

[iOS] addTarget, @objc, #selector

개요 모바일 개발을 하다보면 버튼이 들어가는 뷰 작업을 굉장히 많이 하게 됩니다. 버튼을 눌렀을 때의 event 처리도 당연히 이어지는 작업 입니다. 버튼에 대한 event 처리는 크게 1. RxSwift의 subscribe 사용 2.@objc function 생성 후 addTarget으로 연결 이 두 가지 방법을 많이 사용하는데요. RxSwift에 대한 내용은 추후에 하나하나 다뤄보는것으로 하고, 오늘은 주로 간단한 event 처리에 주로 사용하는 (사실 읽기 더 편해서...) 2번 방법에서 사용하는 개념들에 대해 알아보겠습니다. let btnConfirm = UIButton() self.addSubview(btnConfirm) btnConfirm.then { $0.addTarget(self, acti..

iOS/개념 2021.02.07

[iOS] App States

App에는 5가지 App State가 존재합니다. App의 State가 변할 때 UIKit은 delegate 를 통해 개발자에게 이를 통지해줍니다. iOS 13 이상: UISceneDelegate가 scene-base app에서의 state 변화 통지 iOS 12 이하: UIApplicationDelegate 가 통지 Not Running 앱이 launch 되지 않은 상태를 말합니다. Foreground - InActive Foreground에서 running 되고 있지만, 사용자에게 Event는 수신하지 않는 상태를 말합니다. App이 inActive가 되는 시나리오는? 사용자의 입력을 App에서 받을 수 없는 상태. 전화, SMS 메세지, 시스템 메세지(배터리), 알림 등이 떳을 때 잠금 상태인 경우..

iOS/개념 2021.01.24

[iOS][업뎃중] iOS 주요 개념 정리

개요 회사에서는 프로젝트에 투입되어 이리저리 개발만 바쁘게 하게되는데요.. 그래서 블로그에는 좀 더 이론적인 내용들을 주로 기록해놔야겠다는 생각이 들었습니다. 앞으로 따로 글을 써야될 내용들은 링크로 달아두고, 간단한 답안은 여기 기록하면서 계속 업데이트해나갈 예정입니다. 1. App Id / Bundle Id App Id 하나의 developer Team에서 개발한 하나 혹은 다수의 App 들을 식별하기 위한 문자열. Team ID(애플에 의해 제공) + Bundle ID(개발자에 의해 제공) 이 합쳐진 문자열로 되어있으며, 하나의 개발 팀에서의 앱들을 구분짓기 위해 사용된다. Bundle Id 각 App 마다 가진 고유의 식별자. development process 동안 개발자는 app을 식별하는 많..

iOS/개념 2021.01.24

[iOS] Frame 과 Bounds의 차이

개요 UI 코드를 짜면서 어쩔땐 frame... 어쩔땐 bounds.. 기계적인 코딩을 피하고자 짚고 넘어갑니다. 앞서 알고있어야하는건 iOS의 좌표계의 기본은 top, left 입니다. 이 포스팅을 참고했습니다. suragch.medium.com/frame-vs-bounds-in-ios-107990ad53ee Frame vs Bounds in iOS It all depends on your perspective suragch.medium.com Frame 상위 view의 좌표계를 기준으로한 view의 location, size 뷰를 부모안에 위치시킬 때 사용합니다. 액자 속의 사진을 상상합시다. (picture frame on a wall) 유저는 액자(Parent view)의 어느곳에나 사진(view..

iOS/개념 2021.01.04

[Swift] lazy 키워드

개요 메모리 관리에 대해 생각을 하다보니 C++에 lazy 키워드라는게 있었던거 같은데..생각이 들며 Swift에도 있겠지 하고 찾아보았습니다. 출처: abhimuralidharan.medium.com/lazy-var-in-ios-swift-96c75cb8a13a lazy var in ios swift This article explains the working of lazy var in swift.You must have some knowledge in closures. abhimuralidharan.medium.com iOS는 App의 사용량이 너무 높아지면 앱을 죽이기 때문에, 개발자는 처음부터 메모리 관리를 신경쓰며 코드를 짜는게 매우 중요합니다. 따라서 개발자는 실제로 필요한 경우가 아니라면, ..

iOS/Swift 2020.12.20

[Swift] weak, unowned, Retain cycle 톺아보기

개요 코드를 작성하다보면 이젠 정말 무의식적으로 클로저안에 [weak self] , [unowned self] 를 사용하는데요. 처음 이 키워드들에 대해 이해했을 때 메모리 사이클에서 순환 참조가..메모리릭이...하면서 대충 이해하고 넘어갔던적이 있어 이 기회에 제대로 정리를 해보려 합니다. 마침 좋은 글이 영문글이 있어 그대로 번역하면서 이해하도록 하겠습니다! 출처: www.thomashanning.com/retain-cycles-weak-unowned-swift/ Retain Cycles, Weak and Unowned in Swift Retain cycles and the usage of the keywords weak and unowned are a little bit confusing. In t..

iOS/Swift 2020.12.10

[iOS] if kakao 2020 iOS 세션 후기

개요 2020 if kakao 컨퍼런스를 관람(?) 했습니다. 각잡고 개발 컨퍼런스를 본 건 작년 언리얼엔진 컨퍼런스 이후로 처음인데, 확실히 개발 컨퍼런스를 보면 현재 임하고있는 서비스에 대해 더 생각해보게 되고, 비교도 하면서 많은 생각을 할 수 있는 것 같아요. 그럼 이번 if kakao 2020의 iOS 세션들을 보고 느낀점&요약 간략히 써보도록 하겠습니다. 유연한 해외 현지화를 위한 iOS 앱 구성 제일 공부가 많이 되었던 세션이었습니다. 카카오페이지 개발자분들이 카카오페이지를 여러 나라에 배포하게 되면서 글로벌한 앱을 구성하기 위해 필요했던 것들을 발표해주셨는데요. 단순 언어 차이는 앱에 포함시킨 고정된 문자열 리소스만으로 충분히 구현 가능하지만, 여러 나라에 서비스하는 만큼 신경쓸게 많았다고..

iOS/개념 2020.11.22

[iOS] 앱을 테스트&배포할 때 알게되었던 개념들 - 2

개요 그동안 회사를 다니면서 제 개인 프로젝트를 발표하기도 하고, 제가 맡은 기능을 넣은 내부 배포 버전, 라이브 배포 버전도 아카이빙을 해봤는데요. 앱을 테스트, 배포하는 과정에 필수적으로 알아야될 기초개념들이 많이 있어서 글로 정리해놓지 않으면 분명 까먹는다는걸 깨닫고 오늘 이 글로 정리해보고자 합니다. 큰 줄기로는 Apple Certification Provisioning Profile Code Signing App Thinning BitCode on-demand resource 을 정리하는 글이라고 볼 수 있겠네요. 4. App Thinning (앱 시닝) 앱 시닝이란 앱이 디바이스에 설치될 때 앱 스토어와 운영체제가 그 디바이스의 특성에 맞게 설치하도록 하는 설치 최적화 기술 을 의미합니다. 이..

iOS/개념 2020.11.08

[iOS] 앱을 테스트&배포할 때 알게되었던 개념들 - 1

개요 그동안 회사를 다니면서 제 개인 프로젝트를 발표하기도 하고, 제가 맡은 기능을 넣은 내부 배포 버전, 라이브 배포 버전도 아카이빙을 해봤는데요. 앱을 테스트, 배포하는 과정에 필수적으로 알아야될 기초개념들이 많이 있어서 글로 정리해놓지 않으면 분명 까먹는다는걸 깨닫고 오늘 이 글로 정리해보고자 합니다. 큰 줄기로는 Apple Certification Provisioning Profile Code Signing App Thinning BitCode on-demand resource 을 정리하는 글이라고 볼 수 있겠네요. Apple Certification (인증서) 제가 iOS 어플을 처음 만들었을 때 들은 생각은 Apple은 보안을 위해 개발자를 매우 귀찮게 한다는 것이었습니다. "Apple은 기본..

iOS/개념 2020.11.08

[iOS] iOS SandBox 란?

개요 회사 팀원분들이 말씀하시는거 듣다가 샌드박스라는 개념이 등장해서 정리해보는 글 입니다. 샌드박스 라고는 마인크래프트류 게임이나 유투버들 회사 밖에 몰랐어서 반성하며 글을 시작해 봅니다. 오늘도 Apple Developer 사이트의 글을 번역하며 공부했습니다. developer.apple.com/library/archive/documentation/Security/Conceptual/AppSandboxDesignGuide/AboutAppSandbox/AboutAppSandbox.html#//apple_ref/doc/uid/TP40011183-CH1-SW1 About App Sandbox About App Sandbox App Sandbox is an access control technology pr..

iOS/개념 2020.10.25