이번에 공부한 내용은, 스크롤뷰에 대한 내용입니다. 요건 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] 뷰 / 셀의 재사용 애플제품을 사용하는 걸 고려해본 사람이라면 ( + 성능에 관심이 있는 사람이라면 ) 애플이 iOS 기기들의 메모리에 굉장히 인색하다는 걸 알고있을 겁니다. 제가 갤노트2를 쓰고있을 때도( 약 2년전? ) 최신 아이폰이 갤노트2와 메모리용량이 같다는 걸 듣고 왜 그렇게 만들었을까를 생각해본 적이 있었는데, 메모리관리를 되게 효율적으로 잘 할 수 있도록 OS와 앱들 자체를 만들어놔서 그렇다는 결론이 나왔었어요. 이번에 공부한 내용도 이 작은 메모리를 관리하는 방법입니다! 재사용 만약에 사용자에게 보여줘야 할 데이터가 굉장히 많은데 메모리가 이를 담기에 부족하다면, 메모리를 효율적으로 관리해서 정보를 전달할 수 있도록 해야합니다. 전달을 위해 사용하는 요소들..
[iOS 앱개발 - Swift] 테이블뷰에 커스텀셀 추가 이전까지는 기본으로 제공되는 셀의 스타일을 이용했다면, 이번포스팅에서는 원하는 모양으로 셀을 만드는 방법을 알아봅시다! 우선 이전 포스팅에서 만들어 둔 테이블 뷰를 재활용하는 걸로 할게요. 어차피 단순하게 만들어둔 테이블이라 편하게 만들어서 사용하면 될 것 같네용! 이 포스팅은 edwith 의 부스트코스 iOS 프로그래밍 강좌를 보면서 공부한 내용을 정리하는 글입니다. 3번째 프로젝트의 테이블뷰에 대한 공부예요! 모든 강의와 자료가 무료이고, 네이버 아이디로도 이용할 수 있답니다. 관심이 있으신 분은 여기로! Storyboard에 배치하기 일단 테이블뷰에 새로운 셀을 추가해줍니다. Inspector 에서 해당 셀의 Style을 Custom으로, I..
앞에서 공부했던 내용들을 이용해서 TableView의 구성을 직접 한 번 만들어봅시다! 이번의 목표는 아래 이미지의 테이블 뷰예요. 새 프로젝트를 하나 만들어서, StoryBoard에서 테이블 뷰를 하나 만들어주고, Table View, Table View Cell 을 올려줬어요. 그 다음에 Table View를 control 키와 함께 클릭해주면 보여지는 Outlet 창에서 DataSource와 Delegate를 View Controller와 연결해줍니다. 이 뷰 컨트롤러가 해당 테이블 뷰의 외형과 설정을 담당하겠다는 뜻이예요. 물론 이 내용도 코드를 통해 작성해줄 수 있습니다. 그 다음, Outlet으로 테이블 뷰를 코드와 연결해주고, 테이블 뷰에 담고싶은 데이터를 작성해줬어요. (데이터는 데이터소스..
[iOS 앱 개발 - Swift] 코코아팟으로 이미지편집기 사용하기 부스트코스에서 프로젝트를 하면서 외부기능을 가져올 일이 있었습니다. 바로 요것! 사진을 imagePicker에서 골라준 다음에, 사이즈를 조정하거나 기울기, 크롭 등의 작업을 해주기 위해 어떤 방법을 써야하나 고민을 했는데, 친구한테 물어보니 외부에 라이브러리가 많으니 참고해보라고 해서 여기저기 찾아봤어요. 그렇게 찾은게 바로 요 Mantis라는 것입니다. https://github.com/guoyingtao/Mantis guoyingtao/Mantis A photo cropping tool which mimics Photo.app. Contribute to guoyingtao/Mantis development by creating an..
이번에 공부한 내용은 아이폰과 아이패드에서 터치로 할 수 있는 다양한 동작들을 인식시키는 방법인 Gesture Recognizer입니다. 한 손가락 터치, 두 손가락 터치, 꼬집기(핀치), 회전, 스와이프 등의 동작에 대해 인식시키는 여러가지 기능이 구현되어 준비되어있고, 우리가 할 일은 이걸 사용하는 방법을 알고 적재적소에 이용하는 것이죠! 그게 개발자가 하는 일이죠 ㅋㅋㅋ 이 내용을 공부하면 우리가 흔히 "자연스럽고 익숙하다"라고 말하는 좋은 사용자 경험을 만들 수 있습니다. 모달 화면 중에 백그라운드를 터치하는 것으로도 dismiss 시킬 수 있다던지, 스와이프 동작으로 네비게이션 컨트롤러에서 뒤로 돌아갈 수 있다던지 등의 기능을 추가할 수 있어요. 이 부분에 대해 공부해두는건 꽤나 유용하고 잘 만..