SlideShare a Scribd company logo
WatchOS1.0 에서 개발했으나
WatchOS2.0 으로 릴리스한 스토리
Hakenman개발일지
j.lee 그리고 junha
kjcode
2015.10.31
두둥 대략 이런모습입니다.
애플 계정설정하기
• 데이타공유를 위한 App Group생성
• 와치앱용 App Id생성
• WatchApp
• Extension
• Embed Framewrok(필요한 경우)
• App GroupId활성화
• 프로비져닝 생성
애플와치 프로젝트 만들기
• 기존 프로젝트에 애플워치 타겟만 추가하면 끝.
• WatchKit Extension
• WatchKit App
• 필요하다면 Embed Framework도 추가
• HakenmanKit
와치앱 빌드시 삽질하지 않으려면!
• 각 타겟의 버젼정보는 반드시 일치시킨다.
• 빌드넘버까지 해줄필요는 없는듯...
• 타겟별로 프로비져닝을 설정해준다.
• 와일드카드(*)로 만들어진건 안돼요.
• Extenstion, WatchApp 타겟은 iOS Deployment
Version을 8.2 이상으로 설정한다.
• 본체앱은 더 낮아도 상관없어요. iOS6.0까지는 됨!
서로다른 타겟의 소스공유하기
• 실장파일(.m )이 다른타겟에서 사용할 필요가 있으면
프로퍼티에 체크를 넣어주면됨. 단 타겟별로 사용할 수
있는 라이브러리가 제한되어 있으므로 주의!
• 위에 방법보다 더 세련된방법으로는 임베디드 프레임워
크를 이용하여 메소드를 공유(헤더에 API정의)하는 방
법을 사용하자.
데이타공유 및 이행작업
• App Group를 이용한 공유
• 파일공유
• UserDefalut공유
• CoreData공유
• 공유데이타로의 이행
• 앱 기동시 버전체크 후 마이그레이션 대상판단후 실행
• iOS 8.2이상인지 체크필요 (App GroupId 때문)
• 프라이빗 영역(기존영역)에 있는 데이타를 공유영역으로 복사
해 주는 작업
• 하지만 UserDefault의 경우는 별도 노가다 필요.
화면만지기
• 레이아웃 만져주기
• 글랜스는 레이아웃이 정해져 있다.
• 레이아웃 구성방법은 XCode7에 새로도입된
StackView와 비슷한 개념.
• 백문이 불여일견. 해보는것이 빠르다!
Demo
• WatchKit UI(WKInterface )에서 의외로 안되는
것들.
• 라벨에서 셋팅한 텍스트를 취득불가? 왜??
• 프레임 조절도 불가!!
• 안되는것들이 너무 많으니 Apple Document를 확
인 할것!
• 그래프를 그려보자
• WatchOS1.0에서 그래프 그리기
• 본체앱에서 그린다. 이미지변환 후 와치앱으로 전달
• WatchOS2.0에서 그래프를 그리면...
• CoreGraphics 라이브러리를 사용할수 있게됨.
• Context를 취득하여 그린다음 이미지로 변환해서
WKinterfaceImage 에다가 셋팅해 준다.
테스트
Before After
• 시뮬레이터가 가지고 있는 버그로 인한 개고생
• 시뮬레이터 화면이 안열리는 문제
• 화면별로 시작점이 될수 있다는 것을 상정해야함.
• 실기테스트시 자동설치는 꺼놓아야.
애니메이션 효과
• 애니매이션구현
• WKInterfaceImage에서 이미지재생으로 가능
• UIView클래스에서 제공되던 편리한 메소드없음
• 억지로 하려고 해도 결국은 원점. 욕심부리지 말자
반성하기
• 제약사항과 변경점을 실장 전에 파악할 필요가 있음
• WatchOS2부터 데이터 공유 방식이 변경
• WatchConnectivity를 사용
WatchOS2.0 대응하기
형 행사가야 되는데
왜 저보고 하라고
그래요ㅠㅠ
부록.
• WatchOS2부터 데이터 공유 방식이 변경
• WatchOS1 : 데이터 저장영역이 폰에 의존했었음
• WatchOS2부터 데이터 공유 방식이 변경
• WatchOS2 : 워치에서 독자적으로 데이터 처리를 할수있게 됨
• WatchConnectivity를 사용
• WCSession(NSURLSession)을 이용해서 폰과 워치간의
데이터 동기를 도와주는 기술
• WatchConnectivity를 사용
• 동기 방식은 Background transfers와 Interactive
messaging이 있음
Demo source
• https://github.com/dolfalf/AppleWatchSample
끗! ㄷㄷ..

