항상 주말마다 나가자는 아이 덕분에 집근처 갈만한 곳을 찾아본다
어차피 나갈꺼면 나중에 기억하지 못하더러도 자연을 많이 느끼게 해주고 흙을 밟으며 놀았으면 하는 마음에 항상 여기저기 찾아보곤 한다
내 욕심일 수도 있겠다는 생각도 들었다
하지만  매 순간 기억하진 못하더라도 즐겁게 자연들과 놀았던 찰나의 기억이 모여모여 나중에 행복한 기억이 가득가득하기를

이래저래서 숲놀이터를 부랴부랴 찾아보았다
볼것도 조금있고 자연도 있고 뽁이 심심하지 않게 놀이기구 미끄럼틀 같은게 있으면 해서 숲놀이터로 꽝꽝

차로20분이내에 갈수 있는곳으로 찾아보니
오산 고인돌공원 이라는곳이 있었다. 찾아보니 예전에 갔었던 물향기수목원근처였다.


도착해서 입구를 지나오니 사람들도 별로 없고 푸르른 잔디밭과


작년 크리스마스에 산타할부지에게 받은 카메라를 들고 잔디밭 요기저기 찍는우리뽁이

예쁜 장미로 꾸며놓은 스팟도 있었다
숲놀이터는 조금더 뒤로 넘어가야 했다 처음엔 찾지 못해서 한참을 헤맷다

미끄럼틀도있고 짚라인도 있고 흔들다리도 있고 여기서 몇시간을 놀앗는지
확실히 밖에서 놀아야 잘먹고 잘논다
주말동안 쌓엿던 에너지를 다뿜어내고 자연에게서 더좋은 에너지 받아 많이 채우고 왓길

 

* 한화면에서만 가로 모드 지원 하기

 

플레이어 등 한 화면만 가로모드로 지원했다가 다른 화면은 세로로 고정 되도록 해야 할 때가 있다.

먼저 AppDelegate.swift에 다음 코드를 추가한다. 다른 화면들은 세로로 고정 할려고 Lock은 portrait로 고정 시켜놓았다.

var orientationLock = UIInterfaceOrientationMask.portrait

    func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {

        return self.orientationLock

    }

    

    struct AppUtility {

        static func lockOrientation(_ orientation: UIInterfaceOrientationMask) {

            if let delegate = UIApplication.shared.delegate as? AppDelegate {

                delegate.orientationLock = orientation

            }

        }

        

        static func lockOrientation(_ orientation: UIInterfaceOrientationMask, andRotateTo rotateOrientation:UIInterfaceOrientation) {

            self.lockOrientation(orientation)

            UIDevice.current.setValue(rotateOrientation.rawValue, forKey: "orientation")

        }

    }

    

 

그리고 전환하는 화면 맨위에 Delegate를 선언해 준다

    let appDelegate = UIApplication.shared.delegate as! AppDelegate

 

그리고 ViewWillAppear안에 다음과 같이 방향을 정해준다

AppDelegate.AppUtility.lockOrientation(UIInterfaceOrientationMask.landscapeRight, andRotateTo: UIInterfaceOrientation.landscapeRight)

 

그리고 돌아오는 화면에는 다시 Lock을 세로로 고정 해줘야 하기 때문에 다음과 같이 선언해줬다.

    let appDelegate = UIApplication.shared.delegate as! AppDelegate

AppDelegate.AppUtility.lockOrientation(UIInterfaceOrientationMask.portrait, andRotateTo: UIInterfaceOrientation.portrait)

 

까먹고기 방지피드 !!!

'# 개발자노트 > IOS' 카테고리의 다른 글

[swift] NotificationCenter 사용하기  (0) 2017.09.12
[Xcode8] storyboard에서 unwind 추가하기  (0) 2017.06.29

* SDK 관리법


나의 기억력을 못믿어 써 놓는 포스팅이다.

Eclipse 에서 Android Studio로 나도 결국 넘어 갔다.

작년 부터는 Eclipse에서 지원하지 않는 부분도 많아져서 이제는 교체 시기가 왔다고 생각 하고 작년 여름부터 나도 

