이번에 공부한 내용은, 스크롤뷰에 대한 내용입니다. 요건 ImagePicker 같은 곳에서 이미지를 Crop 할 때 자주 사용될 법한 기능이라고 생각이 되네요! 이번 강의의 챕터에서는 사진 앨범 앱을 만드는데, 이런 공부를 통해 이미지를 확대하는 기능을 추가하는 방법에 대한 공부를 할 수 있을 거라 생각이 됩니다! 혹시 강의에 관심이 있으신 분이라면, 아래 링크를 눌러주세요. 모든 강의와 강의자료가 높은 수준임에도 무료로 개방되어 있고, 네이버 아이디로도 이용할 수 있을 만큼 진입장벽이 낮은게 장점이라고 생각됩니다. 매 챕터마다 프로젝트로 작은 앱을 만들며 공부를 할 수 있기 때문에, 결과물을 내면서 공부하는데 성취감도 느낄 수 있어서 개인적으로 되게 좋은 것 같아요! https://www.edwith...
[ iOS 앱 개발 - Swift] 비동기 프로그래밍과 OperationQueue 이번에는 비동기 프로그래밍에 대해 공부를 해봤습니다! 느낀 바를 토대로 간단히 요약하자면, "여러명이 병렬적으로 일하게 만들기" 라고 할 수 있을 것 같네용. 작업 큐에 넣어 다른 스레드에서 작업을 수행시키고, 필요하면 또 메인 스레드를 호출해서 작업을 수행시키고, 이런 방식으로 진행하는게 비동키 프로그래밍이라고 생각됩니다. 개념 이해하기 프로세스 Process 하나의 프로그램이 메모리에서 실행되는 작업단위를 말합니다. 단순하게 작업이라고 말해도 상관없을 것 같네요. 스레드 Thread 스레드는 프로세스의 작업흐름의 단위를 말해요. 한 프로세스가 여러 스레드를 사용해 작업을 병렬적으로 수행할 수도 있습니다. 비동기 프로그래..
[iOS 앱 개발 - Swift] 앱 내에서 앨범 사진 삭제하기 이전 포스팅에서 올렸던, 사진을 앨범에서 읽어와 테이블뷰의 셀에 올린 프로젝트에서 이어서 작성하고자 합니다! > https://etst.tistory.com/111 < 바로 요것! PHPhotoLibraryChangeObserver 프로토콜 추가하기 사진 라이브러리가 변경된 경우 이를 읽고 변경사항을 알려주거나, 라이브러리를 변경하고자 할 때 사용해줄 수 있는 프로토콜입니다. 이를 채택하고 준수하여 사진첩 편집에 이용하면 됩니다. 밀어서 삭제하기 먼저, 셀을 삭제하는 기능을 만들어봅시다. 이런 기능은 애플에서 잘 만들어서 제공을 하기때문에, 우리가 할 일은 감사합니다! 하고 받아서 쓰면 돼요. ㅋㅋㅋㅋ 그러려면 공식문서를 잘 읽고 필요한 기..
[iOS 앱 개발 - Swift] Photos Framework 사용하기 이 글은 edwith의 부스트코스 iOS 프로그래밍이라는 강좌를 들으며 혼자 공부한 내용을 글로 정리하며 작성한 포스팅입니다. 이번 강의는 챕터 4의 첫 번째 강의입니다. 갈수록 살짝씩 어려워지는 느낌이 들긴하지만 ㅋㅋㅋ 입문용 강의로는 그래도 정말 괜찮은 것 같아요. 어제 교보문고에 들러서 Swift 책을 하나 구입해서 옆에 두고 헷갈리는 내용을 참고하려고 몇개 살펴봤는데, Swift 교과서! 이런 느낌의 책을 펼쳤는데 거의 다 아는 내용이라 그냥 덮었거든요. 그만큼 이 강의가 괜찮은 것 같아요! 강의 전체랑 강의자료도 공짜로 제공되는데 네이버 아이디로도 수강할 수 있을만큼 접근성이 좋아서 프로그래밍을 기본적으로 할 줄 아시는 분..
[iOS 앱 개발 - Swift] Codable과 CodingKey, JsonEncoder와 JsonDecoder 객체를 저장하고 파일로 만들 때, 그 자체를 코드화를 하면 저장공간을 비효율적으로 사용하게되고, 검색등으로 찾거나 처리를 할 때 시간이 더 소요되고, 보안적인 문제가 발생할 수도 있습니다. 정보를 효율적이고 안전하게 저장하기 위해서 인코딩 (Encoding) 과정을 거쳐, 정보를 표준화 및 암호화합니다. 이 데이터를 다시 원래 객체의 모습으로 돌리는 과정을 디코딩(Decoding) 이라고 합니다. Swift 에서는 인코딩과 디코딩을 위한 프로토콜 ( Encodable, Decodable) 을 이미 만들어두었습니다. 보통 두 프로토콜이 함께 쓰이기때문에, 둘을 함께 엮은 Codable 프로토콜..
[iOS 앱개발 - Swift] 세그 : Segue 세그는 Segueway를 줄여서 칭하는 것이라 블로그 포스팅 앞쪽에서 한번 언급했었던 것 같네요. 제가 주로 세그를 사용헸던건 스토리보드 상에서 화면전환을 연결할 때 가장 쉬웠던 방식이라서 이걸 썼었는데, 이제야 세그에 대해 제대로 공부하게 되었네요. ㅋㅋㅋㅋ 이 글은 edwith의 부스트코스 iOS 프로그래밍 강의를 들으며 공부한 내용을 정리한 포스팅입니다! 세그란 무엇일까? 세그는 스토리보드에서 뷰 컨트롤러에서 다른 뷰 컨트롤러로 화면전환을 할 때 코드로 구현할 필요 없이 연결을 통해 화면 전환을 구현하는 도구입니다. 물론 코드를 이용해 이 세그를 사용할 수도 있습니다. UIStoryboardSegue 클래스에는 기본 스타일의 화면전환을 위한 프로퍼..
[iOS 앱개발 - Swift] 뷰 / 셀의 재사용 애플제품을 사용하는 걸 고려해본 사람이라면 ( + 성능에 관심이 있는 사람이라면 ) 애플이 iOS 기기들의 메모리에 굉장히 인색하다는 걸 알고있을 겁니다. 제가 갤노트2를 쓰고있을 때도( 약 2년전? ) 최신 아이폰이 갤노트2와 메모리용량이 같다는 걸 듣고 왜 그렇게 만들었을까를 생각해본 적이 있었는데, 메모리관리를 되게 효율적으로 잘 할 수 있도록 OS와 앱들 자체를 만들어놔서 그렇다는 결론이 나왔었어요. 이번에 공부한 내용도 이 작은 메모리를 관리하는 방법입니다! 재사용 만약에 사용자에게 보여줘야 할 데이터가 굉장히 많은데 메모리가 이를 담기에 부족하다면, 메모리를 효율적으로 관리해서 정보를 전달할 수 있도록 해야합니다. 전달을 위해 사용하는 요소들..
[iOS 앱개발 - Swift] 테이블뷰에 커스텀셀 추가 이전까지는 기본으로 제공되는 셀의 스타일을 이용했다면, 이번포스팅에서는 원하는 모양으로 셀을 만드는 방법을 알아봅시다! 우선 이전 포스팅에서 만들어 둔 테이블 뷰를 재활용하는 걸로 할게요. 어차피 단순하게 만들어둔 테이블이라 편하게 만들어서 사용하면 될 것 같네용! 이 포스팅은 edwith 의 부스트코스 iOS 프로그래밍 강좌를 보면서 공부한 내용을 정리하는 글입니다. 3번째 프로젝트의 테이블뷰에 대한 공부예요! 모든 강의와 자료가 무료이고, 네이버 아이디로도 이용할 수 있답니다. 관심이 있으신 분은 여기로! Storyboard에 배치하기 일단 테이블뷰에 새로운 셀을 추가해줍니다. Inspector 에서 해당 셀의 Style을 Custom으로, I..
[iOS 앱개발 - Swift] 테이블뷰에 동적으로 셀 추가하기 지난번 포스팅에 만들어둔 테이블 뷰에 실행중에 버튼을 누르는 등의 액션으로 테이블 뷰에 셀을 추가하는 방법을 알아봅시다! 크게 어렵지는 않다고 생각이 드네욤! 일단 새로운 셀을 추가시키는 버튼을 스토리보드를 통해 배치해줍시다. 버튼을 끌고 테이블 뷰 위에 올려두면 셀처럼 테이블뷰의 요소로 포함되게 됩니다. 또, TextField를 하나 배치해서, 여기에 입력된 데이터를 새로 생성되는 셀의 타이틀로 넣어주도록 합시다! 이제 이 버튼을 누르면 어떤 액션을 취할지를 View Controller에 코드로 작성해줍시다. 우선 추가될 셀이 앞서 작성했던 0번, 1번 섹션 말고 2번 섹션에 포함되도록 앞에 작성했던 코드에서 섹션 개수를 수정해줬습니다. ..
앞에서 공부했던 내용들을 이용해서 TableView의 구성을 직접 한 번 만들어봅시다! 이번의 목표는 아래 이미지의 테이블 뷰예요. 새 프로젝트를 하나 만들어서, StoryBoard에서 테이블 뷰를 하나 만들어주고, Table View, Table View Cell 을 올려줬어요. 그 다음에 Table View를 control 키와 함께 클릭해주면 보여지는 Outlet 창에서 DataSource와 Delegate를 View Controller와 연결해줍니다. 이 뷰 컨트롤러가 해당 테이블 뷰의 외형과 설정을 담당하겠다는 뜻이예요. 물론 이 내용도 코드를 통해 작성해줄 수 있습니다. 그 다음, Outlet으로 테이블 뷰를 코드와 연결해주고, 테이블 뷰에 담고싶은 데이터를 작성해줬어요. (데이터는 데이터소스..