전체 글124 [33일차] guard let과 if let 차이점 guard let track = item else { return } guard 뒤에 따라붙는 코드의 실행 결과가 true일 때 코드가 계속 실행됩니다. if 구문과는 다르게 guard 구문은 항상 else 구문이 뒤에 따라와야 합니다. 만약 guard 뒤 따라오는 Bool 값이 false라면 else의 블록 내부 코드를 실행하게 됩니다. 이 내부 코드에는 자신보다 상위 코드 블록을 종료하는 코드가 반드시 들어가게 됩니다. 코드 블록 종료시 return, break, continue, throw 등 제어문 전환 명령을 사용합니다. if let prefix = rawPrefix { print(prefix+name) } else { print("need prefix") } if let은 조건에 따라 다른 결.. 2020. 9. 19. [32일차] Animation은 왜 사용하는 것인가? 사용자의 앱 서비스 이용과정에서 보다 재미있게 느껴지도록 하기 위해서 'Animation' 효과를 사용하기도 한다. 그렇다면 'Animation(애니메이션)' 이라는 것은 무엇일까? 한마디로 표현하자면, "시간에 따라 뷰의 상태가 바뀌는 것"이다. Animation은 3가지만 기억하면 된다. Animation = 시작, 끝, 시간(주기) 대표적으로 위와 같이 단순히 ImageView, Label 들이 Transition(회전), usingSpringWithDamping(스프링) 효과를 사용하여 역동적으로 보여질 수도 있다. override func viewDidLoad() { super.viewDidLoad() updateUI() prepareAnimation() } override func viewDi.. 2020. 9. 15. 드로이드 나이츠(DroidNight) 1일차 세션 후기 안드로이드 개발자라면 한 번쯤 들어봤을 만한 '드로이드 나이츠' 2020 세션이 드디어 시작됐다. 기존에는 4월에 진행될 예정이었으나, 코로나19로 인해 오프라인 방식으로 개최될 수가 없게 되었다. 그래서 9월에 온라인 세션의 형태로 미루어지게 되었다. 시작하는 날인만큼 실시간 Youtube 방송의 형태로 진행되었다. 코로나 19로 인해 비대면 서비스가 활성화 되면서, 다양한 기술 세션들이 온라인으로 진행되어 집에서 편하게 접할 수 있었다. 이러한 점에 있어서는 뜻밖의 장점이다. Summary 개발자로서 현재 주기적인 리팩토링의 중요성에 대해서 느끼고 있었다. 때마침 발표자 분들도 주기적인 리팩터링과 때에 따라서는 리스트럭쳐(ReStructure)도 병행할 필요가 있다고 강조해주셨다. (주기적인 리팩토링.. 2020. 9. 5. [31일차] @IBAction과 @IBOutlet은 무엇인가? iOS 개발을 진행하다 보면, @IBAction, @IBOutlet 용어를 자주 접하게 된다. 처음에는 앱 개발과정에서 특정한 버튼을 추가 및 기능을 연결할 때 추가해야 되는 순서처럼 느꼈다. 이번 기회에 IBAction과 IBOutlet의 역할과 정의가 무엇인지 정리해보고자 한다. 참고로 etist블로그님의 글을 참고하였다. * IBAction, IBOutlet의 역할 @IBAction, @IBOutlet은 StoryBoard과 연결고리 역할을 수행한다. 즉, 사용자가 추가한 컴포넌트(버튼, 레이블)와 연결이 가능하다. - IBAction : 이벤트가 일어난 경우, 호출되는 Action을 정의한 것 - IBOutlet : 컴포넌트에 접근하기 위한 변수 * IBAction, IBOutlet의 정의 IB .. 2020. 9. 4. [30일차] @escaping 이란? Swift3에서는 함수에 클로저를 넘길 때 기본으로 non-escaping으로 지정된다. 다음과 같이 escaping과 non-escaping을 살펴보기로 한다. Non-escaping 클로저의 라이프 사이클은 다음과 같다. 1. 함수에 클로저를 넘긴다. 2. 함수는 클로저를 실행한다. 3. 함수가 리턴된다. 클로저가 함수의 바디를 탈출하지 않는 것을 살펴본다. 함수가 종료되었을 때 패스된 클로저는 범위를 벗어나게 되고 클로저에 추가 참조는 더 이상 남아있지 않다. 메모리 관리에 대한 부분을 본자면 참조를 추가하고 해지하는 작업을 기억할 수 있다. 함수가 리턴된 후에 클로저 객체의 참조 카운트는 함수가 호출되기 전과 동일하게 된다. @escaping 이란 무엇인가? 클로저(Closure)가 함수의 인자로.. 2020. 8. 28. [29일차] Protocol이란? 아래의 글은 '군옥수수님의 포스팅' 내용을 발췌한 내용입니다. Swift를 잘 다루고 여러 샘플 코드들을 정확히 이해하려면 protocol은 완벽히 익히고 있어야 한다고 생각합니다. 어떻게 보면 Swift의 강력한 기능 중 하나가 protocol이라고 생각됩니다. 그럼 지금부터 protocol에 대해서 천천히 알아가는 시간을 갖도록 하겠습니다. 애플의 공식문서에 정의된 protocol의 정의는 다음과 같습니다. "A protocol defines a blueprint of methods, properties, and other requirements that suit a particular task or piece of functionality." 직역하자면 다음과 같습니다. "protocol은 특정 작.. 2020. 8. 27. [28일차] SearchBar와 키보드 숨김 처리 넷플릭스 앱과 비슷한 디자인의 앱을 만들어본다. 콘텐츠 플랫폼 앱에서 대부분 존재하는 검색바(SearchBar)를 추가해보고 키보드 관련 동작을 테스트해보고자 한다. 1. 검색 탭으로 이동 + 상단에 검색창(SearchBar)을 추가한다. 우리들이 보통 사용하는 앱에서는 키워드를 입력 후, [검색] 버튼을 누르면 키보드 화면이 내려가고 검색결과 화면이 나오는 게 일반적이다. 하지만, 이러한 처리가 자동으로 되지는 않는다. 키보드를 내려주는 별도의 처리가 필요하다. 2. 입력한 검색어를 출력하는 함수 생성 + [검색] 버튼 이후 '키보드' 자동 내리기 처리 SearchBar, TextField .. 등등 텍스트를 기재하는 여러 UI 요소에서는 resignFirstResponder() 를 자주 사용하게 될 .. 2020. 8. 22. [알뜰Tip] 맥북에서 에어팟 소리가 이상하게 들릴 때 대처법 최근 들어 에어팟을 아이폰, 맥북 등 여러 디바이스에서 연결하다 보니 음질 저하 현상이 발견되었다. 이 현상은 맥북에서만 유독 두드러지게 나타났다. 구글링 중에 관련 대처법 포스팅이 있어서 퍼온다. 본 글은 아래 포스팅을 그대로 퍼온 글입니다. 맥북에서 에어팟 소리가 이상하게 들릴 때 대처법 가끔 맥북에 에어팟을 연결했을 때 목욕탕에 스피커를 틀어놓은 것 마냥 귀에서 소리가 울릴 때가 종종 있습니다. medium.com 가끔 맥북에 에어팟을 연결했을 때 목욕탕에 스피커를 틀어놓은 것 마냥 귀에서 소리가 울릴 때가 종종 있습니다. 그럴 때는 아래 방법대로 하면 해결이 가능합니다. 1. 시스템 환경설정 > 사운드 > 입력 탭에서 입력 기기를 AirPods에서 MacBook Pro 마이크로 바꾸기 대부분의 경.. 2020. 8. 20. [NAVER TECH CONCERT] 네이버 테크 콘서트, 현업 개발자들의 노하우 꿀팁들 놓치면 후회 ! 올해 3회차를 맞이하는 NAVER TECH CONCERT 행사가 시작되었다. 작년(2019년)까지만 해도, 오프라인에서 행사가 진행되어서 지방에 거주하고 있는 나로서는 행사 당일 참가하기가 어려웠다. 하지만 올해(2020년)는 코로나 19로 인해 비대면 방식(온라안)으로 행사가 진행된다. * 행사명 : 네이버 테크 콘서트 * 일자 : 2020. 08. 19(수) ~ 08. 20(목) 2일간 진행 (13:00 ~) 나로서는 편하게 네이버테크콘서트를 즐길 수 있는 좋은 기회가 되었다. 2020년 네이버 테크 콘서트는 총 2일 (1DAY, 2DAY)로 구성되었다. [DAY 1] 세션 : Android / iOS 을 주제로 한 세션들로 구성되어있다. - 네이버 개발자들의 다양한 꿀팁이 있으니, 현업 개발자/개발.. 2020. 8. 20. 이전 1 ··· 6 7 8 9 10 11 12 ··· 14 다음