목록분류 전체보기 (172)
일모도원(日暮途遠) 개발자
아래와 같은 코드를 처음 봤을때 맨 마지막의 ()가 뭔지 궁금했었다. 결론부터 말하면 함수를 실행할때 함수명 다음에 ()를 붙이는거와 같다. 즉 함수를 실행하고 그 결과 값을 받는거다. 아래 코드에서 ()는 someValue에 {}의 내용을 실행하여 결과값을 할당(割當, assigne)하는 코드이다. 즉 15를 리턴해준다. (아래에서 설명할 함수명()와 동일하다. 함수를 실행시킬려면 함수명 뒤에 ()를 붙여야 하듯이) let someValue: Int = { return 5 + 10 }() print(someValue)를 하게 되면 15이 나온다. 만약 아래처럼 ()를 빼고 실행하면 어떻게 되나 확인해 봤다. let someValue: Int = { return 5 + 10 } someValue를 Int..
사용자 UI를 중시하는 애플이 만드는 개발자용 툴인 XCode를 보면 확실히 개발자는 애플에서 말하는 사용자가 아닌걸 확인할수 있다. 안드로이드 스튜디오와 비교하면 여러 기능들이 많이 부족한걸 볼수 있다. 코드블럭 숨기기도 그렇다. 평소에 단축키를 쓰곤 했는데, 단축키도 귀찮고 해서 UI로 할려고 알아보니 코드블럭 숨기기인 화살표가 안보여서 한참 헤맸다. 단축키는 아래와 같다. Fold ⌥ ⌘ ← option + command + left arrow Unfold ⌥ ⌘ → option + command + right arrow 메뉴는 아래에 있다. (왜 Fold all은 없냐구!!!) UI로 할려면 아래처럼 하면 된다. Code folding ribbon을 체크해줘야 한다. 왼쪽은 코드폴딩 리본이 없는것..
아라한자 앱에서 한자위에 독음을 달아주는 기능을 만들고 있는데, rb 태그에 있는 값이 \n이면 제대로 읽어오지를 못한다. (웹뷰에 쓰는 HTML Hurigana tag가 아니라 표준 포맷은 아니다. 제대로 쓸려면 data-를 span태그안의 각 custom attribute안에 붙여야 한다...) 天천 \n 아래와 같은 코드로 rb태그를 읽어오면 "천"은 제대로 읽어오는데, "\n"은 공백(空白, space)으로 읽어온다. 즉 " " 이 되어 버린다. import SwiftSoup let text = """ 天천 \n """ let doc = try SwiftSoup.parse(text) let rbTags = try doc.select("rb") for (_, rbTag) in rbTags.enume..
SwiftUI에서 애플 지도를 사용할려면 MapKit을 사용하면 된다. import MapKit 지도를 그려주기 위해서는 Map View를 이용하면 된다. 크게는 coordinateRegion과 mapRect가 있는데, 주로 coordinateRegion를 사용한다. Map(coordinateRegion: Binding Map(mapRect: Binding 아래코드는 서울지역을 보여주는 코드이다. MKCoordinateRegion으로 중심 경위도를 주고, span으로 반경을 주면 된다. import SwiftUI import MapKit struct ContentView: View { @State private var region = MKCoordinateRegion( center: CLLocationC..
텐서플로우에 있는 iOS프로젝트를 한번 열어볼려고 했는데 한번에 잘 안되어서 기록해둔다. https://github.com/tensorflow/examples/tree/master/lite/examples/object_detection/ios 원하는 경로에 소스를 복사한다. >git clone https://github.com/tensorflow/examples.git 여러 소스들이 같이 포함되어 있어서, 내가 열려고 하는것은 아래 경로에 있다. (xcworkspace파일이 없고 그냥 xcodeproj파일만 있다.) 잘만든 소스들이라, 이렇게 ReadMe가 상세하다. 잘 읽어야 하는데, 안 읽고 하다가 여러 오류를 겪고 겨우 실행했다. README.md # TensorFlow Lite Object Det..
카메라 기능을 구현하기 위하여 공부하던중, 아래에 있는 코드는 Kotlin으로 되어 있어, 사진 찍고 이미지 파일을 저장하는 부분까지만 자바로 구현해보았다. (자바 11 사용중) https://developer.android.com/codelabs/camerax-getting-started?hl=ko#0 CameraX 시작하기 | Android Developers 이 Codelab에서는 CameraX를 사용하여 뷰파인더를 표시하고, 사진을 찍고, 카메라에서 이미지 스트림을 분석하는 카메라 앱을 만드는 방법을 소개합니다. developer.android.com 먼저 Empty Views Activity를 선택하자. 이름은 적당히주자. 난 package이름을 com.android.example.cameraj..
지금 열어서 보고 있는 파일 (예. dict_db.dart)를 왼쪽 Project Panel에서 어디에 있는지 보고 싶을때가 있다. 열려있는 탭에 마우스를 가져가면 이렇게 전체 경로가 보인다. 이걸 이용해서 Project Panel에서 일일히 찾아서 열어봐도 되지만 무척 귀찮다. 이럴때는 Project Panel에 있는 세팅 모양의 Show Options Menu 아이콘을 눌러서 보면 "Always Select Opened file"이라는 메뉴가 있는데 이걸 활성화(活性化) 시키면 된다. 그러면 열려있는 소스코드의 탭을 누를때마다 해당되는 파일을 Project Panel에서도 선택해서 보여준다.
Duplicate class 오류가 쏟아져 나온다. 이경우는 전부 kotlin-stdlib-1.8.20 모듈에 있는 클래스들이다. 로그를 보면 kotlin-stdlib-1.8.20모듈에 있는 일부 클래스들이 kotlin-stdlib-jdk7-1.6.21 또는 kotlin-stdlib-jdk8-1.6.21 모듈에 있는 클래스와 중복(重複)된다. (이상한게 난 프로젝트 생성할때 자바를 선택했는데도 코틀린 관련 에러가 나오네...) Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules kotlin-stdlib-1.8.20 (org.jetbrains.kotlin:kotlin-stdlib:1.8.20) and kotlin-stdlib..