반응형

SmartThings 계정으로 원래 사용하다가

순차적으로 Samsung Account와 통합이 이루어 지고있는데

 

통합 후에 로케이션이 두개가 되어

원하는 로케이션을 냅두고

나머지 하나를 지우고 싶은데

못지우는 경우에 대한 팁을 소개하려고한다.

 

Location 이름을

SmartThings계정에서 쓰던 Location을 "SmartThings"

Samsung Account로 쓰던 location을 "Samsung"

이라고 칭하겠습니다.

 

사용자 케이스 1

"SmartThings"에만 기기를 추가하고 쓰고있었고 O

"Samsung"에는 기기가 없는경우 X

 

"Samsung" Location을 지우고 싶은데 안지워진다!!

 

사용자 케이스 2

"SmartThings"에는 기기가 없고 X

"Samsung"에는 기기가 있는경우 O

 

"SmartThings" Location을 지우고 싶은데 안지워진다!!

 

사용자 케이스 3

두 Location 모두 기기가 추가되어있는경우

 

한 로케이션으로 모든 기기를 모으고 싶다!!!

 

 


사용자 케이스 1번 2번의 해결 방법 - 필요없는 Location을 지워라

 

https://graph.api.smartthings.com 로 이동하여 "My Locations"를 클릭한다.

 

앞으로 쓸 Location을 클릭하여 "Edit"을 누른다

 

 

누르게 되면 Default Location이란게 보이는데

 

아마 쓰고싶은 Location이  "false"로 되어있고

안지워지는 Location이 "true"로 되어있을것인데.

 

true를 false로는 바뀌지 않지만

 

false가 true로는 바꿀수 있다.

 

이행위로 default location이 바뀐다.

 

SmartThings는 Location이 꼭 한개를 가지고 있어야하는데

Default홈은 지워지지 않는다.

 

이렇게 자기가 앞으로 쓸 Location을 Default Location으로 지정하고 난뒤

 

남은 Location을 지우기 시도를 하면 지워질 것이다.

 

 

 

 


사용자 케이스 3번의 해결 방법 - 모든 디바이스를 이동시켜라

 

 

두군데 따로 따로 쓰고있을수도있다

 

실수로?

 

또는 모르고?

 

그럼 난 하나로 합치고 싶어!!! 의 경우도 있을텐데

 

이렇게 하면된다

 

New SmartThings앱을 열고

 

장소 편집을 한다.

 

장소 편집은 숨어있으니 이렇게 하면된다.

난 안드로이드 사용자니

안드로이드 기준으로 설명하겠다

 

 

1. 앱실행

2. 아래 3개 탭중에 가운데 "디바이스" 선택

3. 왼쪽위 모든 디바이스 부분 선택

4. 이동할 Device가 있는 Location 선택

5. 맨오른쪽 점 세개 More 메뉴의 "편집" 선택

 

그럼 이렇게 아래 화면이 나온다 숨어있으니 잘찾길바란다.

 

 

 

 

6. 오른쪽 more 메뉴를 누르면 "내 디바이스 모두 이동"이 보일것이다. 선택하자

 

 

 

7. 이동시키고자 하는 Location이 보이고 선택하면 모든 디바이스가 이동될 것이다.

 

 

그다음 남은 Location은 안지워질 경우

위에 사용자 케이스 1번 2번 해결 방법으로 하면 된다.

 

팁 끝~

 

 

※ 공감 및 댓글 한마디는 포스팅하는데 큰 힘이 됩니다.

 

 

 

반응형
반응형

※ 우리 부부가 열심히 일하고 야근해서 받은 머니로 구입한 후기입니다

 

붱이 Story

 

안드로이드 다시 시작한지 2년차...

약 7~8년전 깔짝 배운걸로만 하려니

발전이 없어 신문물을 공부하기로 하고 

Kotlin을 공부 하였다.


우선 가장 추천이 많은 

Kotlin in Action을 샀다...


커니의 코틀린은 빌렸는데 이 두책이 가장 볼만한듯 하다



