Top 39 아이폰 개발 Best 209 Answer

You are looking for information, articles, knowledge about the topic nail salons open on sunday near me 아이폰 개발 on Google, you do not find the information you need! Here are the best content compiled and compiled by the https://toplist.maxfit.vn team, along with other related topics such as: 아이폰 개발 윈도우에서 아이폰 앱 만들기, iOS 개발, Swift 개발, iOS 개발자 전망, Apple Developer, Swift 앱 개발, iOS 개발 언어, 애플 코딩 프로그램


아이폰개발 시작하기 / 초보개발자 / 기본 튜토리얼 / 스위프트 / 앱만들기
아이폰개발 시작하기 / 초보개발자 / 기본 튜토리얼 / 스위프트 / 앱만들기


개발 – Apple Developer

  • Article author: developer.apple.com
  • Reviews from users: 49439 ⭐ Ratings
  • Top rated: 3.5 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 개발 – Apple Developer Xcode. Xcode 개발자 도구에는 iOS, iPadOS, macOS, tvOS 및 watchOS용 앱을 만드는 데 필요한 모든 것이 포함되어 있습니다. Xcode의 … …
  • Most searched keywords: Whether you are looking for 개발 – Apple Developer Xcode. Xcode 개발자 도구에는 iOS, iPadOS, macOS, tvOS 및 watchOS용 앱을 만드는 데 필요한 모든 것이 포함되어 있습니다. Xcode의 … Apple 기술이 탑재된 앱 개발에 필요한 도구와 리소스를 마련해 보십시오.
  • Table of Contents:

Xcode

Swift

SwiftUI

Apple 플랫폼

기술

TestFlight를 이용해 앱 테스트하기

Developer Footer

개발 - Apple Developer
개발 – Apple Developer

Read More

Apple Developer

  • Article author: developer.apple.com
  • Reviews from users: 18137 ⭐ Ratings
  • Top rated: 4.2 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about Apple Developer Apple 개발자를 위한 새로운 기능 · App Store 전문가와 만나보세요 · Apple Entrepreneur Camp · iOS 16 · iPadOS 16 · macOS 13 · watchOS 9 · WWDC22. …
  • Most searched keywords: Whether you are looking for Apple Developer Apple 개발자를 위한 새로운 기능 · App Store 전문가와 만나보세요 · Apple Entrepreneur Camp · iOS 16 · iPadOS 16 · macOS 13 · watchOS 9 · WWDC22. Apple 플랫폼에서 개발할 절호의 기회입니다
  • Table of Contents:

Apple Developer Program

Developer Footer

Apple Developer
Apple Developer

Read More

고등 교육 – 앱 개발 – Apple (KR)

  • Article author: www.apple.com
  • Reviews from users: 43215 ⭐ Ratings
  • Top rated: 3.8 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 고등 교육 – 앱 개발 – Apple (KR) 각기 다른 전공을 가진 학생들이 모두 이 첨단 인큐베이팅 공간에 모여 자신들이 가장 몰두하고 있는 문제를 해결할 iOS 앱을 개발하고 있습니다. …
  • Most searched keywords: Whether you are looking for 고등 교육 – 앱 개발 – Apple (KR) 각기 다른 전공을 가진 학생들이 모두 이 첨단 인큐베이팅 공간에 모여 자신들이 가장 몰두하고 있는 문제를 해결할 iOS 앱을 개발하고 있습니다. 코딩 초보부터 이미 프로급 개발 실력을 갖춘 학생에 이르기까지, 아이디어를 앱으로 구현하는 데 도움이 되는 커리큘럼과 리소스를 활용할 수 있습니다.
  • Table of Contents:

상하이 비즈니스 스쿨

개발자 도구 및 플랫폼

모두에게 열린 기회

Swift로 개발하기

리소스

Apple과 함께하는 고등 교육에 대해 더 알고 싶다면

Apple Footer

고등 교육 - 앱 개발 - Apple (KR)
고등 교육 – 앱 개발 – Apple (KR)

Read More

iOS 개발환경 세팅하기 · 40시간만에 Swift로 iOS 앱 만들기

  • Article author: devxoul.gitbooks.io
  • Reviews from users: 38457 ⭐ Ratings
  • Top rated: 4.9 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about iOS 개발환경 세팅하기 · 40시간만에 Swift로 iOS 앱 만들기 iOS 개발에 앞서 가장 먼저 해야할 일은 개발환경을 세팅하는 것입니다. iOS는 Xcode를 사용해서 개발할 수 있습니다. JetBrain에서 개발한 AppCode를 사용해도 되지만 … …
  • Most searched keywords: Whether you are looking for iOS 개발환경 세팅하기 · 40시간만에 Swift로 iOS 앱 만들기 iOS 개발에 앞서 가장 먼저 해야할 일은 개발환경을 세팅하는 것입니다. iOS는 Xcode를 사용해서 개발할 수 있습니다. JetBrain에서 개발한 AppCode를 사용해도 되지만 …
  • Table of Contents:
iOS 개발환경 세팅하기 · 40시간만에 Swift로 iOS 앱 만들기
iOS 개발환경 세팅하기 · 40시간만에 Swift로 iOS 앱 만들기

Read More

[개발자가 궁금한가요?] iOS 개발을 시작하려 하는 당신에게 – 모비인사이드 MOBIINSIDE

  • Article author: www.mobiinside.co.kr
  • Reviews from users: 7062 ⭐ Ratings
  • Top rated: 4.3 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [개발자가 궁금한가요?] iOS 개발을 시작하려 하는 당신에게 – 모비인사이드 MOBIINSIDE 친구한테 ‘왜 갑자기 iOS 개발을 하냐’고 물어봤는데, 자기 핸드폰이 아이폰이어서 그런다 했다. 안드로이드는 개발해도 자기가 못쓴다고. …
  • Most searched keywords: Whether you are looking for [개발자가 궁금한가요?] iOS 개발을 시작하려 하는 당신에게 – 모비인사이드 MOBIINSIDE 친구한테 ‘왜 갑자기 iOS 개발을 하냐’고 물어봤는데, 자기 핸드폰이 아이폰이어서 그런다 했다. 안드로이드는 개발해도 자기가 못쓴다고. [개발자가 궁금한가요?] iOS 개발을 시작하려 하는 당신에게 – 테크 모비인사이드 MOBIINSIDE
    국내외 IT, 마케팅, 비즈니스 소식을 전하는 스타트업 미디어
  • Table of Contents:
[개발자가 궁금한가요?] iOS 개발을 시작하려 하는 당신에게 - 모비인사이드 MOBIINSIDE
[개발자가 궁금한가요?] iOS 개발을 시작하려 하는 당신에게 – 모비인사이드 MOBIINSIDE

Read More

