본문 바로가기

MOBILE

(49)
[swift] swift의 optional을 슈뢰딩거의 고양이라고 생각하는 방법 swift에서 변수가 항상 값이 있을 수도 있지만, 또 값이 없는 경우가 있을 수 있다. 그럴 때는 어떻게 나타내야 할까? A: nil이 값이 없음을 나타내니까 변수에 nil을 넣어보자! 라고 할 수 있다. 그럼 한번 넣어보자 var Value: String = nil 위 코드는 돌아갈까? 정답은 컴파일 오류다. 왜냐하면 우리는 선언할 때부터 swift에게 Value 변수는 String 타입이라고 알려줬는데 swift 입장에서 nil은 용납할 수 없기 때문이다. 그래서 swift는 optional 타입을 제공한다. optional 쉽게 말하면 슈뢰딩거의 고양이다. optional 키워드를 지정함으로써 이 변수에 값이 있을 수도 있고, 없을 수도 있다는 것을 swift에게 알려준다. 마치 상자 안을 관찰하..
[swift] 데이터 타입부터 함수까지 알아보기 swift 언어의 특징 세개를 합쳐서 SEF 으로 말할 수 있음 SAFE, EXPRESSIVE, FAST 여태까지 공부했을 때 safe는 인정하겠는데 expressive는 뭐 그렇다는데? 라고만 말할 수 있겠다.. 딱히 느껴지지 않음 자바스크립트를 별로 좋아하지 않았기 때문일까? 어쨌든 swift 기본 문법을 정리해서 ios 개발 가보자고 1. 변수와 상수 어느 프로그래밍 언어를 배우든지 가장 처음에 하는 것은 변수 선언과 데이터 타입이다. 변수(variable): 값이 변할 수 있음 상수(constant): 값이 변하지 않음. 고정된 값 상수는 let 키워드를 쓰고 변수는 var 키워드를 쓴다. 변수나 상수 이름을 써주고 반드시 콜론을 쓰고 띄워써야함 그 뒤에 데이터 타입을 써주면 된다. // (let..
Android Studio로 기분 통계 일기 앱 만들기 1. TODAY WRITE 안드로이드 버전으로 만든 기분을 종합하여 비율별로 통계를 내는 일기 앱. 내가 쓸려고 만들었지만 생각해보니 나는 ios 유저라서 못쓰게 되었고 공기계에서만 쓰는 슬픈 사실 날씨와 위치정보를 받아와서 자동으로 기록해주고 요일 별 기분과 비율을 통계 도표를 사용해서 시각적으로 제시함 총 2주 정도 걸린 것 같은데 깃헙 commit이랑 push 가 귀찮아서 안했더니 처음이자 마지막 commit&push 가 되었다 Tools Android Studio API 30 Weather API xml parsing GPS location SQLiteDatabase 그림판 (무려 직접 디자인...) 2. Screenshots 3. APP DESIGN 디자이너를 못구해서 결국 직접 해야하는 상황이..
[오류 일기] android.view.InflateException: Binary XML file line ___ - bottomnavigationview inflate 오류 하단 탭 bottomnavigationview를 사용하던 와중에 갑자기 오류가 났다 디버그 실행을 하니까 menu의 xml 파일에 문제가 있는 걸로 보였다 그래서 여러 번 코드를 추가하고 삭제하는 과정을 통해서 실험을 몇번 했는데 item에 onclick 속성이 들어가면 오류가 뜨는 것이었음 구글 안드로이드 개발자 문서를 좀 찾아봤는데 ?? 이게 무슨 소리지 onClick에 메서드를 쓰라고? 해서 메뉴 리소스 문서를 더 찾아봤다 메뉴 리소스 | Android 개발자 | Android Developers button 때문에 onClick은 true, false만 해두고 처리는 Mainactivity에서 하는 줄 알았는데 onClick에는 실행될 메서드를 쓰는 거였다 이거 때문에 꽤나 고생했네 하.. 결론:..
[오류 일기] 안드로이드 http 프로토콜 접속 오류: Cleartext HTTP traffic to __ not permitted 천문현상정보 API 받아오는데 IOException catch가 발생한다... 왜? 대체 왜... 파싱도 제대로 한 것 같은데 why?? 그래서 찾다가 구글에서 제공하는 안드로이드 개발 문서를 보게 되었음 네트워크 보안 구성 | Android 개발자 | Android Developers 안드로이드 9 (PIE) 부터는 HTTP 트래픽을 차단하고 HTTPS만 허용하도록 정책이 바뀜 그리고 난 그걸 이제서야 알았고... 자세히 읽어보면 일반 텍스트 지원 기능을 해제해서 HTTP 연결을 차단할 수 있다는데 반대로 생각하면 이걸 허용해서 HTTP 연결을 사용할 수도 있다는 거임 해결하자 1. AndroidManifest.xml 파일에 usesCleartextTraffic 속성을 true로 하면 모든 HTTP 연..
[android studio 오류 일기] Installed Build Tools revision 31.0.0 is corrupted 빌드 오류 해결하기 얼마전에 내 노트북을 싹 밀어버려서 안드로이드 스튜디오도 다시 깔았더니 버전 업그레이드가 되어서 안드로이드 12를 지원한다고 빌드 툴이 31인걸로 업데이트가 되었음 그랬더니 자꾸 오류나서 SDK manager 열어서 삭제 후 다시 설치도 해보고... 업데이트도 해보고... 이것저것 다 해봤는데 안되서 그냥 빌드 버전을 30으로 바꾸는걸로 해결했음 1. 일단 SDK manager열어서 build tools 30.0.3을 설치함 31버전은 다 지움 2. shift 두번 눌러서 build.gradle app을 열어준다 3. 이 코드에서 버전을 다 30이랑 30.0.3으로 바꿔줌 원하는 버전에 맞춰서 바꾸면 됨 4. 그 다음 싱크를 맞춰줘야 함 gradle을 수정하면 위에 싱크를 맞추라고 알림이 뜸 sync n..
[android studio 오류 일기] Waiting for all target devices to come online - AVD 무한정 로딩하는 현상 안드로이드 스튜디오 쓰고 있는데 갑자기 가상 에뮬레이터가 적용이 안되고 install 단계로 넘어갈 생각이 없음 계속 Waiting for all target devices to come online 상태에서 계속 로딩만 하는 것임 이럴 때 해결법은 AVD manager 에서 wipe data를 해주면 됨 저기 2번에 있는 아래 화살표 ▽를 누르면 wipe data가 나옴 이건 가상 에뮬레이터의 데이터를 지우는 건데 아직까지는 이 방법으로 해결 가능한듯
React Native로 basic 날씨 앱 만들기 귀찮아서 10일이나 걸린 앱 프로젝트 2020/12/28~2021/1/6 1. What's weather today지난번에 웹을 개발했으니 이번에는 모바일 앱에 도전하자고 생각했다. 근데 앱은 처음이라 뭘 해야할지 몰랐다. ios/android 결정도 못했으니 native 환경은 다음에 도전하고 일단 react native로 가볍게 만들기로 했다. javascript만으로도 앱을 개발할 수 있는게 마음에 들었다. 'What's weather today' 앱은 기본적인 날씨 모바일 앱으로써, 사용자의 위치를 받아와서 날씨 api에서 가져온 날씨 정보를 알려준다. 사용한 toolsReact native (with Javascript)ExpoAxios (for weather api)weather api (op..