책에서 소개하는 아래 링크를 가보자


http://try.kotl.in


아래와 같이 빠르게 웹에서 테스트가 가능하다.

처음 문법익히고 요것저것 간단히 테스트해볼때 유용할듯하다.



기초적인 문법들은 블로깅 된게 많으니 Pass


내 기준 오! 이거 좋네?

이런게 되?

신기하다~

이건 알아두면 나중에 쓰겠지?


하는 항목을 나열해보았다.


Smart Cast

Null safety call “?.”

 Elvis operator “?:”

let operator

Triple quote “”” 

Default arguments and named arguments

Extension functions | infix

Singleton “object”

Local functions

“apply”

“with”

“run”


Smart Cast


위 링크에 Examples 중에 책의 예제코드들이 있는곳으로 가서

코드를 돌려보자


"is"

 java에서 instanceof와 같다.

해당 오브젝트의 타입을 확인할때 쓰곤했었다.

뭐 여기는 문법의 차이라고 보면되지만

그다음이 중요하다 

as를 통해 Num Class를 casting을 명시적으로 해주었지만

아래 message창을 보면 warning이 뜬것을 볼수있다

"No cast needed"


kotlin에서는 is로 이미 체크하고 다음 블록에선

따로 casting 없이 바로 쓰면된다.

 Num으로 캐스팅이 된 상태라고 보면된다.

(사실 컴파일타임에 알아서 캐스팅해준거다)


두번째 Sum 체크에서 보듯이 블록안에서는 casting 없이 사용한 것을 볼수있다.


요 기능이 "Smart Cast"라고 부른다




Null Safety Call "?."

Null Safety call "?."

아래 자바 스타일 함수에서 보듯이

자주 쓰는 null 체크가 


위에 ?. 하나로 간결하게 줄어든것을 볼수있다.

아주 심플하다. 

말그대로 ?. 왼쪽이 null이 아니면 오른쪽을 수행하고 아니면 null을 돌려준다.

아주 코드가 심플하다



아래는 chain으로 사용하는것을 보여준다.




Elvis Operator "?:"


아래 코드보면 이해가리라 생각이 든다.

null일경우 기본 값을 지정해주는 용도?



기본값이 아닌 원하는 Exception을 발생시킬수도있다.

아래 코드를 보고 이해하자~




"let" operator

let은 "?."와 같이 자주 쓰인다.

객체가 null이 아니라면 뭔가 수행한다로 보면 된다

아래코드보면 이해가 쉬울것이다~

앞서 두개의 sendEmailTo만 수행되고

마지막은 email이 null이여서 수행이 안된것을 확인할수 있다.




