이번에 공부한 내용은, 스크롤뷰에 대한 내용입니다. 요건 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] Swift 에서 JSON 다루기 edwith의 부스트코스 iOS 앱개발 강의를 들으며 공부한 내용을 정리한 포스팅이예요. 이 글에 나오는 예제파일이나 코드는 강의에 나오는 코드입니다. 아이폰 앱개발에 관심이 있으신 분은 아래 링크를 확인해보세용 https://www.edwith.org/boostcourse-ios/lecture/20146/ [LECTURE] 3) JSON 다루기 : edwith 강의 영상 - 부스트코스 www.edwith.org JSON 다루기 이번 글에서는 JSON 데이터로 Encode, Decode 하는 방법과 이용하는 방법에 대해 작성해볼게요. 이에 대한 설명은 앞 포스팅에 작성되어 있습니다! JSON 데이터 형식만들기 일단, JSON 데이터로 사용..
[iOS 앱 개발 - Swift] Codable과 CodingKey, JsonEncoder와 JsonDecoder 객체를 저장하고 파일로 만들 때, 그 자체를 코드화를 하면 저장공간을 비효율적으로 사용하게되고, 검색등으로 찾거나 처리를 할 때 시간이 더 소요되고, 보안적인 문제가 발생할 수도 있습니다. 정보를 효율적이고 안전하게 저장하기 위해서 인코딩 (Encoding) 과정을 거쳐, 정보를 표준화 및 암호화합니다. 이 데이터를 다시 원래 객체의 모습으로 돌리는 과정을 디코딩(Decoding) 이라고 합니다. Swift 에서는 인코딩과 디코딩을 위한 프로토콜 ( Encodable, Decodable) 을 이미 만들어두었습니다. 보통 두 프로토콜이 함께 쓰이기때문에, 둘을 함께 엮은 Codable 프로토콜..
2번째 부스트코스 코드리뷰를 받았습니다. 이번 프로젝트에서는 배운 것도 많았고, 고민한 것도 많았고, 아쉬운 것도 많았네요 ㅋㅋㅋ 이번에 코드리뷰를 어떻게 받았는지 한 번 보여드리도록 하겠습니당!! 이번에 제출한 프로젝트는 iOS 프로그래밍 강의의 두번째 챕터의 프로젝트인 간단한 회원가입 화면과 기능을 구현하는 앱 이였어요. 챕터 1과 2에서 배웠던 내용들이 거의 다 나왔던 것 같네요. ImagePicker, 오토레이아웃, 데이트피커, IBOutlet으로 값 가져오기, 탭 제스쳐 인식하기 등등 많은 내용들을 프로젝트에서 다시 한 번 써먹어 보면서 머리에 집어넣었습니다. 따로 복습을 챙겨서 할 필요가 없을 것 같네요 ㅋㅋㅋ 아래 이미지처럼, 화면 구성이나 기능 구현에 있어서 어떻게 작동시켜야 할지에 대해 ..
[iOS 앱개발 - Swift] 세그 : Segue 세그는 Segueway를 줄여서 칭하는 것이라 블로그 포스팅 앞쪽에서 한번 언급했었던 것 같네요. 제가 주로 세그를 사용헸던건 스토리보드 상에서 화면전환을 연결할 때 가장 쉬웠던 방식이라서 이걸 썼었는데, 이제야 세그에 대해 제대로 공부하게 되었네요. ㅋㅋㅋㅋ 이 글은 edwith의 부스트코스 iOS 프로그래밍 강의를 들으며 공부한 내용을 정리한 포스팅입니다! 세그란 무엇일까? 세그는 스토리보드에서 뷰 컨트롤러에서 다른 뷰 컨트롤러로 화면전환을 할 때 코드로 구현할 필요 없이 연결을 통해 화면 전환을 구현하는 도구입니다. 물론 코드를 이용해 이 세그를 사용할 수도 있습니다. UIStoryboardSegue 클래스에는 기본 스타일의 화면전환을 위한 프로퍼..
[iOS 앱개발 - Swift] 뷰 / 셀의 재사용 애플제품을 사용하는 걸 고려해본 사람이라면 ( + 성능에 관심이 있는 사람이라면 ) 애플이 iOS 기기들의 메모리에 굉장히 인색하다는 걸 알고있을 겁니다. 제가 갤노트2를 쓰고있을 때도( 약 2년전? ) 최신 아이폰이 갤노트2와 메모리용량이 같다는 걸 듣고 왜 그렇게 만들었을까를 생각해본 적이 있었는데, 메모리관리를 되게 효율적으로 잘 할 수 있도록 OS와 앱들 자체를 만들어놔서 그렇다는 결론이 나왔었어요. 이번에 공부한 내용도 이 작은 메모리를 관리하는 방법입니다! 재사용 만약에 사용자에게 보여줘야 할 데이터가 굉장히 많은데 메모리가 이를 담기에 부족하다면, 메모리를 효율적으로 관리해서 정보를 전달할 수 있도록 해야합니다. 전달을 위해 사용하는 요소들..