레이블이 iOS인 게시물을 표시합니다. 모든 게시물 표시
레이블이 iOS인 게시물을 표시합니다. 모든 게시물 표시

2025-01-12

iOS 18.2.1 릴리즈 등 한 주간의 애플 소식들 25-01-12

소프트웨어 릴리즈

애플은 미국 시각 1월 6일 아래의 버그 픽스 릴리즈를 정식 공개했다.

  • iOS 18.2.1
  • iPadOS 18.2.1

버그 픽스 릴리즈인 만큼 보안 결함이나 사소한 버그를 수정하며 기능적 변화는 없을 것 같다.

그리고 미국 시각 1월 7일 아래의 애플 플랫폼 OS들의 차기 마이너 업데이트의 두 번째 베타 버전들이 공개되었다.

  • macOS 15.3 beta 2
  • iOS 18.3 beta 2
  • iPadOS 18.3 beta 2
  • visionOS 2.3 beta 2
  • watchOS 11.3 beta 2
  • tvOS 18.3 beta 2
이들 베타에서는 Home 앱에 로봇 청소기 추가 기능이나 계산기의 일부 퇴보된 기능의 복구 등 몇몇 업데이트가 알려졌다. 

일반적인 소식들

애플 뉴스 확장: 애플은 미국, 캐나다, 영국, 호주 외의 국가에 Apple News 서비스를 확장할 계획이라고 한다. 한국은 포탈 규제를 볼 때 진출하긴 좀 힘들 지도 모르겠지만 말이다.

비전프로는 진행형: 애플이 Vision Pro에서 Safari를 통해 NVidia의 GeForce NOW 클라우드 게임 서비스를 지원한다고 한다.

신한카드 애플페이 연동: 빠르면 오는 2월 부터 Apple Pay에서 신한카드를 결제 수단으로 사용할 수 있게 된다고 한다.

애플페이 교통카드는 언제: 일단 애플페이가 티머니 연동 등을 포함한 교통카드 지원에 적극적인 것 같고 기술적인 문제도 모두 해결된 것 같지만 수수료 협상에서 발목이 잡혀 있는 모양이다. 여러 곳의 이권이 걸린 데다 수수료 또한 여러 곳에서 나가다보니 자칫 적자운영에 빠질 수 있어 쉽지는 않아 보이기도 한다.

루머 소식 모음

아이폰 루머들: iPhone 17의 소재가 바뀌면서 가장자리에서 후면까지 이어지는 라인이 더 매끈해질 가능성이 있는 모양이다. iPhone 17 Pro 라인업의 후면 카메라는 테트라프리즘 카메라 시스템과 함께 모든 렌즈에 4800만 화소 센서가 채택될 가능성이 있는 모양이며 이들 센서는 전작에 비해 크기가 더 작아질 지도 모른다. iPhone 18에는 많은 이점을 가진 삼성의 신형 카메라 센서 탑재 소문이 또 돌고 있다. 초박형 iPhone 17 Air(가)는 가장 얇은 부분은 5.5mm 두께가 될 것 같은데 물리 심카드 트레이는 제외될 가능성이 높은 듯하다. 폴더블 아이폰은 올해 중 양산 루머는 가능성은 낮아 보이며 아직 계획 단계인 것으로 유추된다.

비전프로: Vision Pro 2는 2025년 내로 출시될 가능성은 매우 낮아 보인다. 저가형 제품 개발에 좀 더 역량을 집중하고 있는 것일 지도 모른다.

새로운 가정용 신제품: 신형 Apple TV 및 HomePod Mini는 올해 출시될 것으로 보인다. 이들 제품에는 공통적으로 A 시리즈 칩 및 자체 와이파이/블루투스 칩 등을 탑재할 가능성이 알려졌다.

AAPL

인도 공급망의 가격 경쟁: 인도가 글로벌 전자제품 공급망의 허브가 되기 위한 노력의 일환으로 애플 등의 제조업체 생산 비용을 낮추기 위한 보조금이나 관세 인하를 시행할 것이라고 한다. 당연하겠지만 애플에겐 좋은 소식이다.

