IOS

    [iOS] CoreData C.R.U.D

    안녕하세요 이번에는 CoreData에 대해서 글을 작성해 보겠습니다. 처음 CoreData라는 단어를 봤을때 오 정말 중요하고 좋은 저장 방법인가보다 해서 제가 이걸 몰랐을때 다른분이 이런걸 활용했다 할때는 그분이 정말 멋있어(?) 보이기도 했습니다. 이번에 날씨어플을 개발하면서 이거한번 꼭 써봐야겠다라고 생각한게 CoreData입니다. 사실 날씨어플에는 맞지않는 감이 있었지만 한번 꼭 써보고 싶었기에 도전해 봤었고 여러 난관에 부딫히기도 했지만 좋은 경험을 한것 같습니다. CoreData의 특징 데이터를 디바이스에 영구적으로 저장할수 있습니다. ( 일시적인 데이터에는 적합하지 않습니다. ) CoreData는 FrameWork 입니다. ( DataBase가 아닙니다 ) CoreData의 기능중 하나인 P..

    [iOS] Dynamic View (With: PageView, TableView, CollectionView) / Standard Apple WeatherApp UI

    안녕하세요 이번에는 사이드 프로젝트를 하면서 메인뷰의 구성을 어떻게 할지... 고민을 계속 했었는데 약 4일은 걸린것 같습니다. 저런 형식의 뷰를 그동안 봤기는 봤지만 어떻게 구성되어있는지 단한번도 생각해 본적이 없었기때문에 정말 막막했었고, 단서는 스크롤이 위아래로 되고 페이지도 넘어가서 스크롤뷰와 페이지뷰가 있느보다 했었는데... 결과적으로는 스크롤뷰 때문에 고생을 엄청 했었습니다. 위의 이미지가 정말 고통에 사무쳣던 시간을 보내게 한 UI입니다. 구글 검색은 다양하게 했던것 같습니다. 하지만 키워드가 다 Scroll View, Dynamic View, ComplexView 이렇게 했는데 제가 해결한 방식은 못찼았습니다. 깃허브에 Basic Apple WeatherApp 을 쳐도 안나오고... 결국에..

    [iOS] String Interpolation

    안녕하세요 이번 블로그 내용은 사이드 프로젝트를 진행 하면서 이런것도 Extension을 통해서 설정할수 있다는 것을 알게 되어 신기하고 처음보는 내용이어서 남기고 싶었습니다. String Interpolation StringInterpolation은 말그대로 문자열 보간입니다. 저도 한국어로는 모르다가 처음으로 검색을 통해 알게 되었는데요 실제로는 저희가 코딩을 하면서 자주쓰게 되는 기능입니다. 이런식으로 자주 사용하시죠? "( ? )" 이렇게 사용하는 기능이 바로 StringInterpolation 입니다 문자열 보간에 원하는 기능을 추가하려면 String.StringInterpolation 여기에 Extension을 통해 기능을 추가해야합니다. 아래의 코드는 value로는 Int가 들어가고 원하는 ..

    [iOS]UTC Time To Date (feat. TimeZone)

    안녕하세요 오늘은 사이드 프로젝트를 하면서 저를 아주 고생시켯던 녀석을 정리해 보려고 합니다. 현재 제가 진행하고있는 사이드 프로젝트는 애플 날씨 기본어플인데요, API로 들어오는 데이터가 날씨쪽의 경우 시간과 관련된 정보는 timezone, timezone_offset, dt 이렇게 3가지가 들어오게 됩니다 날씨어플 API 요청시 Data 정보 (JSON) 요청시 가져오는 데이터의 일부분입니다. "lat": 37.5665, "lon": 126.978, "timezone": "Asia/Seoul", "timezone_offset": 32400, "current": { "dt": 1610112601, "sunrise": 1610059627, "sunset": 1610094589, 아래는 데이터의 설명입니다..

    [TIL][iOS] Retain Cycle, Weak, Unowned ( feat. ARC )

    ## Swift에서는 메모리 관리를 어떻게 할까? 기초적인 대부분의 메모리관리는 ARC가 알아서 합니다. 기본적으로 관리되는 메모리의 관계는 클래스의 객체를 가리키는 각각의 reference(참조)는 '강한참조'입니다. 최소한 하나의 '강한참조'가 존재하는한 메모리는 해제되지 않습니다. 이 최소한 하나의 '참조'가 강한참조가 아니면 메모리에서 해제됩니다. 객체 생성시 참조와 객체의 관계 다이어그램 - 마지막의 코드처럼 nil을 붙이게되면 deinit()이 호출됩니다. ( 메모리 해제시 호출됩니다.) Retain Cycle이란? 대부분의 경우 ARC가 작동해서 참조를 해제하지만 작동하지 않는 경우가 있습니다. class TestClass{ var testClass: TestClass? = nil init(..

    [TIL] 라이브러리, 프레임워크의 차이

    프레임워크 - 뼈대나 기반구조를 뜻합니다. 프로그래밍을 진행할 때 필수적인 코드, 알고리즘 등과 같이 어느 정도의 구조를 제공해주기 때문에 프레임워크를 사용하는 프로그래머는 이 프레임워크의 뼈대 위에서 코드를 작성하여 프로그램을 개발. 라이브러리 - 특정 기능에 대한 도구 또는 함수들의 집합입니다. 프로그래머가 어떠한 기능을 수행하기 위해서 도움을 주는 또는 필요한 것을 제공해 주는 역할을 하는 것이죠. 간단히 정리를 하자면 프로그램 기능 수행을 위해 활용 가능한 도구의 집합입니다. 차이 = 프레임워크는 전체적인 흐름을 자체적으로 가지고있어 프로그래머는 그안에서 필요한 코드를 작성합니다. 라이브러리는 프로그래머가 전체적인 흐름을 가지고 있어 라이브러리를 자신이 원하는 기능을 구현하고 싶을 때 가져다 사용..