반응형 전체 글861 애플이 Corellium에 건 소송에서 패소하다 오래간만에 애플의 소송 패소 소식이 들려와서 무슨 일인가 살펴봤다. Apple loses copyright battle against security start-up Corellium - (The Washington Post) 코렐리엄은 앱을 여러 아이폰에서 동시에 테스트할 수 있게 해주는 솔루션을 제공한다. 다만 물리적인 디바이스는 아니고 시뮬레이터 여러 개를 동시에 띄워서 돌리는 방식으로 유추된다. 홈페이지에서는 안드로이드 디바이스도 지원하는 것 같기는 하지만 일단은 아이폰으로 한정해서 생각해야겠다. 애플은 이런 iOS 가상 테스트 솔루션을 제공하는 코렐리엄에 대해 애플이 저작권 침해를 주장하며 소송을 걸었었다. 이번 판결에서 애플의 주장은 상당수 받아들여지기도 했지만 결과적으로 코렐리엄의 시뮬레이터.. 2020. 12. 30. Xcode 12.3에서 발생하는 Fat Framework 링크 오류 문제 Xcode를 12.3 버전으로 올린 이후부터 회사 프로젝트를 빌드할 때 아래와 같은 오류가 발생하기 시작했다. Building for iOS, but the linked and embedded framework 'Foobar.framework' was built for iOS + iOS Simulator. 이 프로젝트는 비공개 iOS용 라이브러리와 iOS 시뮬레이터용 라이브러리를 lipo를 이용해 합쳐서 만든 Fat Framework(혹은 Universal Framework)다. 이 프레임워크로 이전 버전의 Xcode에서는 빌드가 잘 되었는데 유독 12.3부터 이런 식의 오류가 발생하기 시작했다. 해결하기 이 문제의 해결은 의외로 쉽다. Target의 Build Settings에서 Validate Wor.. 2020. 12. 17. 터미널에서 Doom Emacs의 복사가 동작 안 하는 문제 터미널 환경이 원래 GUI랑은 조금 다르긴 해서 복사 및 붙이기(copy and paste) 환경이 호환이 안 되는 경우가 많다. macOS에서는 이 문제를 해결하기 위해서 pbcopy나 pbpaste 같은 터미널 커맨드를 별도로 활용하는 방법을 주로 사용한다. 하지만 직접 설정하는 것은 좀 귀찮은 편이다.Doom Emacs도 -nw 옵션을 줘서 기본적인 터미널 실행환경으로 실행할 경우 y키로 복사(yank)가 안 된다. (Evil 사용 시 이야기다) 붙이기는 어느 정도 동작하는데 내부에서 복사가 안 되면 많이 불편하다. 물론 구태여 터미널에서 왜 이맥스를 돌리냐는 이야기가 있을 수 있는데 터미널 취향인 사람에겐 중요한 문제일 수도 있다.다행히도 이 문제는 쉽게 해결이 가능하다. 그저 시작 가이드 문서에.. 2020. 12. 16. 구글과 사회적 거리두기 어느 날 트위터를 통해서 구글 크롬(Google Chrome)이 나쁘다는 내용의 트윗을 접하게 되었다. 굳이 내용을 언급하기보다는, 해당 작성자가 이런 사실을 널리 알리고자 직접 도메인을 구입해서 홈페이지까지 만들었으니 그곳의 링크를 언급한다. Chrome is BadChrome is Bad Short story: Google Chrome installs something called Keystone on your computer, which nefariously hides itself from Activity Monitor and makes your whole computer slow even when Chrome isn't running. Deleting Chrome and Keystone makes.. 2020. 12. 14. SwiftUI의 PreviewProvider와 Binding SwiftUI는 개발 단계에서 라이브 프리뷰를 통해 코드의 모습을 즉석에서 확인할 수 있습니다. 그런데 @Binding 처럼 외부의 값을 대여해 주어야 하는 경우 샘플 프리뷰를 작성할 때 약간의 곤란함이 있습니다.예를 들어 아래의 예제가 있습니다.import SwiftUIstruct SomeView: View { @Binding var name: String var body: some View { Text("Hello \(name)") }}struct SomeView_Previews: PreviewProvider { static var previews: some View { SomeView(name: "John") }}위에서 SomeView_Previe.. 2020. 12. 14. 불행히도 M1이 웹 앱의 약세를 부르지는 않을 것이다 ARM 아키텍처를 탑재한 M1 SoC가 발표되고 이 칩셋이 들어간 맥이 정식 발매되면서 또 다른 주목을 받고 있는 것이 바로 iOS 앱의 호환성 여부였다. 동일한 아키텍처이기 때문에 맥에서 iOS 앱을 돌릴 수 있는 길이 열리기 때문이다. 그리고 실제 발표된 제품에서는 정말 (일부) iOS 앱들이 아주 매끄럽게 돌아가는 모습을 볼 수 있었다.이와 관련해서 많은 사람들의 생각들이 이슈화 되고 있는데 개인적으로 눈길을 끄는 건 애플 생태계에서 웹 앱이 줄어들지 않을까 하는 이야기다. M1과 애플판 월드가든 크로스 앱 플랫폼의 탄생...맥 OS 웹앱은 사라지는가 - 테크잇학습 차원에서 틈틈이 해외 전문가들이 블로그나 미디어 그리고 책에서 쓴 글을 정리하고 있습니다. 이번 포스팅도 그중 하나고요. 거칠고 오역된.. 2020. 12. 11. 사파리는 M1 맥에서 가장 빠른 웹 브라우저? M1 맥이 출시된 이후에도 구글의 크롬 브라우저는 한동안 관련 업데이트가 없어서 로제타2로 구동시켜야 했습니다. 당연히 로제타로 번역되어서 구동되면 성능이 네이티브에 비해 떨어질 수밖에 없습니다. 그러다 최근 크롬이 M1 네이티브 지원이 업데이트되었습니다. 당연히 성능은 올라갔어야 정상이겠지요.이와 관련해서 Ars Technica에서 M1 네이티브 지원이 들어간 크롬의 성능 테스트를 한 결과를 공개했습니다. Google Chrome is available as an Apple M1 native app todayChrome runs much better natively than translated—we've got benchmarks inside.arstechnica.com벤치마크 결과 M1 네이티브 크롬.. 2020. 11. 21. SwiftUI에서 SF Symbols 사용하기 SF Symbols가 뭔지 어떻게 사용하는지 간단하게 알아봅시다. 워낙 간단하기 때문에 굳이 글로 적는 게 의미가 있나 싶을 정도로 쉬운 내용입니다. 다만 이 글 작성의 기준은 iOS 13 이상, Xcode 12 이상, macOS 앱이나 멀티플랫폼 앱의 경우 Big Sur 이상이 요구될 수도 있습니다.SF Symbols는 애플에서 제공하는 이미지 아이콘 모음입니다. 어려울 것 없이 'SF Symbols.app' 앱을 찾아서 실행시켜 보면 바로 알 수 있지요.SF Symbols 앱의 모습을 보면 이 아이콘들은 폰트 기반 제공되는 것으로 유추됩니다.만약 시스템에서 SF Symbols.app을 찾을 수 없다면 별도로 다운로드해서 설치할 수 있습니다. SF Symbols - Apple DeveloperWith .. 2020. 11. 18. M1의 성능은 정말 정말이었다 이전에 썼던 M1 벤치마크 모음 글에서 추가로 이어지는 내용입니다. 뭐... 그다지 크게 바뀌는 내용은 없을 것 같지만요. M1의 성능은 정말이었다지난 애플 행사에서 발표된 M1의 성능이 엄청나다는 애플 측의 주장(?)이 있었습니다만 객관적으로 검증되지는 않은 소식이었지요. 바로 정식 제품이 출시되고 수 일이 지나면서 실사용자들의seorenn.tistory.com그러니까 이전 글의 내용에서 M1의 벤치마킹 비교 결과 인텔 맥을 그냥 앞지르고 있다는 소식이었습니다만 이번에 추가로 접한 소식들도 비슷합니다. M1 Chip Beats GeForce GTX 1050 Ti and Radeon RX 560 for Graphics PerformanceApple's M1 processor often surpasses .. 2020. 11. 17. Xcode의 부산물(?) 청소 쉽게 하기 Xcode가 가끔 꼬여서 이상 동작을 하는 경우 아래 터미널 커맨드로 Xcode의 똥[...]들을 치우는 경우가 종종 있었습니다.$ rm -rf ~/Library/Developer/Xcode/DerivedData그런데 Big Sur부터인지 아닌지 확실치는 않지만, 이제는 저장 공간 관리 앱에서 손쉽게 필요 없는 개발자용 파일을 삭제할 수 있게 지원되고 있습니다.위처럼 프로젝트 아카이브나 Xcode 캐시, 프로젝트 빌드 데이터 및 인덱스를 선택해서 삭제 버튼만 누르면 깔끔하게 청소가 됩니다. (그런데 지금은 무슨 버그가 있는지 프로젝트 빌드 데이터 및 인덱스는 깔끔하게 지워지지는 않기는 합니다)장점으로는 애플에서 직접 지원하는 앱이기 때문에 터미널 커맨드에 비해 안전하다는 점이겠지만, 단점으로 삭제 시간이.. 2020. 11. 16. M1의 성능은 정말이었다 지난 애플 행사에서 발표된 M1의 성능이 엄청나다는 애플 측의 주장(?)이 있었습니다만 객관적으로 검증되지는 않은 소식이었지요. 바로 정식 제품이 출시되고 수 일이 지나면서 실사용자들의 체험기가 속속 올라오고 있기에 몇 개의 핵심만 정리해 보겠습니다.우선은 맥 제품끼리의 벤치마크에 대한 것입니다. MacBook Air with M1 chip beats 16-inch MacBook Pro performance in benchmark test - 9to5MacApple introduced its first Macs with the Apple Silicon “M1” chip, which brings the ARM architecture to the Mac with improved performance and .. 2020. 11. 16. Flutter의 Widget에서 앱 활성화 여부 파악하기 앱이 활성화될 때, 즉 백그라운드 상태에서 포그라운드 상태로 앱이 다시 올라왔을 때 위젯이 이 상태를 직접 파악하는 방법은 기존적으로 제공되지 않습니다. 앱 단위에선 onResume이나 onPause가 제공되는 것과는 다르게 말이죠. 제 경우 iOS 앱에서 백그라운드 태스크 앱이 백그라운드 상태에서 동작하다 포그라운드로 활성화될 때 UI 갱신이 누락되는 현상이 있어서 앱 활성화 여부를 알아낼 수 있어야 했습니다.이와 관련해 정보를 찾아보던 도중 다행히도 제가 원하는 기능을 제공하는 Widget Bindings Observer라는 것을 발견할 수 있었습니다.아래 예제는 특정 StatefulWidget에서 WidgetBindingsObserver를 사용해 앱의 상태 변화를 추적하는 코드를 구현한 예제입니다... 2020. 11. 13. SwiftUI macOS 앱에서 타이틀 바와 툴바가 통합된 윈도우 구현하기 이 글의 목표는 SwiftUI를 사용하는 macOS 앱 프로젝트에서 아래와 같은 윈도우를 구현하는 것입니다.나눠서 설명했더니 글이 좀 길어졌습니다. 결론만 보시려면 글 하단에 정리한 전체 코드를 참고하시면 될 것 같습니다.기본 프로젝트사용하는 프로젝트는 macOS App으로 SwiftUI를 사용하도록 설정했습니다. 당연히 이게 조건이니깐요.기본 프로젝트는 위와 같은 모양으로 실행됩니다.Unified Title and Toolbar프로젝트 생성 시 보일러플레이트 코드가 생성된 AppDelegate.swift 파일을 열어보면 NSWindow 인스턴스를 생성하는 코드가 있습니다. 여기에서 styleMask를 설정할 수 있습니다. 여기에 아래와 같이 .unifiedTitleAndToolbar 플래그를 추가합니다.. 2020. 11. 12. 드디어 공개된 애플 실리콘의 첫 칩셋 M1 육아에 찌들어 침대에 찌그러져 자는 동안 이전에 예고한 대로 애플의 신제품 행사가 열렸습니다. 이 자리에선 애플 실리콘 맥의 공식 출시를 발표할 것이라고 예상했었고, 그 예상대로 ARM 기반 공식 맥 칩셋과 이를 탑재한 맥 제품군이 발표되었습니다.상세한 내용은 많은 분들이 정리하실 거고, 저는 대충 찌그러트려서 제 주관적인 시점에서 행사 내용을 간단히 정리해 보고자 합니다.M11세대 애플 실리콘 맥 칩셋의 정식 이름은 M1이네요. 사실상 위의 이미지 한 장으로 이 칩셋이 어느 정도의 스펙인지 대략적인 설명은 가능한 것 같습니다. 축약하여 저전력 고효율 고성능 SoC입니다.애플은 이 칩셋이 동일 제품군의 인텔 CPU 대비 3배 이상 빠른 퍼포먼스를 보일 거다라고 이야기하고 있습니다. 사실일까요? 기준이 명.. 2020. 11. 11. 드디어 애플 실리콘 이벤트가 열리...나? 간밤에 애플이 또 이벤트 소식을 메일로 공식적으로 알려왔습니다. 올해는 좀 잦네요?미국 시간 11월 10일 오전 10시, 아마도 한국 시간으론 11월 11일 오전 (새벽) 3시경에 온라인 이벤트가 시작됩니다. 역시나 여기에 상세한 내용은 없네요. 대신 스티브 잡스의 유명한 발언이 사용된 카피가 눈에 띄네요. 이미 애플이 일반적으로 하던 행사는 모두 했기 때문에 여기에 추가로 뭔가 진행된다는 의미도 있겠지요.이번 이벤트에 대해서는 이미 설이 많이 있었는데 이들의 공통점은 애플 실리콘 즉 인텔 대신 ARM 아키텍처를 탑재한 맥 출시를 공식적으로 발표하는 행사가 될 것이라는 점입니다. 이미 출시된 게 있지 않나 할 수도 있는데 기존에 공급된 것은 개발자에게 미리 체험시켜 주기 위한 임대 제품이고 공식 판매 제.. 2020. 11. 3. Rust의 Generics 맛보기 제네릭(Generics)은 많은 언어에서 지원하는 다형 타입 지원 기능입니다. 동일한 기능을 여러 타입으로 사용하려는 경우 각 타입 별로 비슷한 코드를 중복해서 코딩해야 할 수도 있는데, 제네릭은 타입과 코드를 분리시켜서 하나의 코드로 다양한 타입을 사용해서 동작시킬 수 있게 만들어 주기 때문에 매우 효율적인 코딩이 가능합니다. 러스트(Rust)도 이런 제네릭을 지원합니다. 이 글에서는 러스트의 제네릭 기능을 살짝 살펴보며 깊게는 안 들어가고 간단히 맛만 보고자 합니다. 벡터 구경 제네릭은 여러 코드에 구현되어 있는데 그중 가장 가깝게(?) 찾아볼 수 있는 예제는 아마도 벡터(Vector) 일 것 같습니다. 다른 언어에는 리스트나 배열이라고 부를만한 그 자료구조지요. 벡터는 구조체로 구현된 자료구조이지만.. 2020. 11. 1. 디렉터리 및 파일 크기 조회 도구 du du는 시스템에서 각 디렉터리와 파일의 용량이 얼마인지 알려주는 *NIX용 유틸리티입니다. 이 글은 du의 간단한 사용법을 정리합니다.du를 아래처럼 별 다른 옵션 그냥 실행시키면 현재 디렉터리 안에 있는 모든 파일과 디렉터리를 재귀적으로 순회하며 각각의 크기를 콘솔에 목록으로 표시합니다.du다만 표시되는 사이즈는 일반적으로 쓰는 단위가 아닌 블록(block) 단위이기 때문에 직관적이지 않습니다.du는 좀 더 직관적인 사이즈를 볼 수 있도록 별도의 옵션을 제공합니다.-k: Kilo Bytes 단위로 표시(1 Kilo Bytes = 1024 Bytes)-m: Mega Bytes 단위로 표시(1 Mega Bytes = 1024 Kilo Bytes)-g: Giga Bytes 단위로 표시(1 Giga Bytes.. 2020. 10. 27. Rust로 객체지향 프로그래밍 흉내내기 러스트(Rust)는 객체 지향 프로그래밍(OOP - Object Oriented Programming) 언어가 아닙니다. 애초에 클래스(class) 문법 조차 없고 따라서 상속(inheritance) 개념도 없습니다. 그저 구조체에 메서드를 구현할 수 있을 뿐입니다. OOP에서 정말 중요한 개념이 없는데 과연 러스트는 OOP 패러다임으로 코딩하는 것이 가능할지를 그냥 맛만 봅시다.트레잇(trait)러스트에는 트레잇(trait)이라는 개념이 있습니다. 이 기능은 인터페이스를 설계하는 기능입니다. 이를 이용해 특정 타입에 인터페이스에 맞는 메서드를 구현하도록 강제하기 위해서 사용할 수 있습니다. 이런 면에서 비교하자면 스위프트(Swift)의 프로토콜(Protocols)과 상당히 닮아 있습니다.다짜고짜 트레잇.. 2020. 10. 26. 이전 1 ··· 37 38 39 40 41 42 43 ··· 48 다음 728x90 반응형