Siri 녹음 프라이버시: 애플은 Siri 불법 녹음 합의와 관련해 녹음된 데이터는 어떤 목적으로든 누군가에게 판매된 적이 없다고 밝혔다.

CarPlay 2는 소외되지 않음: 2024년 마지막 날 까지도 애플은 CarPlay 2의 개발 상황에 대해 언급을 하지 않았지만 최근 공개된 OS 베타에서 관련된 코드를 발견하게 되면서 차세대 CarPlay는 아직 개발 중이라고 유추되는 것 같다. 물론 공식적인 코멘트는 아직 없는 상태다.

인도네시아 아이폰 판매 재개는 아직: 애플 측의 10억 달러 규모의 AirTag 제조 투자안 제안에도 불구하고 인도네시아 정부는 여전히 iPhone 16 시리즈 판매를 금지하고 있는 모양이다. 인도네시아에서 iPhone 부품 생산 등 납득하기 어려운 요구를 하는 모양이다.

이상한 벌금: 브라질에서 FaceApp의 부적절한 데이터 수집 행위를 제대로 막지 않았다는 사유로 애플이 약 310만 달러의 벌금을 부과 받았다.

사건사고: Apple Cash 서비스가 일정 시간 중단되는 사고가 있었던 모양이다.

LA 산불 여파: 애플은 산불과 관련하여 기부와 함께 산불 피해자의 Apple Card의 결제 연기를 지원한다고 한다.

2018-02-28

소수점 제거 함수 삼총사 ceil(), floor(), round()

이번 글은 굉장히 유명한 수학 함수 3가지를 적어보는 글입니다. 그리고 오랜만에 구어체가 아닌 존대말(?)로 쓰는 글이기도 하겠네요.

이번에 언급하는 함수 세 가지, 즉 ceil(), floor(), round() 함수는 C 언어 시절부터 쓰이던 수학 함수 중 일부입니다. 이 함수 들은 현대의 거의 대부분의 언어에서도 대부분 동일한 이름으로 제공될 정도로 필수 함수이지요.

이 함수들의 용도 및 활용법을 Swift 기준으로 정리해 보겠습니다. 물론 다른 언어에서도 거의 동일하니 언어가 의미가 있는지는 잘 모르겠지만요.

2018-01-26

Swift struct 값의 프로토콜을 제대로 판단하지 못 하는 문제

아직 세상은 넓고도 험하다. 코딩을 하던 도중 아래 오류의 문제가 제법 골머리를 썩였다.
Could not cast value of type ‘_SwiftValue’ to ‘SomeProtocolName’
이 글은 위의 오류와 관련된(?) 문제를 해결하던 과정에서 나온 오랜만의 삽질을 정리한 내용이다.

2017-10-11

어느날 @objc Inference 와 관련된 경고를 보았다

Xcode 9 이전에 개발했던 프로젝트를 Xcode 9 에서 Swift 4 기반으로 변경한 적이 있다. 이 과정에서 단 한줄의 코드 변경도 없었고, 당연하게도 해당 프로젝트는 별 문제는 없이 잘 동작하였다.

다만 약간 찝찝하게도 빌드 도중 아래와 같은 색다른(?) 경고를 보게 되었다.
The use of Swift 3 @objc inference in Swift 4 mode is deprecated. Please address deprecated @objc inference warnings, test your code with “Use of deprecated Swift 3 @objc inference” logging enabled, and then disable inference by changing the "Swift 3 @objc Inference" build setting to "Default" for the "TARGET NAME" target.
해석하자면 뭐라고 할까... 그냥 구버전 방식의 @objc 를 사용하는 것이 Swift 4 에선 호환이 안되니 무슨무슨 설정을 바꿔라 이런 의미로 해석된다. 하여간, 이 글은 이 경고를 해결하는 방법을 설명한다.

2017-08-01

Xcode 9 눈에 띄는 신기능들 (영상)