Android Strudio를 사용하고 있다.

하지만 옛날에 했던 프로젝트가 계속 유지보수 요청이 들어온다...................

usb serial 통신으로 Android Studio로 전환이 되지 않아 이 프로젝트만 계속 Eclipse를 사용하는데

문제는 sdk이다.

두 툴에서 SDK를 같이 쓰려니 안드로이드 스튜디오 갔다가 이클립스 키면 계속 최신 버전 dx.jar 가 없다고 뜨고

SDK Manager 실행도 되지 않는다.

열심히 고쳐서 또 사용하다 안드로이 스튜디오 다녀오면 같은 증상이 반복되고 

머리가 좋지 않는 나는 까먹을 것 같아 기억을 하기위해 ....


먼저

1단계



이 파일을 구글링하여 찾아 다운로드 한다.

그리고 실행!!!!

설치시 경로는 현재 sdk가 존재하는 곳에다가 설치를 해준다.



이렇게 하고 Eclipse에서 

Window -> SDK Manager를 실행하면  




짜란

마구 안된다고 뜨는 버전 해당되는거 설치한다.


이래도 안되면!!!

2단계

sdk폴더에 안된다고 뜨는 버전을 몽땅 삭제해 버린다.

몽땅몽땅


이러면 이클립스사용할때 잠시나마 사용가능하다.

안드로이드 스튜디오 가서 뭐가 또 안맞는다고 업데이트를 시켜주라고 하면 적용해주고 다시 이클립스 키면 또 안된다.

그러면 위의 과정을 또반복한다.








'# 개발자노트 > Android' 카테고리의 다른 글

Fragment LifeCycle  (0) 2023.05.10
액티비티 LifeCycle  (0) 2023.05.09
안드로이드 4대 컴포넌트  (0) 2023.05.09
EditText Focus 키보드 문제  (0) 2017.05.17

*  NotificationCenter 사용하기

  


IOS 에서 Background로 받은 데이터를 처리할 때 주로 NotificationCenter를 사용한다