More Related Content

What's hot

원모먼트 Vue js 적용기
원모먼트 Vue js 적용기원모먼트 Vue js 적용기
원모먼트 Vue js 적용기
우현 김
 
Webframeworks.kr의 소개
Webframeworks.kr의 소개Webframeworks.kr의 소개
Webframeworks.kr의 소개
WebFrameworks
 
Angular 기본 개념 잡기
Angular 기본 개념 잡기Angular 기본 개념 잡기
Angular 기본 개념 잡기
장현 한
 
Angular는 사실 어렵지 않습니다.
Angular는 사실 어렵지 않습니다.Angular는 사실 어렵지 않습니다.
Angular는 사실 어렵지 않습니다.
장현 한
 
Fuse소개
Fuse소개Fuse소개
Cairo clock for android wear
Cairo clock for android wearCairo clock for android wear
Cairo clock for android wear
Young-Ho Cha
 
Golang+on+analytics+and+blockchain
Golang+on+analytics+and+blockchainGolang+on+analytics+and+blockchain
Golang+on+analytics+and+blockchain
NAVER Engineering
 
Angular 살짝 해보고 발표.
Angular 살짝 해보고 발표.Angular 살짝 해보고 발표.
Angular 살짝 해보고 발표.
ChangHyeon Bae
 
IntelliJ로 Salesforce 개발환경 구축
IntelliJ로 Salesforce 개발환경 구축IntelliJ로 Salesforce 개발환경 구축
IntelliJ로 Salesforce 개발환경 구축
Jaewon Lee
 
구글 인박스 히드라 프로그래밍
구글 인박스 히드라 프로그래밍구글 인박스 히드라 프로그래밍
구글 인박스 히드라 프로그래밍
Lee Ji Eun
 
Rx for iOS App. RxMVVM-DataCenter!
Rx for iOS App. RxMVVM-DataCenter!Rx for iOS App. RxMVVM-DataCenter!
Rx for iOS App. RxMVVM-DataCenter!
SUNGCHEOL KIM
 
유니티, 언리얼4 교육 전문기관 스킬트리랩 소개서
유니티, 언리얼4 교육 전문기관 스킬트리랩 소개서유니티, 언리얼4 교육 전문기관 스킬트리랩 소개서
유니티, 언리얼4 교육 전문기관 스킬트리랩 소개서
용호 김
 
Vingle tech talk #1
Vingle tech talk #1Vingle tech talk #1
Vingle tech talk #1
Tylor Shin
 
위플래닛 발표자료 Meteor_js
위플래닛 발표자료 Meteor_js위플래닛 발표자료 Meteor_js
위플래닛 발표자료 Meteor_js
WebFrameworks
 
Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)
Junsu Kim
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
JinKwon Lee
 
Logcat과 함께 하는 모바일 웹 디버깅
Logcat과 함께 하는 모바일 웹 디버깅Logcat과 함께 하는 모바일 웹 디버깅
Logcat과 함께 하는 모바일 웹 디버깅JinKwon Lee
 
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
JinKwon Lee
 
모두의 클라우드 딥러닝
모두의 클라우드 딥러닝모두의 클라우드 딥러닝
모두의 클라우드 딥러닝
NAVER Engineering
 
GDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's NoteGDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's Note
Seok-yong Kim
 

What's hot (20)

원모먼트 Vue js 적용기
원모먼트 Vue js 적용기원모먼트 Vue js 적용기
원모먼트 Vue js 적용기
 