Xcode 9 을 제대로 찝적거릴(?) 기회가 생겨서 신기능을 조금씩 느껴보고 있다. 이왕 이렇게 된거 이런 기능들을 영상으로 한번 찍어보자 해서 녹화해서 편집해 봤다.

2017-07-26

2017-07-25

KVO (Key-Value Observing) 소개

KVO 는 Key-Value Observing 의 약자, 즉 특정 키의 값의 변화를 감지하기 위한 기능이다. Objective-C 를 위해 만들어진 기능이라 등장한지는 제법 되었지만, 현재의 앱 개발 패러다임에 있어서 - 모델(Model)의 변화를 뷰(View)에 반영하기 위함 등 - 값 변화를 인식하는 것은 굉장히 중요하기 때문에 무시할 수는 없는 기능인 것 같다.

2017-06-13

눈에 띄는 Swift 4 변경점들 (Xcode 9 첫 Beta 기준)

최근에는 좀 게으르게(?) 지내고 있다가 WWDC가 온줄도 모르고 Xcode 9 의 베타가 나오는 줄도 모르고 허송세월 보내고 있었다. 잠깐 정신을 차리고 Swift 4 에 관련된 내용을 간단히 정리해 볼까 한다.

Swift 4 - Codable / JSONDecoder / JSONEncoder

개인적으로 꼽는 Swift 4의 가장 유용한 업데이트 중 하나로 Codable 프로토콜 및 JSONDecoder / JSONEncoder 를 꼽고 싶다. JSON 이라는 이름이 가지는 의미야 유명하니 무슨 말인지는 다들 알 것인데, Codable 이라는 프로토콜은 타입과 JSON을 언어 차원에서 묶어주는 방법을 제공해 준다는 점에서 파격적(?)이다.

이 글은 이 새로운 기능에 대해 겉(?)만 핥으려는 내용이다.

2017-05-10

[iOS] 기묘한 에러메시지 "Unable to insert COPY_SEND"

오랫만에 옛날에 만들어 둔 iOS용 앱 프로젝트를 수정할 일이 생겼다. 그런데 문제를 수정하고 디버그 모드로 디바이스에 넣어서 실행시켜보니 괴상한 오류메시지가 로그 창에 찍히기 시작했다.

2017-04-12

CALayer 와 CAAction

Implicit Animation

이전에 CALayer 애니메이션에서 언급한 방법들은 Explicit Animation 즉 명시적인 애니메이션이라고 불린다. 이와 반대 개념으로 암시적인(Implicit) 애니메이션도 있을 터인데 이 암시적 애니메이션은 레이어의 동작(Behavior)에 의해 발동되는 애니메이션이다. 쉽게 말해서 프로퍼티 등에 값을 넣으면 애니메이션이 발동하면서 변화되는 모습을 보여준다. 프로그래머가 직접 애니메이션을 명령하지 않았지만 자동으로 애니메이션이 동작하였기에 암시적이라고 부르는 것이다.
view.layer.contents = UIImage(named: "flower").cgImage
위 코드는 뷰 레이어에 이미지를 표시하는 기초적인 코드이다. 그런데 이 코드 이전에 이미 contents 에 이미지가 올라가 있는 상태라면 다른 이미지로 바로 바뀌지 않고 페이드 애니메이션, 즉 이미지가 서서히 나타나는 듯한 효과로 변경(transition)된다. 물로 OS나 기타 조건에 의해 바뀔 수는 있으니 절대적인 것은 아니다. 중요한 점은 그저 레이어의 프로퍼티를 바꿨는데 애니메이션이 발동된다는 것이다. 이게 바로 암시적 애니메이션이다.

2017-03-28

Swift 3.1 릴리즈

오늘 Xcode 8.3 이 정식으로 릴리즈 되면서 Swift 3.1 도 함께 정식 릴리즈 되었다. 그래서 변화점을 간략히 정리해 보려고 한다. 주관적(?)으로 정리할 것이기 때문에 정확한 내용은 영어 울렁증(?)이 없다면 공식 사이트의 릴리즈 노트 를 보는 것이 좋을지도 모른다.

2017-03-21

