iOS
-
[iOS] - Swift에 대하여(Feat. UIkit,SwiftUI)iOS/iOS 2024. 1. 9. 19:23
난 iOS로써 swift를 지금까지 1년을 넘게 사용해왔다. 하지만 이번에 친구들과 스터디를 시작하게 되면서 그냥 언어를 쓴다라는 개념 그 이상을 배울 수 있는 기회가 생겼다. Swift 탄생 기존 애플에서는 앱 개발 프로그래밍 언어를 Objected-c라는 언어를 사용했었음 2014 WWDC에서 (신속한,재빠른)Swift라는 새로운 개발언어를 사용하게 됨 일단 이정도이다. 여담으로는 잡스 2011년 사망해서 swift를 알지 의문이다. 특징 Objective-C와 swift 둘다 LLVM 사용 옵젝시 환경에서 컴파일 됨 여기서 말하는 LLVM은 Low-Level-Virtual-Machine의 줄임말로 프로그램을 컴파일 타임, 링크 타임, 런타임 상황에서 프로그램의 작성 언어에 상관없이 최적화를 쉽게 구..
-
[디자인패턴] - Singleton 패턴iOS/디자인 패턴 2023. 12. 18. 16:46
요즘 모르고 쓰기만 했던 디자인 패턴들에 대해 다시 공부 중이다. 단연코 내가 가장 많이 쓴 패턴은 싱글톤 패턴인데 이걸 쓰면서도 아 그냥 쓰는구나 하고 넘겼었는데 알아보니까 이유를 알게 되었다. 그래서 포스팅을 하게 되었다. 싱글톤 패턴 객체를 클래스에서 하나만 선언하여 공용으로 사용하려 할때 사용하는 패턴 정의를 하자면 위와 같다. 이게 무슨 말이냐 코드로 보여주겠다. class Count{ var num = 0 func countNum(){ num += 1 print(num) } } func call1(){ let count = Count() count.countNum() } func call2(){ let count = Count() count.countNum() } func call3(){ le..
-
[iOS] - URLSession VS AlamofireiOS/iOS 2023. 12. 7. 18:46
오늘은 iOS 앱개발자에겐 없어선 안될 HTTP통신 라이브러리 URLSession과 Alamofire에 대해서 알아보겠다. 팀프로젝트를 시작하게 되면서 초반에 이 둘중에 어떤 것을 쓸지 고민을 했었다. 사실 둘다 잘 모르기 때문에 고민이랄것도 없었다. 문제는 당장 이 둘의 차이점도 모른다는 점이고 그냥 대중픽을 선호했던 것인데, 오늘이 와서야 한번 알아보고 싶어져서 포스팅을 하게 됐다. URLSession swift에서 제공하는 HTTP 통신 네트워킹 라이브러리이다. 비동기적 네트워크 요청처리와 HTTP 메서드지원(GET, POST, PUT, DELETE) 등을 지원한다. 이때 든 생각은 엥? 뭐 별로 차이없는데 그럼 기본적으로 제공하는 라이브러리를 쓰는게 더 안전하고 효율적인거 아닌가? 였다. Alam..
-
[iOS] - Swift Package Manager 생성 및 배포iOS/iOS 2023. 11. 28. 18:38
오늘은 spm을 만들어 볼 것이다. 첫번째로 패키지를 생성해주고 패키지명과 저장 위치를 설정한다. 가장 처음만들면 이와 같은 화면이 나온다. 이 화면은 패키지 정보를 담고 있는 정보인데, 여기서 수정할 것들을 찾아서 수정하면 된다. 나같은 경우는 최소 사용 iOS버전만 설정하고 타겟 중 tests는 삭제 시켰다. (불필요없는 파일이라 판단하여..) 수정하면 다음과 같이 사용할 수 있다. let package = Package( name: "MyLibrary", platforms: [.iOS(.v16)], products: [ // Products define the executables and libraries a package produces, and make them visible to other p..
-
[iOS] - AdHoc 배포 (github버전)iOS/iOS 2023. 11. 3. 17:53
정말정말 오랜만에 포스팅이다. 요새 팀프로젝트를 하던 도중 데모앱을 팀원들과 함께 테스트를 해야하는 경우가 생겼다. 안드로이드 같은 경우 빌드해서 나온 .apk파일을 그냥 공유해도 쉽게 앱을 공유할 수 있었는데, 애플은 보안상 여간 까다로운게 아니였다.. 팀원들을 만날때 마다 맥북을 챙겨가서 빌드를 해주기는 사실상 불가능에 가깝기 때문에 이걸 원격으로 공유할 수 있는 방법을 찾던 도중 iOS앱 파일(.ipa)을 간단한 웹페이지를 만들어서 공유하는 방법을 채택하게 되었다. 이 방법은 개발자 계정이 있다는 가정하에 진행한다. 1. 디바이스 UDID추가 먼저 애플개발자 사이트를 들어간다. (https://developer.apple.com/account) 앱을 테스터할 사용자에게 기기의 UDID를 알려달라고 ..
-
[SWIFT] - 제네릭(Generic)iOS/SWIFT 2023. 6. 14. 15:16
요즘 프로젝트를 하면서 더 나은 코드를 위해 TDD방법론을 실천중에 있다. 항상 과거의 나의 코드는 미래의 나의 코드와 비교가 되기 때문에 옛날에 짜놨던 코드들도 들춰보면서 경악을 하며 수정하곤 한다. 빌드업을 이렇게 쌓은 이유는 이번에 프로젝트를 위한 공부를 하게 되면서 "아니 제네릭 개쩔잖아..?! " 라는 생각을 하게 되었다. 제네릭이라는 개념 자체를 알게 된건 오래전이지만 이걸 실제 개발을 하면서 어느 상황에서 사용해야할지 감이 오지 않아 사용해본적이 없었다. 이제 슬슬 감이 오는듯하니 포스팅을 시작해보겠다. 다음 메서드를 보자 func swapTwoInts(_ a: inout Int, _ b: inout Int) { let temporaryA = a a = b b = temporaryA } 여러..
-
[iOS] CGFloat이란?iOS/iOS 2023. 4. 18. 17:01
코딩을 하다가 문득 생각이 들었다. CGFloat이란 대체 뭘까? 지금까지 Float과 Double은 많이 봤지만 CGFloat에 대해서 생각을 깊게 해본적이 없어서 포스팅을 하게 되었다. CGFloat Float/Double 과 CGFloat은 모두 부동소수점 수를 표현하는 데이터 타입이다. 여기서 CGFloat은 Apple의 프레임워크에서 주로 사용되는 실수형 타입인데 뷰의 크기,폰트,위치에 따른 실수형 타입의 값을 지정할 때 사용된다. Float과 Double은 우리가 사용해야하는 경우에 따라 사용하게 되지만 CGFloat은 우리가 그걸 신경 쓸 필요가 없어진 것이다. 한마디로 비트 크기 차이의 사용 혼란을 막아준다. 참고로 CGFloat은 64비트에서 8바이트, 32비트에선 4바이트라고 한다.
-
[SwiftUI] #문법 - @ObservedObjectiOS/SWIFTUI 2023. 4. 14. 15:11
오늘은 swiftui에서 사용하는 중요한 프로퍼티 래퍼에 대해 포스팅을 해보겠다. @ObservedObject 뷰의 변경점이 감지 되면 화면을 업데이트하는 역할을 한다. iOS 14부터 등장한 @StateObject와 매우 흡사한데, 그 차이는 @StateObject를 포스팅할 때 자세히 차이를 설명하겠다. 관찰 가능한 객체를 구독하고 관찰 가능한 객체가 변경될 때마다 보기를 무효화하는 속성 래퍼 유형 개발 문서에 있는 내용을 그대로 직역하면 다음과 같다. 이전의 포스팅한 @State 같은 경우는 한 구조체 안에서 선언하고 다른 뷰와 데이터를 공유할 수 없는 것이 특징이다. 여기서 포인트는 데이터의 변경이 감지 되면 뷰를 새로 그린다는 것이다. 자세히 알아보자 일단 @ObservedObject를 사용하기..