Webframeworks.kr의 소개
Webframeworks.kr의 소개Webframeworks.kr의 소개
Webframeworks.kr의 소개
 
Angular 기본 개념 잡기
Angular 기본 개념 잡기Angular 기본 개념 잡기
Angular 기본 개념 잡기
 
Angular는 사실 어렵지 않습니다.
Angular는 사실 어렵지 않습니다.Angular는 사실 어렵지 않습니다.
Angular는 사실 어렵지 않습니다.
 
Fuse소개
Fuse소개Fuse소개
Fuse소개
 
Cairo clock for android wear
Cairo clock for android wearCairo clock for android wear
Cairo clock for android wear
 
Golang+on+analytics+and+blockchain
Golang+on+analytics+and+blockchainGolang+on+analytics+and+blockchain
Golang+on+analytics+and+blockchain
 
Angular 살짝 해보고 발표.
Angular 살짝 해보고 발표.Angular 살짝 해보고 발표.
Angular 살짝 해보고 발표.
 
IntelliJ로 Salesforce 개발환경 구축
IntelliJ로 Salesforce 개발환경 구축IntelliJ로 Salesforce 개발환경 구축
IntelliJ로 Salesforce 개발환경 구축
 
구글 인박스 히드라 프로그래밍
구글 인박스 히드라 프로그래밍구글 인박스 히드라 프로그래밍
구글 인박스 히드라 프로그래밍
 
Rx for iOS App. RxMVVM-DataCenter!
Rx for iOS App. RxMVVM-DataCenter!Rx for iOS App. RxMVVM-DataCenter!
Rx for iOS App. RxMVVM-DataCenter!
 
유니티, 언리얼4 교육 전문기관 스킬트리랩 소개서
유니티, 언리얼4 교육 전문기관 스킬트리랩 소개서유니티, 언리얼4 교육 전문기관 스킬트리랩 소개서
유니티, 언리얼4 교육 전문기관 스킬트리랩 소개서
 
Vingle tech talk #1
Vingle tech talk #1Vingle tech talk #1
Vingle tech talk #1
 
위플래닛 발표자료 Meteor_js
위플래닛 발표자료 Meteor_js위플래닛 발표자료 Meteor_js
위플래닛 발표자료 Meteor_js
 
Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
 
Logcat과 함께 하는 모바일 웹 디버깅
Logcat과 함께 하는 모바일 웹 디버깅Logcat과 함께 하는 모바일 웹 디버깅
Logcat과 함께 하는 모바일 웹 디버깅
 
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
 
모두의 클라우드 딥러닝
모두의 클라우드 딥러닝모두의 클라우드 딥러닝
모두의 클라우드 딥러닝
 
GDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's NoteGDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's Note
 

Similar to 파견맨 와치앱 개발일지

InjectionIII의 Hot Reload를 이용하여 앱 개발을 좀 더 편하게 하기.pdf
InjectionIII의 Hot Reload를 이용하여 앱 개발을 좀 더 편하게 하기.pdfInjectionIII의 Hot Reload를 이용하여 앱 개발을 좀 더 편하게 하기.pdf
InjectionIII의 Hot Reload를 이용하여 앱 개발을 좀 더 편하게 하기.pdf
정민 안
 
R.java가 사라졌어요 어떻하죠?:Aquery라이브러리와 안드로이드 개발팁
R.java가 사라졌어요 어떻하죠?:Aquery라이브러리와 안드로이드 개발팁R.java가 사라졌어요 어떻하죠?:Aquery라이브러리와 안드로이드 개발팁
R.java가 사라졌어요 어떻하죠?:Aquery라이브러리와 안드로이드 개발팁
창규 김
 
V8 add on with middleware modules
V8 add on with middleware modulesV8 add on with middleware modules
V8 add on with middleware modules
Jay Kim
 
ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자
Sewon Ann
 
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
NAVER D2
 
React native development
React native developmentReact native development
React native development
SangSun Park
 
Data-binding AngularJS
Data-binding AngularJSData-binding AngularJS
Data-binding AngularJS
EunYoung Kim
 
iOS9 소개
iOS9 소개iOS9 소개
iOS9 소개
Jae Sung Park
 