Notification Snippets

복잡한 뷰 컨트롤러들을 다루면서 여기 저기 소속된 데이터를 다루려고 할 때 소유권 때문에 곤란함을 느낄 때가 많았다. 이럴 때 NotificationCenter 를 이용해 알림(Notification)을 던지는 방식으로 컨트롤러 객체들끼리 통신을 하기도 하는데, 뭐 하여간 이런 저런 여러 사유로 노티피케이션(Notification 혹은 NSNotification)을 사용할 일이 종종 있다.

하지만 항상 쓸 때 마다 느끼는데, 이 알림(Notification)의 이름(Name)을 찾는데 곤혹을 느끼곤 한다. 왜나하면 한군데에 정리된 것이 아닌 전역 상수 형태로 선언된 것이 대부분이기 때문이다.

물론 개인이 구현하는 프로젝트에서 쓸 Notification 은 굳이 이런 전통을 따를 필요는 없다. 누구나 한번 쯤은 해 볼 만한 Notification Snippets 를 한번 만들어 보자.

2017-02-28

CATransition Animation (Core Animation)

레이어 이야기를 쓰다가 계속 삼천포로 살짝 빠지는 느낌이 들지만, 이번 글은 레이어 트랜지션(Transition), 즉 장면전환 애니메이션에 관한 글이다.

2017-02-21

CALayer Animation (Core Animation)

CALayer 에 관한 글을 적으면서 애니메이션에 대해 언급할 필요가 생겼는데 간략히 하기에는 양이 너무 많은 것 같다. 그래서 이번엔 CALayer 애니메이션에 관한 것을 별도로 정리하려고 한다.

CALayer 의 이름에서 볼 수 있는 머릿글자 CA 는 Core Animation 의 약자이다. Quartzcore 라는 거대한 시스템의 일부이기도 한 이 Core Animation 은 레이어 애니메이션을 위한 기능들로 구성되어 있다.

전체를 설명하기에는 양의 방대함도 그렇고 개인적인 지식도 문제가 되기 때문에 애니메이션과 관련된 Quartzcore 의 몇 클래스만을 정리해 본다.

2017-02-13

CALayer - CAGradientLayer

CAGradientLayer 는 CALayer 기반 클래스로 그라디언트를 그리는 기능을 제공하는 특수 레이어다.

2017-02-08

CALayer - CATextLayer

CATextLayer 는 그 이름처럼 화면에 글자를 그리기 위한 용도의 CALayer 기반 레이어 클래스이다. UILabel 이나 NSTextField 등에 비해 기능적인 면에서 부실하기는 하지만 아무래도 퍼포먼스 면에서는 우위일 것이다.

2017-02-07

CALayer 시작하기

지금까지 iOS 및 macOS 용 앱을 여럿 만들어 왔지만 레이어에 대해서는 자세히 공부해 본 적이 없었다. 블로그에 글 쓸 주제도 적어지고 마침 필요도 하기에 레이어에 대해 공부해 보면서 알게 된 것들을 정리해 보려고 한다.

2017-01-20

Swift 속의 C Pointer 이야기 - UnsafeBufferPointer, UnsafeMutableBufferPointer

버퍼(Buffer)라는 용어는 대체로 연속적인 메모리 공간을 의미한다. 메모리를 할당해서 구한 포인터는 이 버퍼의 시작 주소를 담고 있다고 볼 수 있다. 버퍼는 메모리 덩어리 그 자체다.

하지만 스위프트(Swift)는 포인터를 쓸 수 있는 언어가 아니기 때문에 연속적인 메모리를 액세스 하는 것이 불가능하다. 그래서 위의 버퍼 개념이 맞지 않는다.

Swift 에서는 버퍼를 대체하기 위해 배열(Array)을 대신 사용한다. 랜덤 액세스도 되고 이터레이션도 되는 그 배열 말이다.

UnsafeBufferPointer 와 UnsafeMutableBufferPointer 는 이런 Swift 버퍼와 C 버퍼 사이의 상호호환을 위해 제공되는 특수한 컨테이너다.