아이폰 어플 만들기 01 – iOS 개발환경 세팅하기

  • Article author: shanepark.tistory.com
  • Reviews from users: 46377 ⭐ Ratings
  • Top rated: 4.0 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 아이폰 어플 만들기 01 – iOS 개발환경 세팅하기 iOS는 Xcode를 사용해 개발 할 수 있으며, 당연하지만 Mac book, Mac Mini , iMac 등의 Mac 제품이 필요합니다. image-20210729220113754. 평점 상태가.. …
  • Most searched keywords: Whether you are looking for 아이폰 어플 만들기 01 – iOS 개발환경 세팅하기 iOS는 Xcode를 사용해 개발 할 수 있으며, 당연하지만 Mac book, Mac Mini , iMac 등의 Mac 제품이 필요합니다. image-20210729220113754. 평점 상태가.. 아이폰 어플 만들기 01 – iOS 개발환경 세팅하기 iOS 개발에 앞서 개발환경을 세팅해야 합니다. iOS는 Xcode를 사용해 개발 할 수 있으며, 당연하지만 Mac book, Mac Mini , iMac 등의 Mac 제품이 필요합니다. 평..Shane’s planet
  • Table of Contents:
아이폰 어플 만들기 01 - iOS 개발환경 세팅하기
아이폰 어플 만들기 01 – iOS 개발환경 세팅하기

Read More

iOS 개발 강좌 | 온라인으로 배워보세요
| Udemy

  • Article author: www.udemy.com
  • Reviews from users: 28231 ⭐ Ratings
  • Top rated: 3.5 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about
    iOS 개발 강좌 | 온라인으로 배워보세요
    | Udemy 최고 평점의 iPhone 앱 개발 강사로부터 iOS에서 앱을 개발하는 방법을 배워보세요. Udemy는 Apple 제품을 위한 고품질 애플리케이션을 만들 수 있도록 지원하는 Xcode … …
  • Most searched keywords: Whether you are looking for
    iOS 개발 강좌 | 온라인으로 배워보세요
    | Udemy 최고 평점의 iPhone 앱 개발 강사로부터 iOS에서 앱을 개발하는 방법을 배워보세요. Udemy는 Apple 제품을 위한 고품질 애플리케이션을 만들 수 있도록 지원하는 Xcode … 최고 평점의 iPhone 앱 개발 강사로부터 iOS에서 앱을 개발하는 방법을 배워보세요. Udemy는 Apple 제품을 위한 고품질 애플리케이션을 만들 수 있도록 지원하는 Xcode, Swift 및 일반 iOS 앱 개발 강좌를 제공합니다.
  • Table of Contents:

모든 iOS 개발 강의

아직 잘 모르시겠다고요 모든 강의는 30일 내 환불이 보장됩니다

iOS 개발에 대해 자세히 알아보기

무료 iOS 개발 수업


    iOS 개발 강좌 | 온라인으로 배워보세요
 | Udemy
iOS 개발 강좌 | 온라인으로 배워보세요
| Udemy

Read More

[번역] 아이폰 앱 개발자가 알아야 할 14가지

  • Article author: brunch.co.kr
  • Reviews from users: 7139 ⭐ Ratings
  • Top rated: 3.9 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [번역] 아이폰 앱 개발자가 알아야 할 14가지 (최근에는 스위프트에 푹 빠져있는) 아이폰 앱(이하 ‘iOS’) 개발자로서 그간 많은 팀에서 처음부터 끝까지 앱을 만들기도 하고, 유지보수를 담당하기도 … …
  • Most searched keywords: Whether you are looking for [번역] 아이폰 앱 개발자가 알아야 할 14가지 (최근에는 스위프트에 푹 빠져있는) 아이폰 앱(이하 ‘iOS’) 개발자로서 그간 많은 팀에서 처음부터 끝까지 앱을 만들기도 하고, 유지보수를 담당하기도 … 무엇을 모르는지 알고 가기 | 아래 게시글을 번역하였습니다. 예전에 “좋은 안드로이드 앱 개발자 되는 법”이라는 글을 공유한 적이 있다. 이후에 “좋은 아이폰 앱 개발자 되는 법”이라는 글을 쓰려다 잊고 있었는데, 최근에 읽은 위의 글을 번역해서 공유하면 좋겠다는 생각이 들었다. 이 글은 개발에 대한 이해가 완전히 없는 분 보다는 다른 분야에 개발 경험이 있는 분이거나, 아이폰 개발
  • Table of Contents:
[번역] 아이폰 앱 개발자가 알아야 할 14가지
[번역] 아이폰 앱 개발자가 알아야 할 14가지

Read More