2017 Pycon KR - Django/AWS 를 이용한 쇼핑몰 서비스 구축
2017 Pycon KR - Django/AWS 를 이용한 쇼핑몰 서비스 구축2017 Pycon KR - Django/AWS 를 이용한 쇼핑몰 서비스 구축
2017 Pycon KR - Django/AWS 를 이용한 쇼핑몰 서비스 구축
Youngil Cho
 
iinn studio for jQWidgets by iinnsoft
iinn studio for jQWidgets by iinnsoftiinn studio for jQWidgets by iinnsoft
iinn studio for jQWidgets by iinnsoft
JeongWook Eom
 
모바일앱개발 교육자료
모바일앱개발 교육자료모바일앱개발 교육자료
모바일앱개발 교육자료
JinHyuck Churn
 
Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1
Dong Chan Shin
 
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1
진상 문
 
iOS Modular Architecture with Tuist
iOS Modular Architecture with TuistiOS Modular Architecture with Tuist
iOS Modular Architecture with Tuist
정민 안
 
Spring boot DI
Spring boot DISpring boot DI
Spring boot DI
Hyosang Hong
 
자바 웹 개발 시작하기 (5주차 : 스프링 프래임워크)
자바 웹 개발 시작하기 (5주차 : 스프링 프래임워크)자바 웹 개발 시작하기 (5주차 : 스프링 프래임워크)
자바 웹 개발 시작하기 (5주차 : 스프링 프래임워크)
DK Lee
 
