2022/09 13

08 ~09. Alert & Confirmation Dialog

Alert SwiftUI로 Alert를 표시하는 데에는 준비물이 하나 필요하다. struct View_Alert: View { @State private var result = "" @State private var alertStat = false var body: some View { VStack { Text(result) .font(.largeTitle) Button(action: { }, label: { Text("Show Alert") }) .padding() } } } 바로 State Variable로 위의 코드에서는 alertStat이라는 이름을 가진다. alert은 해당 변수를 조작하여 자신의 상태를 변경하는데 사용하기 때문에 반드시 필요하다. struct View_Alert: View { ..

[~2022.07.30] 안드레아스 거스키, 녹사평, 브라이리퍼블릭, LIU, 일상 (Ricoh GR 3x, iPhone 13 mini)

서론 RICOH GR 3x / 포지티브 필름 iPhone 13 mini 보정은 별도 표시 본론 7월 3일 이태원 길을 잘못 들어 녹사평 - 이태원 구간의 뒷골목을 좀 걸었다. 반짝반짝한 밤의 서울도 물론 마음에 들지만, 이렇게 소박한 서울도 좋다. 이태원 | 브라이리퍼블릭 다른 곳의 미트파이는 어떤지 궁금해서 다시 찾아본 브라이리퍼블릭 미트파이 자체는 Earthy(사전적인 구수하다랑은 또 다르다.)한 향이 짙어 우리의 취향은 아니었다. 대신 소시지가 죽여준다는 건 장점. 이태원이라 그런지 파이리퍼블릭 보다 외국인 손님이 월등히 많았다는 게 특징. 비슷한 요리를 하는 곳이니 둘 다 들러 비교해 보는 것도 나쁘지 않을 것 같다. 홍대 | 파이리퍼블릭 녹사평역 녹사평역 앞 신호등 노을이 정말 예뻤던 날이라 반..

사진 2022.09.21

02. Stack

Stack Stack은 정해진 한 방향으로 View를 나열하여 배치한다. 방향에 따라 V, H, Z Stack이 존재하며, 그림으로 나타내면 다음과 같다. Stack은 기본적으로 Embed 돼있는 View들을 모두 표시할 수 있는 최소한의 크기를 가진다. View들은 별도로 지정하지 않는 한 기본 여백을 자동으로 가지고, 가운데 정렬 방식으로 정렬된다. VStack struct ContentView: View { var body: some View { VStack(alignmnet: .leading) { Text("text1") Text("text2") Text("text3") Text("text4") } } } VStack의 V는 Virtical을 의미한다. 추가된 View부터 위쪽에 표시하고, 추가된..

01. Swift UI

Swift UI Code(Swift)를 사용해 UI를 만든다. git, 업무 분담 시 Conflict에서 자유롭다. Storyboard - code가 Outlet, Action으로 연결되고 기능을 구현하는 것과 달리 SwiftUI는 모든 것이 Code로 구현돼 코드가 간결해진다는 장점이 있다. (Animation, Transition에 특히 유리) Simulator가 아닌 Xcode Preview를 사용해 결과를 실시간으로 확인하고 편집할 수 있다. Swift의 View는 구조체로 돼있으며 덕분에 작게 쪼개져도 성능에 미치는 영향이 적다. 따라서 View를 겹쳐 사용해도 효과적으로 동작할 수 있다. 필수적이고 자주 사용하는 기능들은 자동으로 처리된다 (DynamicType, DarkMode, Animat..

[~2022.06.30] Today at Apple, 일상 (Ricoh GR 3x, iPhone 13 mini)

서론 RICOH GR 3x / 포지티브 필름 iPhone 13 mini 대부분 보정 없음(별도 표시) 더운데 참 많이도 다녔다. 본론 6월 4일 용산 | 아그라 셋 중에 가장 빨리 취직이 된 Whale이 산 저녁. 원랜 철없는 형들이 사줘도 몇번은 더 사줬어야 할 텐데... 나중에 배로 돌려 줄게 :) 아그라는 몇년 전에 연애 할 때 이태원점에 갔었는데, 당시에도 꽤 좋은 인상으로 기억되고 있어서 주변에 추천해 주곤 했었다. 예전 기억의 조금 뻣뻣한 탄두리 치킨이 아닌 적당히 촉촉한 탄두리 치킨이 예상 밖. 플레이팅도 조금 더 화려해 졌다. 불 같은 건 없었는데 말이지... 6월 7일 쿠폰으로 저렴하게 산 부엉이&올빼미 장식. 작고 소중한데 생각보다 디테일해서 귀엽다. 동생집에 우리집에 이모집에 뿔뿔이 ..

사진 2022.09.08

219. Task Scheduling

Task Scheduling Task는 처음 생성하면 별다른 동작 없이 대기하고 있다가 resume 메서드가 호출되면 즉시 동작을 시작한다. 이는 사용자에게 즉시 필요한 데이터라면 적합한 작동 방식이다. 하지만 지금 당장 데이터가 필요한 경우가 아니라면 미리 기기의 용량을 차지하거나, 셀룰러 용량을 낭비하게 된다. Task Scheduling은 iOS가 Task의 정보를 저장하고 있다가 지정된 시점에 자동으로 다운로드하는 방식으로 동작한다. 따라서 Task의 주체가 앱이 아니게 되고, Background Session 에서만 구현할 수 있다. @IBAction func startDownload(_ sender: Any) { guard let url = URL(string: bigFileUrlStr) el..

218. Adaptable Connectivity

Adaptable Connectivity 네트워크가 연결되지 않은 상태에서 발생한 Task를 대기상태로 두었다가 연결되면 실행되도록 구현한다. lazy var session: URLSession = { [weak self] in let config = URLSessionConfiguration.default config.waitsForConnectivity = true let session = URLSession(configuration: config, delegate: self, delegateQueue: OperationQueue.main) return session }() SessionConfiguration의 waitsForConnectivity 속성을 true로 변경한다. 이제부터 해당 Sess..