[iOS 강좌] 오픈API 이용한 날씨 APP 만들기 - 1. Xcode 소개

이미지
안녕하세요, 남산타워 입니다. 이번 강좌는 iOS를 처음 개발하시는 분들을 위해서 오픈 API 이용한 날씨  APP 강좌를 시작하려고 합니다. 오픈 API의 데이터를 받아서, 오늘의 날씨 정보를 APP 화면으로 노출하는 간단한 APP 입니다. 총 5장으로 진행될 예정이며, 개발를 처음 시작하는 분들을 개발에 필요한 기초 부터 시작할 예정입니다. - 목차 -   [iOS 강좌] 오픈API 이용한 날씨 APP 만들기 - 1. Xcode 소개  [iOS 강좌] 오픈API 이용한 날씨 APP 만들기 - 2. Objective 기초  [iOS 강좌] 오픈API 이용한 날씨 APP 만들기 - 3. UIKIT Framework 기초  [iOS 강좌] 오픈API 이용한 날씨 APP 만들기 - 4. Interface Builder 기초  [iOS 강좌] 오픈API 이용한 날씨 APP 만들기 - 5. 오픈 API 연동 ----------------------------------------------------------------------------------------------  [iOS 강좌] 오픈API 이용한 날씨 APP 만들기 - 1. Xcode 소개 1. 설치하기 Xcode는 애플의  iOS와 macOS를 개발하기 위핸 IDE(통합개발환경) 입니다. 애플 개발자 사이트( https://developer.apple.com/download/ )나 맥 앱스토어에서 Xcode를 다운받아서 설치 할수 있습니다. 현재 9.4.1 버전이 최신 버전 이며, 항상 최신버전을 유지하는것이 바람직합니다. 2. 전체 화면 구성 Xcode를 실행하고, "create a new Xcode project" 를 실행하면, 프로젝트가 시작됩니다. 왼쪽 영역은 내비게이터 영역으로 프로젝트와 관련된 파일, Git, 클래스,찾기, 오류, 테스트,브레이크 포인트 등을 탭을 통해 확인할수 있습니다. 가운데 영역은

[Kotlin] lazy와 lateinit

이미지
안녕하세요 명동콜링입니다. 오늘은 Kotlin에서 비슷한 듯 다른 두 키워드인 'lazy'와 'lateinit'의 사용법에 대해 알아보려 합니다. lazy와 lateinit은 Kotlin에서 사용되는 초기화 키워드로 둘 다 초기화의 시점이 늦춰주는 키워드로, UIComponent를 onCreate에 굳이 findViewById로 링킹을 시키지 않아도, 변수들을 미리 초기화 시키지 않아도 나중에 초기화를 미루는 행동을 하도록 도와줍니다. 그럼 먼저 lazy에 대해 알아보도록 하겠습니다. lazy는 앞에 by 키워드가 함께 붙어서 'by lazy' 형식으로 붙어다닙니다. 그래서 초기화를 할 때, T by lazy { /* Init Code */} 형식으로 작성을 해줍니다. 괄호 안에는 물론 초기화 할 값을 써줘야 되겠지요. 이렇게 작성하게 되면 onCreate에서 imageView 객체를 바로 사용할 수 있습니다. 다음은 lateinit에 대한 사용법입니다. lateinit은 일반 변수처럼 선언만 하는 게 특징입니다. 다만 사용하기 전에 꼭 초기화를 해야되는 속성입니다. 그래서, lateinit var VAR_NAME: T 의 형식으로 작성을 합니다. 그리고 나서 사용하기 전에 findViewById를 통해 링킹을 하게 되지요. 사실 lateinit은 변수 선언시에 Nullable을 지정하지 않은 것에 대한 차이일 뿐 별 다른 특이점을 찾을 수는 없습니다. 아마  Java로 코드를 짤 때 했던 스타일과 같다고 생각하면 될 것 같습니다. Kotlin에서는 Null에 대한 관리가 엄격하기 때문에 Null Safety Operator나 Elvis Operator로 Null을 회피하도록 관리하는데 그것을 도와주는 키워드가 lazy와 lateinit이라고 할 수 있을 것 같습니다. Kotlin에서 준수하는 코딩 규칙으로 안전한 코딩을 해보도록 합시다.

아이프렌즈펫 월드컵 응원 이벤트

이미지
아이프렌즈펫 월드컵 응원 이벤트 아이프렌즈펫에 2018 월드컵 응원 스티커를 붙인 사진을 올리면 푸짐한 경품이 기다립니다~ [기간] 6.14~6.30 [방법] 1. 아이프렌즈펫 앱 다운로드 & 간편가입 2. 월드컵 응원 스티커 사용하여 스냅 작성 [선정기준] 참여한 스냅의 감정표현, 댓글, 공유 회수 [당첨자 발표] 2018년 7월 6일 (금) [경품] 18명 (강아지 9명, 고양이 9명) *강아지 - 1등 1명 볼레디 자동운동 & 급식기 - 2등 3명 대리석 쿨매트 - 3등 5명 산책 자동 리드줄 *고양이 - 1등 1명 캣타워 - 2등 3명 대리석 쿨매트 - 3등 5명 스크래쳐 * 제세공과금 당사 부담, 당첨 후 고객 확인을 위해 개별 연락 * 재고 소진시 다른 상품으로 교체되어 배송될 수 있습니다 * 앱에 올려주신 사진과 글은 아이프렌즈펫 마케팅에 사용될 수 있습니다 [당첨 확률을 높이는 Tip] 아이프렌즈펫 앱 - 여러 번 올리면 당첨 확률이 올라가요~ - 다른 사람의 글에 좋아요, 댓글을 많이 달아주세요 - SNS에 공유하신 후 해당 게시물 주소를 스냅에 써주세요 페이스북 - 좋아요 클릭 / 친구소환 / 페이지 좋아요 클릭 - 이벤트 게시물을 공유해주시고 댓글에 공유하신 게시물 주소와 아이프렌즈펫 아이디를 남겨주세요 인스타그램 - 좋아요 클릭 / 친구 소환 / 아이프렌즈펫 계정 팔로잉 - 이벤트 게시물을 리그램해주시고 댓글에 아이프렌즈펫 아이디를 남겨 주세요~ [응모하기]

[Objective-C] NSString(문자열) 다루기

// 빈 문자열 생성 NSString  * str = [ NSString   string ]; // 문자열로 새로운 문자열 생성 NSString  * str = [NSString stringWithString: @"stringWithString" ]; NSLog(@"%@", str); NSString * str = [[NSString alloc] initWithString:@"initWithString"]; NSLog(@"%@", str); // 문자열 길이 NSLog(@"length of %@ : %i", str1, [str length]); // 문자열 복사 NSString  * tmp = [NSString stringWithString:str]; NSLog(@"tmp : %@", tmp); NSString  * str1 = @"1"; NSString  * str2 = @"2"; // 문자열 합치기 1 NSString  * tmp = [str1 stringByAppendingString:str2]; NSLog(@"%@ + %@ = %@", str1, str2, tmp); // 문자열 합치기 2 NSMutableString  * str1 =  @"This is" ; NSString  * str2 =  @" Love" ; [str1 appendString:str2]; // 문자열 비교 NSString * tmp = str1; if  ( [str1 isEqualToString:tmp] ==  YES  ) NSLog(@"%@ == %@", tmp, str1); else

반려동물 몸짓 언어 '카밍 시그널'

이미지
반려견의 몸짓 언어 카밍 시그널 이 카드뉴스는 카밍 시그널(투리드 루가스)책을 참고하여 제작하였습니다 카밍시그널이란? Calming + Signal 서로를 진정시키기 위해 주고받는 신호, 반려견의 몸짓 언어입니다 언제 사용하나요? 반려견 사회의 갈등 예발, 해결 무서워서 도망치고 싶을 때 불안한 자신을 진정시키기 위해 다른 반려견을 안심시키려고 다른 반려견이나 사람들과 친해지기 위해 고개 돌리기 - 다른 반려견/사람에게 불편, 위험을 느낄 때 서로를 진정시키기 위해 보내는 시그널. -> 같이 고개를 돌려주세요. "안심해~" 부드럽게 쳐다보기 - 눈을 가늘게 뜨고 호의를 표시하는 시그널. -> 눈을 가늘게 뜨고 같이 위에서 내려봐주세요. 같은 눈높이에서 응시하는 것은 오히려 공격적인 신호가 될 수 있어요 등 돌리기 - 불안하거나 위험을 느낄 때 보내는 강한 시그널. -> 반려견이 지나치게 흥분하거나 불안할 때 등을 보여주세요~ 곧 진정될 거에요 코 핥기 - 위협을 느낄 때 자신과 다른 반려견을 진정시키는 시그널. -> 이건.. 따라하기 어려울걸요? 동작 멈추기 - 자신보다 큰 반려견이 다가오거나 화난 주인을 진정시킬 때 보내는 시그널. -> 화내고 소리치지 말고 평소처럼 말하세요 천천히 걷기, 느리게 움직이기 - 상대를 진정시키기 위한 강한 시그널. -> 반려견을 진정 시키거나 가슴줄을 채울 때 천.천.히. 다가가 보세요~ 앞가슴 내리기 - 같이 놀고 싶을 때, 상대를 안심시킬 때 -> 같이 놀아요! 앉기 - 불안할 때 안심시키는 시그널 -> 반려견이 스트레스 받거나 불안해하면 일단 자리에 앉아보세요 엎드리기 - 서열이 높은 반려견이 무리를 진정시키거나 안심시킬 때 보내는 강한 시그널 -> 무서워하는 반려견 앞에서 엎드려 보세요 하품하기 - 흥분, 불안, 공

고양이 기르기전 짚고 넘어가자

이미지
아이프렌즈펫 구경하기 https://goo.gl/xHMVxG 김병목 수의사 저자의 "고양이 공부"라는 책에서 "고양이를 기르기전, 짚고 넘어가자!!"라는 유익한 정보를 일부담아 아이프렌즈펫에 올라온 친구들의 사진과 함께 소개 하려고합니다~ 고양이를 기르지 전에 미리 생각하여 고양이와 평생 함께 할 수 있는 책임감 있는 보호자가 되길 바라며 입양하기전에 한번 더 고민해 보세요~ 좋은 집사가 되길 바라며 도움이 되길 바래요*^^* 고양이 기르기 전, 짚고 넘어가자!!! 고양이를 기르기전에 미리 생각하여, 고양이와 평생 함께 할 수 있는 책임감 있는 보호자가 되자!!! **이 카드 뉴스는 고양이 공부 책을 참고하여 제작하였습니다. 사료, 모래, 치약, 샴푸 등 매달 유지 비용이 들어가요~ 예방 접종 및 질병 발생에 따라 의료비가 발생할 수 있습니다~ 매일 밥과 신선한 물 주기!!! 사진출처 : #곽집사 "사랑해"라고 말해주기 쓰다듬어주기!! 사진출처 : #은디, #별이언니 매주 화장실 청소 및 모래갈기 사진출처 : #바코집사 가끔 1~2달에 한번 목욕하기 사진출처 : #양가은

Vue.js #1 시작하기

이미지
Vue.js 란? Vue.js를 시작하기에 앞서 공식 페이지 https://kr.vuejs.org 를 방문하면 다음과 같이 설명하고 있습니다. Vue(/vjuː/ 로 발음, view 와 발음이 같습니다.)는 사용자 인터페이스를 만들기 위한 진보적인 프레임워크 입니다. 다른 single page 프레임워크와 달리 Vue는 점진적으로 채택할 수 있도록 설계하였습니다. 핵심 라이브러리는 뷰 레이어만 초점을 맞추어 다른 라이브러리나 기존 프로젝트와의 통합이 매우 쉽습니다. 그리고 Vue는 현대적 도구 및 지원하는 라이브러리와 함께 사용한다면 정교한 single page application을 완벽하게 지원할 수 있습니다. 간단히 말해 SPA(Single Page Application) 용 프런트엔드 개발을 위한 프레임워크 라고 정의할수 있습니다. < Vue.js 프레임워크 구조 > Vue.js의 프레임워크 구조를 보면 화면의 데이터 표현에 대한 선언적 렌더링을 중점적으로 제공하고 프레임워크 관련한 컴포넌트, 클라이언트 라우팅 기능을 제공하여 라이브러리가 아닌 프레임워크 역할을 수행합니다. Vue.js 장점 일단 초창기에 웹으로 SPA를 개발하기 위해 Angular 및 Ionic을 사용해보았으나 일단 Typescript라는 언어를 새로배워야 하고 초기 기동 시 무겁다는 장점을 발견할 수 있었습니다. 다음으로 Vue.js의 장점을 나열하면, 배우기가 쉽다. HTML, CSS, JavaScript 기초 지식만 있으면 손쉽게 배울수 있스빈다. Angular, React 보다 동일케이스 수행시 더 빠르다고 합니다. 공식페이지에서 나온 내용이지만 일단 체험상 속도는 빨라 보입니다. Angular, React 장점이 랜더링 과 가상돔을 동일하게 이용할수 있습니다. UI 라이브러리 Vue.js 는 UI화면 개발 방법 중 하나인 MVVM 패턴의 화면단 라이브러리 입니다. < MVVM 라이브러리 구조 > MVVM 패턴이란 화면을 Model-View-ViemM