Triple Quote """


3중 따옴표 안에 글씨를 쓰면 개행까지도 표현가능하다

개행뿐만 아니라 back slash를 써서 특수 문자를 표시하던것들을

없이 바로 출력해준다.

booungEx 문장을 보면 이해가 갈 듯


trimMargin()으로 |(파이프) 까지는 잘라준다.(default)

17번 18번 line 수행결과는 같다



Default arguments and named arguments


C++에선 있지만...Java에 없어서 살짝 불편했었던 Default argument


Kotlin에선 좀더 진화된 Default arguments와

named arguments를 제공함으로써

Java에서 수많은 overloading이 필요했던것을 대폭 간소화 시켜준다.

아래 .. 내가 예제로 짠거지만 요걸 찬찬히보면

java때와 비교해서 볼수있을것이다.


Kotlin에서의 Default arg, Named arg는 다 이해했다고 봐도 될듯하다.(붱피셜)


main에서의 음영부분이 Named arg를 사용한것이다.

결과는 위아래 동일하지만 코드는 엄청 심플해진것을 알 수 있다.



Extension functions | infix


확장함수 요것도 물건이다..


예전 Java에서는 상속을통해 함수를 추가하곤했다


코틀린은 상속없이 마치 원래 멤버함수인것처럼 함수를 확장할수 있다.


String에 lastChar라는 함수를 확장했고

Int에 max 함수를 확장한 코드이다.


추가적으로 fun 앞에 중위함수표시인 infix를 적어넣으면

13 14 line 형태로 코드를 작성할수도 있다.

infix는 굳이 꼭 이래써야하나 싶긴하다...

그래도 신박한 기능이라 생각해서 언급해보았다.



Singleton "object"


Kotlin에서 싱글톤.... 너무 심플하다 그냥 class대신 object로 쓰면된다.





Local function

로컬함수가 된다... 우선 알고만 있으라는 뜻으로 언급해봤다

함수 안에 중복되는 코드가 있을경우...


아래와 같이 함수 안에 또 다른 함수로 중복 코드를 줄일수 있다.

모르면 있는지도 모르지만

알고나 있으면 ... 써먹을때가 올지도...





여기서 부터는 커니의 안드로이드를 참고하였음

자세한건 링크서 확인하고

https://www.androidhuman.com/lecture/kotlin/2016/07/06/kotlin_let_apply_run_with/



저는 이해한바만 ...


apply operator

apply는 어떠한 객체를 생성할때 property에 원하는값을 넣어서 생성할때...

아래 코드를 보면 위아 래 같은 코드이다.


사실 장점은? 모르겟지만 코드가 분산되지 않는다는거??

모르겠다 사실 뭐가 장점인지...





with operator

apply()와 유사하지만 내가 이해한건...

이미 생성된것에 대한 property를 변경시?

아래코드 처럼 이미 다른데서 생성된 messageView를

this로 접근하여 property값을 바꿀때 쓴다?

this생략도 가능


장점 이것도 잘모르겠다 


우선 존재를 알고 어느정도 알아야.. 

코드 해석을 할테니




run operator

run()은 두가지 형태가 있다.


먼저 객체없는 run()은 아래 코드와 같이

어떤 계산이라던지 작업을 한 결과를 리턴한다.

아래에서 블록의 마지막줄의 결과가 리턴이된다.



객체를 통한 run()은 생성된 객체의 연속된 동작이 필요할때

사용되는데 with()와 비슷하다


다른게 있다면 non-null상태여야한다.

 let과 with로 표현이 가능하다.

아래 코드를 보자~




더 재미난 기능들이 있지만

첫 코틀린은 여기까지...



제가 잘못 이해하고 있거나

잘못 기술 한점은 댓글로 알려주시면 감사하겠습니다.

단 !

비아냥은 노노



※ 공감 및 댓글 한마디는 포스팅하는데 큰 힘이 됩니다.




반응형
반응형

※ 우리 부부가 열심히 일하고 야근해서 받은 머니로 구입한 후기입니다

 

붱이 Story

 

[사용기/IT기기] - 아이패드 프로/ 애플 팬슬 / 스마트 키보드 구입기

애플 팬슬을 사서 .... 분실하기 쉽게 되어있는

캡과 젠더 .. 그래서 홀더가 필요했었다.


한님이 마침 핫딜을 알려주셔서 구입하게된

Apple pencil Accessories 


애플 팬슬의 촉 커버, 캡 홀더, 젠더 홀더 구성




한님이 알려주실땐 무려.. 0.06 달러... 100원도 안됨...

2018.06.27 환율 기준

근데 Amazon prime인경우 배송도 무료...(미국내 배대지까지만)


지금 들어가보니 이제 핫딜은 없다... 

그래도 사고싶으신분들을 위해 링크

아마존 링크



드디어 100원짜리가 왔다.


사이트 이미지 보단 쬐끔 질이 떨어져보이지만 만족




안그래도 펜촉 떨어뜨리면 찍힐까 걱정

펜슬 캡 잃어버릴까 조심

충전 젠더는 관리 안될것 같아서 박스에서 꺼내지도 않았는데

이번에 꺼냈다


아래는 모두 장착후 홀더들 제거된 상태


촉 커버, 캡 홀더, 젠더 홀더 장착 상태 모습


100원의 만족ㅎ



※ 공감 및 댓글 한마디는 포스팅하는데 큰 힘이 됩니다.



반응형

+ Recent posts