[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔
NAVER D2
 
swift를 이용한 카카오링크 만들기
swift를 이용한 카카오링크 만들기swift를 이용한 카카오링크 만들기
swift를 이용한 카카오링크 만들기
KimDaeho
 
Visual Studio 해부학
Visual Studio 해부학Visual Studio 해부학
Visual Studio 해부학준일 엄
 

Similar to 파견맨 와치앱 개발일지 (20)

InjectionIII의 Hot Reload를 이용하여 앱 개발을 좀 더 편하게 하기.pdf
InjectionIII의 Hot Reload를 이용하여 앱 개발을 좀 더 편하게 하기.pdfInjectionIII의 Hot Reload를 이용하여 앱 개발을 좀 더 편하게 하기.pdf
InjectionIII의 Hot Reload를 이용하여 앱 개발을 좀 더 편하게 하기.pdf
 
R.java가 사라졌어요 어떻하죠?:Aquery라이브러리와 안드로이드 개발팁
R.java가 사라졌어요 어떻하죠?:Aquery라이브러리와 안드로이드 개발팁R.java가 사라졌어요 어떻하죠?:Aquery라이브러리와 안드로이드 개발팁
R.java가 사라졌어요 어떻하죠?:Aquery라이브러리와 안드로이드 개발팁
 
V8 add on with middleware modules
V8 add on with middleware modulesV8 add on with middleware modules
V8 add on with middleware modules
 
ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자
 
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
 
I os 1
I os 1I os 1
I os 1
 
React native development
React native developmentReact native development
React native development
 
Data-binding AngularJS
Data-binding AngularJSData-binding AngularJS
Data-binding AngularJS
 
iOS9 소개
iOS9 소개iOS9 소개
iOS9 소개
 
2017 Pycon KR - Django/AWS 를 이용한 쇼핑몰 서비스 구축
2017 Pycon KR - Django/AWS 를 이용한 쇼핑몰 서비스 구축2017 Pycon KR - Django/AWS 를 이용한 쇼핑몰 서비스 구축
2017 Pycon KR - Django/AWS 를 이용한 쇼핑몰 서비스 구축
 
iinn studio for jQWidgets by iinnsoft
iinn studio for jQWidgets by iinnsoftiinn studio for jQWidgets by iinnsoft
iinn studio for jQWidgets by iinnsoft
 
모바일앱개발 교육자료
모바일앱개발 교육자료모바일앱개발 교육자료
모바일앱개발 교육자료
 
Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1
 
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1
 
iOS Modular Architecture with Tuist
iOS Modular Architecture with TuistiOS Modular Architecture with Tuist
iOS Modular Architecture with Tuist
 
Spring boot DI
Spring boot DISpring boot DI
Spring boot DI
 
자바 웹 개발 시작하기 (5주차 : 스프링 프래임워크)
자바 웹 개발 시작하기 (5주차 : 스프링 프래임워크)자바 웹 개발 시작하기 (5주차 : 스프링 프래임워크)
자바 웹 개발 시작하기 (5주차 : 스프링 프래임워크)
 
[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔
 
swift를 이용한 카카오링크 만들기
swift를 이용한 카카오링크 만들기swift를 이용한 카카오링크 만들기
swift를 이용한 카카오링크 만들기
 
Visual Studio 해부학
Visual Studio 해부학Visual Studio 해부학
Visual Studio 해부학
 

More from Jaeeun Lee

Arduino入門(kjcode)
Arduino入門(kjcode)Arduino入門(kjcode)
Arduino入門(kjcode)
Jaeeun Lee
 
Objective-C에서 멀티스레드 사용하기
Objective-C에서 멀티스레드 사용하기Objective-C에서 멀티스레드 사용하기
Objective-C에서 멀티스레드 사용하기
Jaeeun Lee
 
Parseを活用した開発
Parseを活用した開発Parseを活用した開発
Parseを活用した開発
Jaeeun Lee
 
파견맨(Hakenman) 개발일지 - 자작앱 만들기
파견맨(Hakenman) 개발일지 - 자작앱 만들기파견맨(Hakenman) 개발일지 - 자작앱 만들기
파견맨(Hakenman) 개발일지 - 자작앱 만들기
Jaeeun Lee
 
Ojbecitve-C Use ContainerView (Stroyboard)
Ojbecitve-C Use ContainerView (Stroyboard)Ojbecitve-C Use ContainerView (Stroyboard)
Ojbecitve-C Use ContainerView (Stroyboard)
Jaeeun Lee
 
チーム開発Tip紹介(Objective-C)
チーム開発Tip紹介(Objective-C)チーム開発Tip紹介(Objective-C)
チーム開発Tip紹介(Objective-C)
Jaeeun Lee
 
엉터리로일하지않기(でたらめな仕事をしないためには)
엉터리로일하지않기(でたらめな仕事をしないためには)엉터리로일하지않기(でたらめな仕事をしないためには)
엉터리로일하지않기(でたらめな仕事をしないためには)
Jaeeun Lee
 

More from Jaeeun Lee (9)

Arduino入門(kjcode)
Arduino入門(kjcode)Arduino入門(kjcode)
Arduino入門(kjcode)
 
Objective-C에서 멀티스레드 사용하기
Objective-C에서 멀티스레드 사용하기Objective-C에서 멀티스레드 사용하기
Objective-C에서 멀티스레드 사용하기
 
Parseを活用した開発
Parseを活用した開発Parseを活用した開発
Parseを活用した開発
 
파견맨(Hakenman) 개발일지 - 자작앱 만들기
파견맨(Hakenman) 개발일지 - 자작앱 만들기파견맨(Hakenman) 개발일지 - 자작앱 만들기
파견맨(Hakenman) 개발일지 - 자작앱 만들기
 
Ojbecitve-C Use ContainerView (Stroyboard)
Ojbecitve-C Use ContainerView (Stroyboard)Ojbecitve-C Use ContainerView (Stroyboard)
Ojbecitve-C Use ContainerView (Stroyboard)
 
チーム開発Tip紹介(Objective-C)
チーム開発Tip紹介(Objective-C)チーム開発Tip紹介(Objective-C)
チーム開発Tip紹介(Objective-C)
 
엉터리로일하지않기(でたらめな仕事をしないためには)
엉터리로일하지않기(でたらめな仕事をしないためには)엉터리로일하지않기(でたらめな仕事をしないためには)
엉터리로일하지않기(でたらめな仕事をしないためには)
 
Crewja info
Crewja infoCrewja info
Crewja info
 
Lean startup
Lean startupLean startup
Lean startup
 

파견맨 와치앱 개발일지