한국에 아이폰 개발자가 적은 이유

  • Article author: www.wanted.co.kr
  • Reviews from users: 40132 ⭐ Ratings
  • Top rated: 4.5 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 한국에 아이폰 개발자가 적은 이유 안녕하세요 개발하는 정대리입니다. 오늘도 빡코딩 하고 계신가요? ‍ 최근에 작은개발자님의 “이럴 줄 알았으면 아이폰 개발할껄! …
  • Most searched keywords: Whether you are looking for 한국에 아이폰 개발자가 적은 이유 안녕하세요 개발하는 정대리입니다. 오늘도 빡코딩 하고 계신가요? ‍ 최근에 작은개발자님의 “이럴 줄 알았으면 아이폰 개발할껄! 연봉, 연봉정보, 이력서, 이력서양식, 스타트업 채용, 대기업 채용, 채용정보, 개발자 채용, 마케터 채용, 디자이너 채용, 취업, 구인, 구직, 헤드헌터, 헤드헌팅, 면접제안, 기업정보, 커리어, 커리어개발, 기업정보, 프리랜서, 외주, 외주사이트, 직장인부업, 직무개발, 직무교욱, 커리어교육, 직장인교육, 컨퍼런스, 온라인컨퍼런스안녕하세요 개발하는 정대리입니다. 오늘도 빡코딩 하고 계신가요? 🔥👨‍💻 최근에 작은개발자님의 “이럴 줄 알았으면 아이폰 개발할껄!!” 이란 글을 보고 해당 주제로 글을 올리면 좋을거 같다는 생각이 들어서 한번 작성해 볼까 합니다. (저는 개발자 커리어를 안드로이
  • Table of Contents:
한국에 아이폰 개발자가 적은 이유
한국에 아이폰 개발자가 적은 이유

Read More


See more articles in the same category here: 533+ tips for you.

[개발자가 궁금한가요?] iOS 개발을 시작하려 하는 당신에게

“어떻게 개발을 시작해야 할지 모르겠어요.”

멘토링을 하다 보면 전공자이지만 개발을 뒤늦게 시작한 대학생, 혹은 비전공자이지만 개발을 경험해보고 싶은 분들이 늘 이런 질문을 한다. 그때마다 나는 이렇게 대답한다.

“일단 한번 만들어보세요.”

아이디어를 정하고, 그 아이디어를 구현하고 시장에 내놓는 것을 의미한다. iOS 개발뿐 아니라 모든 개발 분야에 해당한다고 생각한다. 나 역시 iOS 개발을 실제 앱 제작으로 시작했고 성공적으로 앱스토어에 등록할 수 있었다. iOS 개발을 1도 모르고 앱스토어에 등록까지 성공한 내 얘기를 한번 해보고자 한다.

2016년 12월, 모든 대학생이 그렇듯 나 역시도 이제 취업을 준비해야 하는 4학년이 다가오고 있었다. 당시 나는 취업 시장에 뛰어들기엔 흔히 말하는 ‘스펙’이 없었다. 다들 갖고 있는 영어 점수도 없었고 공모전 수상, 대외 활동 등도 경험한 적이 없었다. 당시 갖고 있었던 기술 스펙은 Java를 활용한 안드로이드 개발을 하는 정도였다.(물론 전혀 잘하지 않았다. 만들어 본 것이라곤 화면 두 개 짜리 단순한 앱)

‘안드로이드 개발은 경험해봤으니까, 그럼 이 기술을 활용해서 취업에 도전해볼까?’

나는 박효신이라는 가수를 참 좋아한다. 여자 친구와 박효신 노래의 후렴 부분만 듣고 어떤 노래인지 맞히는 게임을 하던 도중 후렴만 듣고 어떤 노래인지 맞히는 앱을 만들어보는 건 어떨까 생각했다. 너무 재밌을 것 같았다.

아이디어가 정해졌으니 이제 함께할 사람만 구하면 된다. 난 개발을 잘 못 하니까.

“친구야 나랑 이거 같이 만들래?”

대학 동기이자 박효신을 좋아하고 ‘1초 노래 맞히기’라는 주제로 안드로이드 앱을 만들어 시장에도 내놓은 경험이 있던 친구에게 물어봤다. 당연히 안드로이드를 해봤고, 프로젝트를 좋아하는 친구이기에 같이 하자고 할 줄 알았다. 나의 예상과 다르게 친구가 말했다.

“나는 이제 iOS 개발만 할 거야.”

‘iOS? 그것도 개발하는 사람이 있어?’라는 생각이 들 정도로 당시 우리 학교에는 iOS를 개발하는 선배나 동기가 없었다. 친구한테 ‘왜 갑자기 iOS 개발을 하냐’고 물어봤는데, 자기 핸드폰이 아이폰이어서 그런다 했다. 안드로이드는 개발해도 자기가 못쓴다고. 이제 iOS도 Swift라는 언어를 사용해서 개발하기 쉽다고도 해줬다.

“그럼 박효신 노래 맞추는 앱, 이거 iOS로 하자.”

안드로이드도 못 하면서 쥐뿔도 모르는 iOS를 같이하자고 해버렸다. 그랬더니 친구가 맥북부터 사라고 했다.

맥.. 북? 나는 삼성 노트북밖에 없었고 iOS 개발을 하려면 맥북이 필요하다는 것이었다. 다행히도 명절에 받았던 돈과 아르바이트 비로 조금씩 모은 통장에 백만 원 조금 넘게 있었다. 꽤나 빠른 실행력으로 과감하게 중고나라 미개봉 맥북을 구입했다. 이제 장비도 있겠다, 겨울 방학 동안 절(?)에 들어가서 공부하는 마음으로 친구가 있는 학교 기숙사를 신청했다. 자 이제 시작이다.

기숙사 생활이 시작되었고 친구가 일주일 정도 바빴기에 나는 그사이에 iOS 공부가 필요했다. 친구에게 Swift와 iOS에 대해 빠르게 공부할 수 있는 자료를 공유 받았고 공부를 시작했다. 애플에서 기본으로 제공하는 컴포넌트만 사용해도 예뻐지는 앱을 보며 iOS라는 플랫폼이 매력적으로 다가왔고 내가 원하는 것을 얼른 만들어보고 싶은 마음이 샘솟았다.

“내가 한번 노래 맞추는 부분을 먼저 해볼게!”

노래 맞추기 앱의 핵심 기능인 노래를 듣고 사용자가 입력한 게 정답인지 확인하는 부분을 해보고 싶었다. 당연하게도 일주일 간 공부했던 내용으로는 해결하지 못하는 문제들이 많았다.

– 노래는 어떻게 틀어야 하지?

– 1초만 어떻게 재생하지?

– 등등..

구글의 도움을 받자.

‘iOS audio play’, ‘iOS audio one second play’ 등 문법은 안 맞지만 어떻게든 내가 원하는 해답을 찾기 위해 이틀 밤을 꼬박 지새워 검색하고 구현했다. 이해하지 못하는 것이 있더라도 만드는 것에 초점을 두었고 나름대로 프로토타입(?)을 만들었다.

“좋아, 이제 디자인을 입히고 저작권 문제만 해결하면 될 것 같아!”

나름의 프로토타입(?)이 완성됐으니 이제 노래 저작권과 예쁜 디자인이 필요했다. 디자인은 여러 앱을 비교해보며 적용할 수 있을 것 같았지만 노래 저작권은 어떻게 해결해야 할지 고민이었다. 무료로 음악을 들을 수 있는 ‘사운드 클라우드‘라는 서비스를 이용해서 노래를 사용할 수 있었지만, 노래가 몇 곡 없다는 점이 아쉬웠기에 과감하게 메일을 썼다.

당연하게도 답장은 오지 않았다.

저작권 문제를 해결하지 못한다면, 퀴즈로 낼 수 있는 노래가 얼마 없다면 이 앱은 만들 수 없었다. ‘안 되겠구나, 포기해야겠다.’ 하던 중 친구가 가수 상관하지 말고 1초 노래 맞추기 iOS 버전을 만드는 것은 어떻냐고 제안했다. 친구가 제안한 앱은 이미 안드로이드 버전이 있었고, 디자인과 서버가 준비되어있었기에 내 입장에선 땡큐였다.

2주 안에 만들어보자!

본격적으로 개발하기에 앞서 우리는 목표를 정했다. iOS에 대해 잘 모르지만 일단 앱은 빠르게 만들어보자는 것이었다. 하나부터 열까지 모든 것이 어려웠다. 모든 기기에 대응하는 UI를 구현하는 것도 어려웠고, 서버와 통신하는 것도 어려웠고, 발생하는 오류를 해결하는 것도 어려웠다. 모르는 것은 구글 검색과 애플 공식 문서를 찾아보며 목표를 이루기 위해 하루의 절반 이상을 컴퓨터 앞에만 앉아있었다. (실제로 기숙사 공용 공간에서 밥 먹는 동안 TV 보는 것 이외에 모든 시간을 개발에만 집중했던 것 같다) 그렇게 2주의 시간이 흘렀고 우리는 앱을 완성했다.

이렇게 나의 첫 번째 앱은 당당하게 앱스토어에 등록되었다. 이후 iOS 개발을 본격적으로 시작했고 여러 프로젝트를 통해 나를 발전시켰다. 이런 경험을 토대로 나는 개발을 시작하려는 이들에게 일단 한번 만들어보라고 말한다.

물론 프로그래밍 언어, 개발하고자 하는 플랫폼, 분야가 어려울 수 있다. 목표가 있다면 일단 한번 만들어보라. 구글에서 코드를 그대로 복사해도 좋다. 완성한 후 흩어져 있는 지식을 차곡차곡 모으면 된다. 얼른 머릿속에만 있던 멋진 아이디어를 나의 서비스로 표현해보자.

다음은 공부했을 때 참고했던 링크입니다.

윤민섭님의 브런치에 게재한 글을 편집한 뒤 모비인사이드에서 한 번 더 소개합니다.

아이폰 어플 만들기 01 – iOS 개발환경 세팅하기

반응형

아이폰 어플 만들기 01 – iOS 개발환경 세팅하기

iOS 개발에 앞서 개발환경을 세팅해야 합니다.

iOS는 Xcode를 사용해 개발 할 수 있으며, 당연하지만 Mac book, Mac Mini , iMac 등의 Mac 제품이 필요합니다.

평점 상태가..

당연하게도 Xcode는 Appstore에서 다운 받을 수 있습니다. 하지만..

아름다운 Size를 보시라..

용량이 무려 11.7 GB 입니다. 다들 아시겠지만 앱스토어에서 뭔가 다운받을때는 속도가 애매합니다.

그래서. https://developer.apple.com/download/all/ 에서 다운받는 것을 권장합니다.

해당 페이지에 들어가면 Xcode beta 버전이 제일 먼저 보이는데요, 스크롤을 조금 내리면

Appstore에 올라온 버전과 일치하는 버전을 찾을 수 있습니다. Xcode 12.5.1.xip 를 클릭해 10.98 GB 파일을 다운 받습니다.

34.5 MB/sec 로 나쁘지 않은 다운로드 속도가 나옵니다.

App Store에서 불안전한 속도로 다운 받는것보다 개인적으로는 홈페이지 다운을 권장합니다.

다운받는 동안 command Line Tools 가 설치되었는지도 확인 해 보는게 좋겠는데요, 보통 Homebrew를 사용하신다면 설치 되어 있을 확률이 높습니다.

터미널에 아래와 같이 입력해 봅니다.

gcc –version

저처럼 설치 경로나 버전에 대한 정보가 나온다면 설치가 되어 있는 거고요, no developers tools were found at … 라며 에러가 나온다면 설치되어 있지 않은 겁니다.

혹시 CLT가 설치 되어 있지 않으면

xcode-select –install

을 입력해서 설치하시면 됩니다. 아니면 저 위에서 다운 받아도 되겠네요.

Xcode 다운로드가 완료되었습니다.

바로 실행해서 압축을 풀어 줍니다. 용량이 크다보니 시간이 제법 소요됩니다.

체감상 한 5분은 걸린 듯 하니 무작정 기다리기 보다 할일을 하고 있는게 정신 건강에 이롭습니다.

이렇게 짠 ! 하고 압축이 풀립니다.

바로 Applications로 옮겨주고, .xip 파일을 삭제해 주시면 됩니다.

바로 실행 해 보겠습니다.

SDK Lisence Agreement. 즉 Software Developer Kit 사용에 대한 동의를 합니다.

실행이 완료되었습니다. Apple Silicon에서 native로 실행되어서 그런지, 대용량의 어플리케이션 치고는 가볍게 열리는 느낌입니다.

제일 위에 있는 Create a new Xcode project를 클릭해 보겠습니다.

몇가지 template들이 나오는데요

iOS를 선택하고 App을 만들어 보도록 하겠습니다.

여러가지 설정 항목들이 나옵니다.

Product Name 프로젝트 이름 입니다. 앱 이름은 나중에 따로 설정 할 수 있으며, 설정하지 않으면 프로젝트의 이름이 앱 이름으로 사용됩니다. UpperCamelCase로 작성하도록 합니다.

Team 팀 이름 입니다. 어플리케이션이 배포될 때 이름으로 들어갈 듯 합니다.

Organization Identifier Bundle Identifier를 생성하는데 사용되는 prefix 입니다. 웹 프로젝트 만들었을 때 처럼, 도메인을 뒤집어서 사용하는 것이 컨벤션 입니다.

나머지는 따로 설정 하지 않겠습니다.

Team은 선택 하면 personal team Profile을 다운 받을 수 있습니다.

Next 버튼을 누릅니다.

저장할 경로를 선택하게 되는데요. 적당히 원하는 곳을 지정합니다.

Source Control : Create Git repository on my Mac은, 해당 프로젝트를 Git으로 버전관리 하실 생각이면 체크 하시면 됩니다. git init 하지 않아도 되고 참 편하네요.

어차피 하위 폴더가 만들어지고, 해당 폴더에 .git이 생성되기 때문에 프로젝트를 위해 따로 폴더를 생성 해 주실 필요는 없습니다.

저는 Github 폴더를 선택하겠습니다. Create를 클릭해 생성합니다.

새로운 iOS 어플리케이션을 만드셨습니다 !

좌측에 보이는 Navigator area 입니다.

제일 왼쪽부터

Show the Project navigator

Show the Source Control navigator

Show the Symbol Navigator

Show the Find Navigator

그 외에 Issue, Test, Debug, Break Point, Report 등이 있습니다. 한번씩 편하게 클릭해보면 됩니다.

디버그 아이콘이 정말 재밌습니다.

가장 기본적인 Show the Project Navigator를 많이 사용하게 되겠네요.

Editor Area 입니다.

Navigator Area에서 선택을 할 때마다, Editor Area에 표시되는 내용이 변경됩니다.

예를 들어, ContentView.swift를 선택한다면

이렇게, 화면 구성을 확인 할 수 있습니다.

Info.plist 에는 설정값들을 기록합니다.

우측의 Utilities pane 입니다.

Editor area에서 무엇을 클릭하는지에 따라 보이는게 달라집니다.

물론 몇가지 Tab이 더 있습니다만 넘어 가겠습니다.

상단의 Xcode toolbar 입니다

앱을 실행할 수 있는 버튼과 정지하는 버튼, 그리고 그 우측에는

App을 실행할 destination 을 선택 할 수 있는 dropbox가 있습니다.

그리고 중간에는

status bar가 있습니다.

앱 실행 버튼을 눌러 빌드를 한번 해 보도록 하겠습니다.

금방 아이폰 앱이 하나 실행됩니다. Command + 1 ~ Command 4 버튼을 입력해 Simulator의 사이즈를 변경 할 수 있습니다.

1에서 3 까지 점점 커지며 4는 모니터에 맞는 사이즈로 지정이 됩니다.

🛑 버튼을 눌러 simulator를 종료 할 수 있습니다.

이제 화면에 몇가지 UI Elements를 추가해 보도록 하겠습니다.

상단의 View – > Show Libary 를 클릭하거나 Shift + Command + L 을 입력합니다.

바로 Libarary 를 확인 할 수 있습니다. Java Swing이나 PyQt가 생각나네요.

Label을 검색 하고

보이는 것 처럼 드래그를 하는데, Command 키를 누른 상태로 드래그 하면 덮어 쓸 수도 있습니다.

마지막으로 Hello world로 글자를 변경하고 마치겠습니다.

첫번째 아이폰 어플리케이션을 만드셨습니다 !

반응형

[번역] 아이폰 앱 개발자가 알아야 할 14가지

아래 게시글을 번역하였습니다.

예전에 “좋은 안드로이드 앱 개발자 되는 법”이라는 글을 공유한 적이 있다. 이후에 “좋은 아이폰 앱 개발자 되는 법”이라는 글을 쓰려다 잊고 있었는데, 최근에 읽은 위의 글을 번역해서 공유하면 좋겠다는 생각이 들었다. 이 글은 개발에 대한 이해가 완전히 없는 분 보다는 다른 분야에 개발 경험이 있는 분이거나, 아이폰 개발을 갓 시작한 분이 보면 도움이 된다. (개발을 아예 모르는 분이 읽으면 너무 어려울 것이니, 살포시 뒤로 가기를 눌러주시면 된다.)

참고로 원문은 중언부언하는 부분이 많아서 요점을 해칠 경우에는 과감히 생략하였다.

바쁜 직장인을 위한 아이폰 앱 온라인 강의에 관심이 있으신가요?

(최근에는 스위프트에 푹 빠져있는) 아이폰 앱(이하 ‘iOS’) 개발자로서 그간 많은 팀에서 처음부터 끝까지 앱을 만들기도 하고, 유지보수를 담당하기도 했다. 이 업계에서 일하는 동안 한 문장이 나를 사로잡았다: “설명할 수 없는 건 이해하고 있는 것이 아니다.” 그래서 내가 매일 해오고 있는 일을 충분히 이해하기 위한 시도로서 개인적으로 생각하는 ‘iOS 개발에 필수적인 요소 목록을 정리해보기로 했다. 각 부분들에 대해서 깔끔하게 설명하려고 노력해볼 생각이다. (부디 내 글에 잘못된 부분이 있다면 편하게 알려주길 바라며, 꼭 알아야 한다고 생각하는 다른 부분이 있다면 언제든지 말해주길 바란다.)

주제: 코드 관리, 아키텍처 패턴, 오브젝티브-C와 스위프트(역주: iOS 개발은 두 가지 언어로 개발이 가능하다), 리엑트, 의존성 관리 매니저, 정보 저장, 컬렉션 뷰와 테이블 뷰, UI, 프로토콜, 클로져, 스킴(Scheme), 테스트, 위치 정보, 여러 외국어 지원

1. 코드 관리

“당신의 입사를 축하한다! 이제 저장소(repository)에서 코드를 가져와서 일을 시작하자.”

“잠깐, 뭐라고?”

모든 프로젝트는 심지어 당신 혼자서 개발하는 프로젝트라도 코드 관리가 필요하다. 가장 일반적인 코드 관리 방식은 Git과 SVN이다.

SVN은 중앙 집중식 버전 관리 시스템이다. 이것은 중앙식 저장소이기 때문에 작업을 위한 사본이 생성되고, 저장소에 접근을 위한 네트워크 연결이 필요하다. 변경 기록은 서버의 저장소에서만 볼 수 있다. 그리고 작업 중인 사본은 항상 가장 최신 버전으로 유지된다.

아래는 SVN과 함께 가장 많이 사용하는 툴이다:

http://versionsapp.com/

Git은 분산형 버전 관리 시스템이다. 당신은 작업 가능한 로컬 저장소(역주: 본인 컴퓨터를 의미함)를 가지게 될 것이다. 그리고 이 저장소는 필요할 때만 (역주: 서버에서 데이터를 가져오거나, 서버 데이터를 업데이트 할 때) 인터넷을 연결해서 서버와 동기화시켜주면 된다. 그리고 서버와 로컬 저장소는 각자가 모두 완벽한 변경 기록을 갖고 있다.

아래는 Git과 함께 가장 많이 사용하는 툴이다:

2. 설계 방식 (Architecture patterns)

만약 당신이 프로젝트를 시작하기 전이라면 어떤 설계(혹은 아키텍처)를 할 것인지 정해야 한다. 만약 당신이 시작한 프로젝트가 아니라면 (역주: 다른 사람이 시작한 프로젝트라면), 이미 구현되어있는 설계를 따라야 한다.

MVC, MVP, MVVM, VIPER 등 모바일 앱 개발에는 다양한 패턴이 존재한다. 이 중에서 iOS 개발에 주로 사용되는 패턴을 간단하게 살펴보도록 하자.

MVC — 모델(Model), 뷰(View), 컨트롤러(Controller)의 각각 첫 글자를 딴 이름이다. 컨트롤러는 모델과 뷰 사이에서 다리 역할을 한다. 뷰와 컨트롤러는 매우 강하게 연결되어 있어서, 컨트롤러에 모든 것을 쓰게 된다. 무슨 말이냐고? 간단히 말하자면, 당신이 복잡한 뷰를 만들수록 당신의 컨트롤러가 어마어마하게 커질 거라는 이야기다. 이걸 피하는 방법이 몇 가지가 있는데, 모두 MVC의 규칙을 해치는 방법들이다. 그리고 MVC 패턴의 다른 단점 중에 하나는 테스트다. 만약 당신이 테스트를 한다면, 아마 3가지 구성 요소 중 모델만 테스트를 할 수 있을 거다. 왜냐면 모델만이 다른 것과 분리가 되어있기 때문이다. MVC 패턴을 사용할 때 장점은 이것이 직관적이라는 것과 대부분의 iOS 개발자들이 이것에 익숙하다는 것이다.

MVC — Visual Model

MVVM — 모델(Model), 뷰(View), 뷰모델(ViewModel)의 앞글자를 딴 형태이다. 보통 리엑트티브 프로그래밍으로 이뤄지고, 뷰와 뷰모델 사이에 연결고리(Bindings)가 있다. 이 연결고리를 통해서 뷰모델은 모델에 변화를 주고, 그리고 이건 다시 자동적으로 뷰를 업데이트하면서, 뷰모델도 변경한다. 뷰 모델은 뷰와 연결고리는 가지고 있되, 뷰에 대해서 아무것도 알지 못하기 때문에 테스트를 용이하게 할 수 있고 많은 양의 코드를 줄일 수 있다.

MVVM — Visual Model

더 자세한 설명이나 다른 패턴에 대한 정보가 필요하다면, 다음 글을 읽어보기를 권한다:

‘어느 설계를 택하느냐’가 그렇게 중요해 보이지 않을지도 모른다. 하지만 잘 구조화되고 정리된 코드는 두통을 미연에 방지할 수 있다. 모든 개발자가 종종 저지르는 큰 실수는 시간을 아껴보겠다며 코드를 정리하지 않는 것이다. 만약 당신이 동의하지 않는다면, 벤자민 프랭클린의 이 말을 마음에 세기자.

일 분 정리할 때마다 한 시간씩 절약할 수 있다.

— 벤자민 프랭클린

목표는 직관적이고 읽기 쉬운 코드를 짜서, 쉽게 프로그램을 완성하고 유지 보수하는 것이 되어야 한다.

3 — 오브젝티브-C( Objective-C) vs 스위프트

앱을 만들기 위해서 프로그래밍 언어를 결정할 때, 각 언어가 어떤 특징을 가지고 있는지 알아야 한다. 나보고 선택하라고 한다면, 난 개인적으로 스위프트를 추천한다. 왜냐고? 솔직히 말해서 오브젝티브-C는 스위프트에 비해 나은 점이 별로 없다. 그리고 초기에 오브젝티브-C로만 쓰여있던 거의 모든 예제와 튜토리얼이 이제는 스위프트로 업데이트가 완료 되었다.

스위프트는 많은 부분에서 우수하다. 읽기 쉽고, 사람의 언어(영어)와 닮아있고, C로 구현되지 않았기 때문에 전통적인 규칙들을 따르지도 않는다. 오브젝티브-C를 아는 사람이라면, 더 이상 문장 끝에 ‘;’이 필요 없고, 메서드도 괄호가 필요 없고, if문을 쓸 때도 괄호로 감싸주지 않아도 된다. 그리고 유지 보수에도 용이한데, (오브젝티브-C의) .h와 .m 파일 구분 없이 .swift 파일 하나만 있으면 된다. 이건 Xcode와 LLVM 컴파일러가 의존성을 찾아서 자동으로 빌드를 구성해주기 때문이다. 무엇보다 쓸데없는 코드를 적을 필요가 없다.

못 믿겠다고? 스위프트는 안전하고, 빠르고, (대부분) 메모리를 알아서 관리해준다. 오브젝티브-C에서 초기화되지 않은 포인터 변수를 메서드에 넘겨줬을 때 어떤 일이 벌어지는지 알고 있나?

(역주: 이 부분은 지나치게 기술적인 부분이 많아서 생략하였습니다.)

4 — 리엑티브 한 코딩, 혹은 그렇지 않은 코딩?

함수형 리엑티브 프로그래밍은 새로운 유행이다. 이 프로그래밍 방법의 목적은 비동기적인 동작들과 이벤트/데이터 흐름을 쉽게 하는 것이다. 스위프트는 Observable 인터페이스를 통해서 리엑티브 프로그래밍을 구현한다.

간단히 코드를 통해서 예시를 들어보겠다. 팀과 그의 여동생 제니가 게임 콘솔을 새로 사고 싶어 한다고 말을 해보자. 팀이 매주 부모님으로부터 5유로를 받고 있고, 제니도 마찬가지다. 그런데 제니는 매주 신문 배달을 하면서 5유로를 더 벌고 있다. 만약 그들이 같은 금액을 모은다면, 우리는 그 게임 콘솔을 살 수 있을지 매주 확인을 해볼 수 있겠다. 매번 각자의 보유 금액이 변화하면 둘의 합계가 계산된다. 그리고 만약 그 합이 콘솔을 살만큼 충분하다면 이 메시지를 isConsoleAttainable이라는 변수에 담아보자. 우리는 이 값을 구독(subscribe)함으로 인해서 메시지를 확인할 수 있다.

// Savings

let timmySavings = Variable(5)

let jennySavings = Variable(10)

var isConsoleAttainable =

Observable

.combineLatest(timmy.asObservable(), jenny.asObservable()) { $0 + $1 }

.filter { $0 >= 300 }

.map { “\($0) is enough for the gaming console!” }

// Week 2

timmySavings.value = 10

jennySavings.value = 20

isConsoleAttainable

.subscribe(onNext: { print($0) }) // Doesn’t print anything

// Week 20

timmySavings.value = 100

jennySavings.value = 200

isConsoleAttainable

.subscribe(onNext: { print($0) }) // 300 is enough for the gaming console!

이것은 함수형 리엑티브 프로그래밍으로 무엇을 할 수 있는지에 대한 아주 피상적인 부분에 불과하다. 당신이 이것과 익숙해진다면 전혀 다른 세상이 열릴 것이다. 그러면 이제 사람들이 많이 사용하는 MVC 패턴을 넘어 다른 아키텍처를 활용할 수 있는 기회도 생긴다. 바로 MVVM이다!

스위프트 함수형 리엑티브 프로그래밍 세계의 가장 큰 경쟁자 두 명을 알아보자:

RxSwift

ReactiveCocoa

5 — 의존성 관리자(Dependency Manager)

(역주: 프로그래밍을 하다 보면 모든 걸 직접 구현하는 것이 아니라, 다른 사람들이 이미 구현해놓은 많은 코드를 사용하게 되고 이것을 ‘라이브러리(library)’, ‘의존성(dependency)’라고 부른다. 의존성 관리자는 여러 라이브러리를 사용할 때 충돌이 나지 않게 관리해주는 것을 의미한다.)

CocoaPods과 Carthage는 iOS 개발에서 가장 많이 활용되는 의존성 관리자다. 이것들은 라이브러리를 사용하고, 최신으로 유지하는 것을 간편하게 해주는 역할을 한다.

CocoaPods는 루비로 구현되어 있고 다양한 라이브러리를 가지고 있다. 아래 명령어를 이용하면 쉽게 설치할 수 있다:

$ sudo gem install cocoapods

설치 후에 프로젝트에 Podfile을 만들고 싶다면 아래 명령어만 입력해주면 된다:

$ pod install

혹은 아래와 같은 구조의 Podfile을 만들어주면 된다:

platform :ios, ‘8.0’

use_frameworks!

target ‘MyApp’ do

pod ‘AFNetworking’, ‘~> 2.6’

pod ‘ORStackView’, ‘~> 3.0’

pod ‘SwiftyJSON’, ‘~> 2.3’

end

파일을 만들었다면, 이번에는 라이브러리를 설치하면 된다:

$ pod install

이제 프로젝트 안에 .xcworkspace를 열고 라이브러리를 가져오면 된다.

Carthage는 CocoaPods와는 반대로 분산형 의존성 관리자다. 이것의 단점은 사용자가 라이브러리를 찾기가 힘들다는 점이다. 반면에 유지보수가 간편한 장점이 있다.

더 자세한 정보가 필요하다면 아래 깃허브 페이지를 참고하자:

6 — 데이터 저장하기

앱에 데이터를 저장하는 가장 간단한 방법부터 시작해보자. NSUserDefaults라고 불리는 이 녀석은 사용자의 기본적인 정보를 담을 수 있고, 앱이 처음 로딩될 때 불러올 수 있다. 이런 이유로 간단하고 사용이 편리한데, 몇 가지 제약이 존재한다. 제약 중에 하나는 활용할 수 있는 오브젝트의 종류이다. 이건 마치 Property List (Plist)랑 비슷하다. 아래 6가지 종류만 저장할 수 있다:

– NSData

– NSDate

– NSNumber

– NSDictionary

– NSString

– NSArray

스위프트와 호환을 위해 NSNumber는 다음과 같은 것도 포함한다:

– UInt

– Int

– Float

– Double

– Bool

오브젝트는 NSUserDefaults에 아래와 같은 방식으로 담을 수 있다. 첫 번째 예시는 상수를 만들고, 이 상수로 키를 만들어서 오브젝트를 저장한다:

let keyConstant = “objectKey”

let defaults = NSUserDefaults.standardsUserDefaults()

defaults.setObject(“Object to save”, objectKey: keyConstant)

NSUserDefaults에서 오브젝트를 읽어내기 위해서는 아래와 같이 할 수 있다:

if let name = defaults.stringForKey(keyConstant) {

print(name)

}

Keychain은 비밀번호, 인증서, 개인 키와 개인적인 메모를 저장할 수 있는 비밀번호 관리 시스템이다. Keychain은 두 단계의 암호화로 이뤄진다. 첫 번째 단계는 잠금 화면 비밀번호 입력에서 활용이 되고, 그다음 단계는 생성된 키를 사용하고, 기기에 저장한다.

무슨 말이냐고? 물론 이것이 (특히 잠금 화면 비밀번호를 쓰지 않는다면) 완벽하게 안전한 것은 아니다. 그리고 이것은 기기에 저장되기 때문에 두 번째 단계에서 이 키에 접근할 수 있는 방법도 존재한다.

가장 좋은 방법은 본인만의 암호화 방식을 사용하는 것이다. (키를 기기에 저장하지 마라.)

CoreData는 애플에서 디자인한 프레임워크다. 이것을 통해서 오브젝트 친화적인 방식으로 데이터베이스와 통신할 수 있다. 이 방식을 이용하면 코드도 줄일 수 있고, 테스트도 줄어든다.

7 — 컬렉션뷰와 테이블뷰

거의 모든 앱은 한 개 이상의 컬렉션뷰와 테이블뷰를 가지고 있다. 미래의 정신 건강을 위해서 상황에 따라 둘 중에 어느 것을 써야 하고, 그리고 각각이 어떻게 동작하는지 이해하는 것이 중요하다.

테이블뷰(TableViews)는 하나의 세로 열로 아이템의 목록을 보여준다. 따라서 위아래로 스크롤할 수밖에 없다. 각 아이템은 UITableViewCell로 대표되고, 완벽하게 커스터마이즈 할 수 있다. 때때로 섹션과 열로 분류되기도 한다.

컬렉션뷰(CollectionViews)는 역시나 아이템의 목록을 보여준다. 하지만 여러 개의 열과 행으로 이뤄져 있다. (그리드grid를 생각하면 좋다.) 콜렉션뷰는 위아래 혹은 좌우로 스크롤할 수 있고, 각 아이템은 UICollectionViewCell로 구성된다. UITableViewCells과 마찬가지로 자유롭게 변경이 가능하고, 때때로 섹션과 열로 분류되기도 한다.

둘 모두는 비슷한 기능을 하고, 재사용이 가능한 셀을 활용한다. 둘 중에 무엇을 선택할지는 당신이 만들고 싶은 목록의 복잡성에 달려있다. 컬렉션뷰는 개인적으로 어떠한 리스트를 만들 때도 모두 사용이 가능하다. 예를 들어서, 연락처 목록을 만든다고 상상해보자. 이때는 하나의 열만 있으면 되기 때문에 테이블뷰를 선택하면 된다. 몇 달이 지나지 않아, 디자이너가 그 연락처 목록을 그리드 형태로 바꾸기로 결정한다면, 당신은 테이블뷰로 구현해놓은 것을 컬렉션뷰로 고쳐야 한다. 따라서 당신의 목록이 간단하고 테이블뷰로 구현해도 충분하더라도, 앞으로 디자인이 변경될 가능성이 있다면 컬렉션뷰를 사용하는 것이 좋을 것이다.

8 — 스토리보드 vs Xibs vs 프로그래밍한 UI

각각의 방법은 모두 UI를 만들기 위해서 사용된다. 하지만 이걸 섞어 쓰지 말라는 법도 없다.

스토리보드(Storyboards)는 프로젝트를 더 넓게 볼 수 있게 해준다. 이 방식을 통하면 앱의 플로우를 한눈에 볼 수 있기 때문에, 디자이너가 더 좋아하기도 한다. 단점은 많은 화면이 더해지면, 그 관계가 알아보기 힘들고, 로딩하는 시간이 길어진다는 것이다. 그리고 한 파일에 모든 UI가 있기 때문에 충돌 나는 부분을 잡는 시간도 많아진다. 이렇게 모여있으면 해결하기가 힘들다.

Xibs은 한 화면 혹은 화면의 특정 부분을 보여준다. 장점은 재사용하기 편하다는 것이다. 그리고 스토리보드를 사용하는 것보다 충돌이 발생할 가능성이 적고 화면에 어떻게 나타날지 쉽게 확인할 수 있다.

UI를 직접 프로그래밍하는 방식은 훨씬 더 높은 자유도를 준다. 그리고 충돌도 적고, 만일 충돌이 발생하더라도 해결하기도 쉽다. 단점은 개발 중에는 시각적으로 볼 수가 없고, 프로그래밍하는데 시간이 오래 걸린다는 것이다.

앱에 UI를 만드는 방식은 여러 가지가 존재한다. 하지만 내 주관적인 관점으로는 이 세 가지를 적절하게 섞어서 사용하는 것이 가장 좋다. 여러 개의 스토리보드와 여러 개의 Xibs를 사용하면서 필요할 때 프로그래밍까지 더해주면 된다.

9 — 프로토콜

프로토콜(Protocols) 일상생활 속에서 특정한 상황에 어떻게 반응해야 하는지를 의미한다. 예를 들어서, 당신이 소방관이고 응급 상황이 발생했다고 생각해보자. 모든 소방관은 성공적으로 대처하기 위해 특정한 규칙(protocol)을 따라야 한다. iOS 개발에서 프로토콜 역시 마찬가지다.

프로토콜은 특정한 기능을 수행하기 위한 메서드와 구성 요소 등의 초안이다. 이건 각 요구 조건을 달성하기 위해 클래스, 구조체(structure), 열거형(enumeration, 혹은 enum)에 사용할 수 있다.

아래는 프로토콜이 어떻게 만들어지고 사용되는지에 대한 예시다:

아래의 예에서 나는 불을 끌 수 있는 다양한 물질로 이뤄진 열거형이 필요하다.

enum ExtinguisherType: String {

case water, foam, sand

}

그리고 이제 위급한 상황에 대응하기 위한 방법들에 관한 프로토콜을 만들어보자.

protocol RespondEmergencyProtocol {

func putOutFire(with material: ExtinguisherType)

}

그리고 이제 프로토콜을 상속하는 소방관 클래스도 하나 만들어보자.

class Fireman: RespondEmergencyProtocol {

func putOutFire(with material: ExtinguisherType) {

print(“Fire was put out using \(material.rawValue).”)

}

}

그리고 이제 소방관을 동작시켜보자.

var fireman: Fireman = Fireman()

fireman.putOutFire(with: .foam)

이 결과는 “Fire was put out using foam.”일 것이다.

프로토콜은 또한 대리자(Delegation) 패턴에서도 자주 활용된다. 이건 클래스나 구조체가 특정한 함수를 다른 형태의 클래스나 구조체에서 부를 수 있도록 해준다.

예제를 보자!

protocol FireStationDelegate {

func handleEmergency()

}

소방서는 소방관에게 비상사태를 처리할 권한을 위임하고 있다.

class FireStation {

var delegate: FireStationDelegate?

fun emergencyCallReceived() {

delegate?.handleEmergency()

}

}

이 말은 소방관 클래스 역시 FireStationDelegate 프로토콜을 상속해야 한다는 것을 의미한다.

class Fireman: RespondEmergencyProtocol, FireStationDelegate {

func putOutFire(with material: ExtinguisherType) {

print(“Fire was put out using \(material.rawValue).”)

}

func handleEmergency() {

putOutFire(with: .water)

}

}

이제 해줘야 하는 것은 소방관을 소방서의 대리인으로 설정하고, 응급 상황을 대신 처리하도록 하는 것이다.

let firestation: FireStation = FireStation()

firestation.delegate = fireman

firestation.emergencyCallReceived()

결과는 “Fire was put out using water.”일 것이다.

지금까지 살펴본 것처럼 프로토콜은 매우 유용하다. 이 외에도 다양한 사용법이 있는데, 일단은 여기까지만 하도록 하자.

10 — 클로저

스위프트의 클로저에 대해서 이야기해보자. 클로저는 주로 completion block을 반환하거나 high order functions와 함께 사용된다. Completion blocks라는 건 이름에서도 알 수 있듯 한 동작(task)이 끝날 때 실행되는 부분이다.

스위프트의 클로저는 C나 오브젝티브-C에서 blocks과 비슷하다.

스위프트에서 함수는 클로저의 특수한 케이스에 불과하다.

참고: Swift Block Syntax

이 링크는 스위프트 클로져 문법을 이해하기 좋다.

11 — 스킴(Schemes)

간단히 말해서 스킴은 여러 설정을 바꾸는 쉬운 방법이다. 우선 배경에 대해서 잠깐 설명하도록 하자. 한 작업 공간(workspalce)은 다양한 관련된 프로젝트를 담을 수 있다. 한 프로젝트는 다시 다양한 대상(target)을 가질 수 있다. 한 대상이란 한 제품(product)이 어떻게 만들어지는지(build)를 결정한다. 프로젝트는 또한 여러 개의 설정값을 가질 수 있다. Xcode의 스킴은 다양한 대상(targets)의 모음을 어떻게 만들지 결정하고, 어떤 설정 값이 활용될지, 어떤 테스트를 할지를 정한다.

12 — 유닛 테스트

당신의 코드를 테스트하고 있다면, 당신은 제대로 코딩을 하고 있는 것이다. 물론 이것이 모든 것을 해결해주지 않는다. 에러가 하나도 없거나, 어떤 문제도 생기지 않을 거라고 이야기하는 것은 아니다. 다만 테스트에 관해 내가 생각하는 장점과 단점은 다음과 같다.

우선 유닛 테스트의 단점을 생각해보자:

– 개발 시간이 증가한다

– 코드량이 증가한다

장점은 다음과 같다:

– 테스트하기 쉬운 모듈화 된 코드를 작성하게 된다

– 서비스를 출시 후에 버그를 잡기가 쉽다

– 유지보수가 편하다

몇몇 도구를 쓴다면 당신의 앱이 버그와 갑자기 죽어버리는 현상 없는 앱을 만드는데 도움이 될 것이다. 여러 도구들이 있는데, 당신의 필요에 따라서 한 개 혹은 그 이상을 골라서 쓰면 된다. 자주 사용되는 것은 아마도 Leak Checks, Profile Timer, 그리고 Memory Allocation일 것이다.

13 — 위치정보

많은 앱들이 사용자 위치 정보가 필요한 기능이 필요할 거다. 따라서 이것이 위치 정보가 iOS에서 어떤 식으로 작동하는지 알아두면 좋다.

Core Location이라고 불리는 프레임워크가 당신이 필요한 모든 정보에 접근할 수 있도록 도움을 준다:

Core Location 프레임워크는 당신이 기기를 통해 현재 위치를 판단하거나 어디로 향하고 있는지 알려준다. 이 프레임워크는 하드웨어를 통해 이것을 판별한다. iOS에서는 블루투스 비콘을 통해서 현재 위치를 확인할 수도 있다.

아래 애플 가이드와 샘플 코드를 참고하도록 하자.

https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/LocationAwarenessPG/Introduction/Introduction.html#//apple_ref/doc/uid/TP40009497

14 — 다개국어 지원

모든 앱이 반드시 구현해야 하는 기능이 있다. 이건 바로 지역역 따라서 언어를 바꿔주는 일이다. 만약 당신의 앱이 하나의 언어로만 시작을 하더라도, 가까운 미래에 다른 언어를 추가하는 일이 따라올 것이다. 만약 모든 문장을 다개국어가 지원 가능한 형태로 세팅을 해놓는다면, Localizable.strings 파일에 번역된 내용을 추가하기만 하면 된다.

파일 창(file inspector)을 통해 하나의 언어를 추가할 수 있다. NSLocalizedString을 통해서 텍스트를 하나 불러오기 위해서, 당신이 해야 할 것은 아래와 같다:

NSLocalizedString(key:, comment:)

안타깝게도 다른 언어 하나를 이 파일에 추가하는 것은 수동으로 해야 한다. 아래는 어떤 식으로 작성하는지에 대한 예시다:

{

“APP_NAME” = “MyApp”

“LOGIN_LBL” = “Login”

}

이것과 대응되는 포르투갈어 버전의 다개국어 지원 파일을 살펴보자:

{

“APP_NAME” = “MinhaApp”

“LOGIN_LBL” = “Entrar”

}

심지어 복수형(역주: 영어에서 복수일 때 s를 붙이는 형태)을 처리하기 위한 방법도 존재한다.

So you have finished reading the 아이폰 개발 topic article, if you find this article useful, please share it. Thank you very much. See more: 윈도우에서 아이폰 앱 만들기, iOS 개발, Swift 개발, iOS 개발자 전망, Apple Developer, Swift 앱 개발, iOS 개발 언어, 애플 코딩 프로그램

Leave a Comment