전체 글

전체 글

    8시에 일어나는 것

    8시에 일어나는 것

    애플 디벨로퍼 아카데미가 개강하고 이틀째이다. 9시부터 시작이라 8시에는 일어나서 간단하게 운동하고, 씻고 고구마나 맛밤 먹으려고 했는데, 이틀째 8시 30분에야 일어나서 씻고 앉는다ㅋㅋㅋ 그리고 하루종일 피곤하다 어제는 아무 생각없이 알람 안맞추고 잘뻔했는데 알게 된 순간 아찔했다. 오늘은 1시에 점심 먹고 1시간 낮잠을 잤는데 여전히 피곤하다. 42서울에서 공부할 때는 피곤하면 더 잘 수 있었는데, 아침에 일이 있어서 일찍 일어나는 것은 역시 쉽지가 않다. 매일 매일이 1교시야... 왜 만만히 봤니 근데 몸이 힘들고 뭘 조금 더 하는게 낫지... 오후 수업을 했으면 또 맨날 늦게 일어나게 되서 스트레스였을 것이다. 일찍 자기나 하자..

    [SwiftUI] ForEach에서 \.self를 사용하는 이유와 id 중복 문제 해결 방법

    [SwiftUI] ForEach에서 \.self를 사용하는 이유와 id 중복 문제 해결 방법

    SwiftUI에서 ForEach는 Array 등 컬렉션 자료형을 순환하며 View를 생성해주는 역할을 합니다. 하지만, 사용법이 다르고 매개변수로 id가 존재하는 등 기존의 forEach와 다른 점이 많아 보입니다. SwiftUI의 ForEach에 대해서 이해하기 위해서는 먼저 SwiftUI에서 사용하는 ForEach는 기존의 반복문, 즉 Swift의 forEach()과는 비슷하게 작동하지만 본질적으로 다르다는 점을 먼저 알아야 합니다. 공식 문서를 보면, Apple Developer Documentation developer.apple.com ForEach는 '식별된' 데이터들의 컬렉션에 따라, 'View'를 계산하는 구조체입니다. 기존의 swift의 forEach()가 컬렉션 내부의 요소들을 하나씩 ..

    여행을 다녀왔다.

    여행을 다녀왔다.

    아카데미 시작 전 마지막 주말을 기다리고 있다. 본가에 내려와서 정말 잘 쉬고 있는데, 너무 쉬니까 또 힘이 안나서 이번주 내내 개발을 몇시간이라도 하고 있다. 쉬려고 마음 먹으면 오히려 잘 못쉬겠다. 한참 바쁠 때는 시간이 나면 보고싶은 영화도 많았고 책도 많았고 아무튼 무언가 하고 싶은게 많았는데, 딱 쉬려고 시간을 가지니깐 그게 다 사라지는 느낌. 쉬는 기간에 이것 저것 진짜 많이 찾아봤는데, 나의 아저씨나 비밀의 숲 같은 명작을 만나지 못한게 아쉽다. 기대한 만큼 재미있지 않아서 몇화 참으면서 보다가 그만 둔 작품들도 많다. 그래도 여행은 잘 다녀왔다. 보령과 강릉을 다녀왔다. 둘 다 바닷가지만 서해 바다와 동해 바다가 어떻게 다른지 열심히 관찰했다. 나한테는 동해바다가 조금 더 예쁜 것 같다. ..

    [SwiftUI] json parsing 방법

    [SwiftUI] json parsing 방법

    swift UI에서 json parsing은 정말 간단하고, 똑똑? 위험? 한 것 같다는 생각을 했습니다. 어떤 json 파일을 struct array에 parsing하려고 한다고 했을 때, json 파일의 구성은 다음과 같습니다. 먼저 파일 이름은 landMarkData.json 입니다. { "name": "Turtle Rock", "category": "Rivers", "city": "Twentynine Palms", "state": "California", "id": 1001, "isFeatured": true, "isFavorite": true, "park": "Joshua Tree National Park", "coordinates": { "longitude": -116.166868, "lati..

    [SwiftUI] View 가독성을 늘리는 3가지 방법 (View 쪼개기)

    [SwiftUI] View 가독성을 늘리는 3가지 방법 (View 쪼개기)

    SwiftUI 프레임워크를 사용하면서, UIKit 프레임워크를 사용할 때 ViewController가 어마무시하게 길어지는 문제를 해결했지만, View를 코딩할 때, 가독성을 고려하는 건 여전히 중요한 문제라고 생각합니다. 다음은 같이 카드 몇개를 보여주는 간단한 작업인데 코드가 매우 복잡하죠?? 이렇게 코드를 무조건 늘여놓게 되면 읽기도 힘들고, 유지보수 하기에도 상당히 애를 먹게 될거에요. struct ContentView: View { @State var cards = ["♠️", "♣️", "♥️", "♦️"] let cardShape = RoundedRectangle(cornerRadius: 20) var body: some View { VStack { Text("Card Game") .font..

    어쨌든 나아가고 있다.

    어쨌든 나아가고 있다.

    애플 디벨로퍼 아카데미에서 보내준 맥북과 아이폰이 도착해서 이것저것 세팅을 하다가 처음으로 개발공부를 막 시작하고 아무것도 모르던 먼 옛날에 만들었던 첫 iOS 앱 (그냥 동작하는 무언가...) 홍보 영상을 발견했다ㅋㅋㅋ 분명히 만들 때는 최선을 다해서 만들었는데, 지금 보니 왜 이렇게 엉성하고 귀여운지 모르겠다. 저 때 본가에서 마무리 작업을 했었는데, 실제로 목표 달성 화면을 녹화하기 위해서 집 근처 대학교를 엄청 뛰어다녔던 기억이 있다ㅋㅋ Class가 뭔지도 모르고, 왜 이렇게하니까 되고, 왜 이렇게 하면 안되는지 하나도 이해하지 못한채 그냥 시간만 열심히 갈아넣어서 만든 앱이라서 애정이 많이 간다. 그래서 시간 날 때 틈틈히 다시 만들어보려고 한다. 1년동안 42Seoul에서 CS기초를 쌓고 iO..

    [SwiftUI] View protocol과 body 변수에 대한 고찰 (some 키워드를 사용하는 이유)

    [SwiftUI] View protocol과 body 변수에 대한 고찰 (some 키워드를 사용하는 이유)

    우리가 SwiftUI로 UI를 그릴 때마다, 반드시! 마주치는 프로토콜과 변수가 있죠!! 바로 View와 body입니다. 이렇게 어떤 View를 사용자 정의 생성하기 위해서는 body라는 변수가 반드시 필요하죠!! struct MyView: View { var body: some View { ... } } 여기서 body가 채택한 프로토콜인 View 옆에 some 키워드를 붙여주는 이유는 무엇일까요?? 이를 이해하기 위해서는 body라는 변수의 특성과, View 프로토콜과의 관계에 대해서 이해하면 확실하게 이해가 가능합니다. 더불어 some 키워드의 활용법도 완전히 이해하실 수 있을거에요!! 우리가 View를 사용하기 위해서는 MyView 오른쪽에 있는 저 View 프로토콜을 채택해야만 하는데요! Swi..

    쉴 수 있을 때 잘 쉬자

    쉴 수 있을 때 잘 쉬자

    멘토님과 함께 애플 아카데미 입소 전까지의 계획을 좀 세웠다. 멘토님과 이야기를 할 때는 다른 시각으로 문제를 바라볼 수 있게 되고 마음이 편해지고 용기가 난다. "잘 쉬자"로 결론이 났다ㅎㅎ 잘 쉬어서 또 달릴 수 있는 체력을 마련하는 것도 능력이라고 생각한다. 나는 신나게 무언가를 하면서 쉴 수 있는 딱 정해진 취미는 아직 없는 것 같다. 강아지나 고양이들이랑 놀때 제일 행복하긴 한데.. 당장 키울 수 있는 여유가 되는 것도 아니고. 집에서 맥주 한캔에 넷플릭스 볼때도 행복하다. 양식 요리는 내가 가장 잘하는 건데 오랜 자취 경력과 독일에 살 때는 모든 끼니를 다 해먹었기 때문에 재료 고르는것부터 좋아한다. 아, 그리고 산책 좋아한다. 걷는거 정말 좋아해서 기회만 되면 하루종일 돌아다닌다. 새로운 길..

    [Apple Developer Academy @ POSTECH] 최종 합격 후기

    [Apple Developer Academy @ POSTECH] 최종 합격 후기

    될 수 있을거라는 큰 기대는 하지 않았었는데, 다행히 합격했다. 메일 안오길래 아 떨어졌나보다 하고 본가 내려가야 하나 고민하고 있었는데.. 메일이 왔다. 진짜 애플스럽게 기다리게 만드는 재주가 있어 절대 내가 잘해서 된 건 아니다. 그냥 궁합이 맞고 운이 좋았다... 유튜브에 다른 분들 포폴 올려놓은 거 보니까 어마어마하신 분들이 많더라.. 실력을 뽑는게 아닌가봐 더 열심히해서 정말 많이 성장해서 돌아오겠다.