등록 할 때는 


 NotificationCenter.default.addObserver(self, selector: #selector(self.AAA()), name: NSNotification.Name(rawValue: "BBB"), object: nil)


이런식으로 사용한다.


위에서  AAA()는 다른 곳에서 post했을 시 해당 함수로 이동할 수 있도록 등록하는것이고 , BBB는 다른 곳에서 post 할 때 값으로 이름을 서로 정해논 것이다.

한마디로 정리하면 다른곳에서 이 AAA()  함수를 실행 시키기 위해서 "BBB"를 value로 설정하여 알림을 보내주면 등록되어 있는 Notification중에 "BBB"를 찾아 AAA() 함수를 실행 시켜줄 수 있는것이다.


다른 곳에서 이 것을 호출 할 시에는


NotificationCenter.default.post(name: Notification.Name(rawValue: "BBB"), object: self) 

  

이런 식으로 사용한다.



또한 해제 할 시에는


NotificationCenter.default.removeObserver(self, name: NSNotification.Name(rawValue: "BBB"), object: nil) 


이런 식으로 사용한다.



보통 페이지를 시작할 때 등록해주고 페이지를 닫아 줄 때는 해지 시켜 주면서 사용한다.


* StoryBoard Unwind추가


IOS 앱을 개발하다 보면 Back 키가 존재하지 않기 때문에 Back 버튼을 화면에 만들어 이전 화면으로 돌아가야하는 경우가 있다.

이러한 경우 Unwind라는 함수를 사용하면 문제없이 현재화면을 종료하고 원하는 화면으로 이동할 수 있다.



위와 같이 화면에서 첫번째 화면에서 두번째 화면, 세번째 화면으로 이동한 후 뒤로 갈때 현재 화면을 종료하고 원하는 화면을 만들기 위해 예제를 만들어 테스트 해보았다.


 - FirstPage 

  : [Go next Page]를 클릭하면 Second Page로 이동

 - SecondPage

  : [Go next Page]를 클릭하면 Third page로 이동

  : [Go First]를 클릭하면 SecondPage화면이 종료되고 FirstPage로 이동

 - ThirdPage

  : [Go First]를 클릭하면 ThirdPage화면이 종료되고 FirstPage로 이동

  : [Go First]를 클릭하면 ThirdPage화면이 종료되고 SecondPage로 이동


제일 먼저 첫번째 화면과 두번째 화면에 다음과 같이 코드를 추가


<<FirstPage와 연결된 Swift파일>>


<<FirstPage와 연결된 Swift파일>>




그리고 [Go FirstPage]를 끌어 Exit에 가져다 놓으면



작성해놓은 함두 두개가 뜬다



나는 첫번째 페이지로 돌아갈것이기 때문에 첫번재 페이지 Swift파일에 작성한 함수를 선택하면 끝!






 




EditText Focus KeyBoard 문제



**이 포스팅은 개발 시 기억 안날 때 찾아보기 위하여 간단하게 정리한 포스팅 입니다.



(1) 화면 실행시 키보드가 자동으로 올라 올 때


Android에서 UI를 구성할 때 EditText를 사용할때마다 Focus가 자동으로 설정되어 

화면 Create 될때마다 무조건 키보드가 올라오는 경우에 적용하면 간단하게 해결 할 수 있다.


EditText의 포커스를 해제하면 된다.

해제하는 방법은 해당 화면에서 가장 밖에 있는 Linear Layout에 두줄만 추가 해 주면 된다.


android:focusable="true"
android:focusableInTouchMode="true"


(2) 가로 화면으로 진행시 화면 전체화면으로 키보드가 보여질 때


Android에서 UI를 구성할 때 EditText를 사용시 화면이 가로로 되면 화면 전체가 EditText창으로 보여 기존 화면이 모두 가려지는 현상이 생긴다.

그때는 아래와 같이 EditText속성에 한줄만 추가해 주면 해결 된다.


android:imeOptions="flagNoExtractUi"



(3) Edit Text Input Type


마지막으로 EditText 사용시 키보드 Input타입 정리


 Contstant

 Value

 Description

 date

14 

 날짜 입력

 datetime

 날짜와 시간 입력

 number

 번호

 numberDecimal

2002 

 숫자와 점

 numberPassword

 12

 암호필드

 numberSigned

1002 

 Signed Number 

 

 

 

 

 

 

 

 

 


출처: [안드로이드 개발자 사이트] https://developer.android.com/reference/android/widget/TextView.html#attr_android:inputType







'# 개발자노트 > Android' 카테고리의 다른 글

Fragment LifeCycle  (0) 2023.05.10
액티비티 LifeCycle  (0) 2023.05.09
안드로이드 4대 컴포넌트  (0) 2023.05.09
[Android]SDK Manager Ecilpse 에서 열리지 않을때  (0) 2017.11.22


* 여행기간: 2017.04.27-2017.05.06



황금연휴를 그냥 넘길 순 없었다.

이때가 기회다 !!! 임시공휴일 지정되겟지 하며 작년에 우리는 비행기를 구매해 놓았다 (결국안됬지만 ㅠㅠ)

출국 할때는 인천에서 청두를 거쳐 7시간의 경유 시간을 가지고 프랑크 푸르트

입국할때는 프랑크푸르트에서 베이징을 거쳐 2시간의 경유시간을 가지고 인천으로 하니 가격이 넘나 저렴한 것이였다!!

거기에다가 수화물도 23Kg이상 1개 무료 기내식 무료제공!!

어쩜이리 저렴한가 하며 신나게 결재를 하였다


하지만!!


저렴한데는 다 이유가 있는법...........


여행 한달전쯤 깨달은 것이 있었는데 '청두'공항은 수화물 트랜스퍼 시스템이 없다

즉 청두에 내려서 수화물 찾고 다시 수화물을 맡겨야 한다


또 경유시간이 7시간이나 되어 우리는 시내라도 나갔다오자며 거대한 계획을 세우고 있었다.

공항에서 수화물을 찾아 맡기고 시내로 나가서 밥을 먹고 돌아와 공항라운지에서 씻고 비행기를 타자!! 라고 말이다.


이제부터는 에어차이나를 타는 사람들을 위해 필요한 내용들 (자료가 많이 없어 나도 답답하였다 ㅠㅠ), 

혹은 내가 또 싼값에 홀려 결재를 했을 경우 참고를 위하여 몇가지 내용을 정리할까 한다



(1) 에어차이나 무료 환승 호텔 예약하기


부푼마음으로 기대하던 여행당일

공항버스를 타고가다가 문득 친구한테 들은 무료환승호텔이 생각났다. 

혹시나 해서 찾아보니 에어차이나에서도 4시간인가 5시간 이상 24시간 이내 경유할 시 무료로 호텔을 제공해주었다.

공항버스에서 부랴부랴부랴 신청을 하고 아 여기가서 잠도 자고 씻어야지 생각하며 또 부푼마음으로 비행기를 탓더랬다.

가까운 미래에 엄청 고생할 것도 모르고 ㅋㅋㅋㅋ


(2) 청두 공항 입국 심사


청두에 도착했다. 경유지이지만 자동 트랜스퍼가 안되서 입국심사를 받았다.

중국에 경우 입국할 때 꼭 비자가 필요했다. 하지만 우리 같이 트랜스퍼 하는 경우 무비자로 입국을 할 수 있다.

72시간내 무비자를 이용하여 입국이 가능했다.

하지만 입국 심사가 엄청 오래걸린다.

너무나 꼼꼼한 그대들이여 .......................

줄도 중간쯤 섰던거 같은데도 1시간을 기다렸다.

아 참고로 무슨 쓰는 종이가 있었는데 우리는 무비자로 입국할것이기 때문에 이 종이를 작성할 필요가 없다.

우리는 잘몰라서 이걸 들어따가 놨다가 엄청 고민하였다. 하지만 필요 없다는거~

여기서 입국 심사 받을때 꼭 다음 비행기로 갈아탈  E-티켓  같은 것도 묶을 호텔도 보여줘야 한다.

E-티켓 안보여주면 심사못받아요 .. 꼭꼭 챙겨서 가도록!

우리 같은 경우는 한글로 뽑아가서 못알아봐서 막 인터넷 연결해서 직접 보여줄때까지 입국심사가 통과가 안되었다.



(3) 예약한 무료 환승 호텔 이용하기


어쨰뜬 살떨리고 무섭던 입국심사가 끝나고 짐을 찾아 에어차이나에서 제공하는 호텔을 가기위하여 국제선 터미널에서 국내선 터미널로 이동해야한다.

우리가 도착한 곳은 국제선 터미널이다.

이때도 지옥이다. 걸어도 걸어도 나오지 않는 국내선 터미널

중국이 땅이 넓긴한가보다 

내가 가는 이 길이 맞나 싶을때 까지 한참을 걸어가야 나온다

표지판을 따라 무거운 수화물 들고 20분은 넘게 걸어가면 국내선 터미널이 나오고 거기 3층에 에어 차이나 카운터가 있다

여기로 여권을 들고가서 내밀면 호텔을 배정해준다.


우리가 갈 호텔은 바이강 호텔 

배정 받고 기다리면서 저녁을 먹으려고 환전을 하려고 공항환전소를 갔더니 무슨 수수료가 더비쌋다................

그래서 포기하고 시내나가서 환전할까하고 옆에 한국인 같으신 분들이 있길래

환전얼마나 했는지 물어보고 이야기 꽃을 나누다 같은 호텔인걸 깨닫고 같은 비행기를 타고 프랑크푸르트가는것 또한 꺠닫고 그분들과 같이 이동하기로 하였다.

중국돈이 없어 양해를 구하고 우리좀 데리고 다녀달라고 부탁하였다. 천사 같으신 분들은 그러시겠다고 해주셧다

에어차이나에서 호텔로 데려다 주는 차가 오고 호텔에서 짐만 놓고 나와 같이 저녁을 먹기로 하였다.

(이용호텔 사진 추가 예정)


(4) 중국돈은 될 수 있으면 인천공항에서 환전해오기


중국공항에서는 수수료가 너무많이 붙었다. 우리가 저녁 먹을정도 3만원정도만 바꾸려 했는데도 수수료가 바꾸는 돈 비슷하게 나왔던것 같다.

그래서 호텔에서 혹시 환전을 할 수 있냐고 물었더니 공항가서 하란다

이런............

꼭꼭 한국을 뜨기전 돈은 바꿔오는 것으로 하자


(5) 청두에서 저녁먹기 '천마포또우'


천사같은 일행분들과 우리가 찾아온 맛집으로 가서 저녁식사를 하기로 하였다.

우리가 찾아논 맛집은 [천마포또우] 마파두부 원조 집으로 시내에 위치하였다.

아.........근데 여길 어떻게 가지

호텔이 공항에서 쪼곰 덜어진 곳이라 교통편이 아무것도 없었다.

우왕좌왕하는데 어떤 청년이와서 와따가따 해쥬겠다고 했다 300위안인가 불렀던듯

천사같은 일행분은 중국말도 할줄 알았다 ㅋㅋㅋㅋㅋ 진짜 우리끼리 왔으면 어쩔뻔 호텔에서 잠만자고 씻고 나갈뻔했다

어쨰뜬 300위안은 비싸다며 안타겠다고 했다. 너무비쌋다 ㅠㅠ 아무리 비싸도 편도 100이면 간다고 인터넷에서 보고 갔는데 ....

그래서 왕복 200을 외쳤지만 그들도 그건 아니된다고 했다

서로 안맞아서 호텔앞에서 그냥 대충먹쟈며 갈려고하자 그들이 우릴 잡앗다

그냥 해준댓다 오예에에에 나 청두까지와서 마파두부 원조집 못가는줄

그렇게 40분을 차를 타고 나가서 마파두부집에 다녀왔다. 이 집에 대해선 나중에 다시 포스팅을 하겠다.



(6) 다시 공항으로 !!


밥잘먹고 돌아와서 씻고 다시 공항으로~

호텔측에다가 공항에 가겠다고 하니 아까데려다주셧던 아저씨가 와서 우리 모두를 공항으로 데려갔다.

다시 체크인 다 하고 수화물 부치고 무사히 프랑크 푸르트 공항으로 가는 비행기를 탓다

나는 프랑크푸르트공항에서 프라하가는 비행기를 바로 3시간뒤에 탈 예정이였는데 사람 다 잘 태우고 활주로에서 1시간반뒤에 비행기가 출발하였다

덕분에 1시간반 연착.........

9시비행기인데 7시반에 도착하여 이미그레이션 수화물 찾고 다시체크인하는데 시간이 모잘랄꺼가타서 30분을 달렸다..........................

에어차이나 타시는 분들 꼭 연착 시간도 염두해 두시길

겨우겨우 체크인해서 프라하로 갈수 있었다고 한다


(7) 기내식 및 편의 사항

기내식 최악이다. 특유의 중국향이 모든음식에 베어있다.

특히 아침에 중국식 서양식 주는데 꼭 서양식 먹도록!!!!!!!!!!!!!!!!!!!!!!!!

강조강조

중국식 간이 안된 흰 죽이 나온다

또한 중국비행기는 핸드폰을 못켜게한다 그동안 다른비행기들은 비행기모드로 해놓고 영화받아논거 보거나 음악들으면서 갔는데

이 항공사는 무조건 꼭꼭 끄라한다. 꺼내져 있기만 해도 꺼있어도 끄라고 또 주의를 주고간다.

영화받아온거 무의미. 음악받아온것도 무의미.

비행기 운전이 불안하다거나 착륙할때 부셔질꺼같은 불안감은 없었다. 걱정했던거 보단 괜찮은듯



에어차이나 싸서 구매했다가 도착하자마자 힘들어 죽는줄알았다................................

왜 싼지 느낄 수 있었던 비행기였다 

다음부턴 일 더  열심히해서 돈 더 벌어서 직항타야겠다. 꼬옥



 



+ Recent posts