저자는 조용호 님이다. 초판은 2019년이지만 지금(2022년 1월에 5쇄 발행) 계속 발행되고 있는 것을 보면, 인기가 많은 책인듯하다. 예전에 도서관에서 빌려 읽었던, 같은 저자의 '객체지향의 사실과 오해'가 쉽가 설명이 잘 되어있어서 마음에 들었었다. 그 책이 이번에 읽은 책의 프리퀄 같은 책이라는 저자의 글에 따라 다음 시리즈인 이 책을 읽게 되었다. 확실히 나에게 도움이 된다. 큰 시각에서 객체지향 프로그램의 설계를 어떻게 해야하는지 감을 잡을 수 있었다. 아마도 나와같은 비전공자라면 꼭 한번 읽어보라고 추천해주고 싶다. 기억하고 싶은 부분 설계란 코드를 배치하는 것이다. 설계는 코드를 작성하는 매 순간 코드를 어떻게 배치할 것인지를 결정하는 과정에서 나온다. 설계는 코드 작성의 일부이며 코드를..
apk를 만들려고 build APK 하니 디버그일때는 안뜨던 warning이 뜬다. 빨간글자가 뜨는것을 안좋아해서 구글링을 해보았다. 해결 방법은 간단했다. 참고 링크는 아래와 같다. https://stackoverflow.com/questions/71347054/flutter-build-runtime-jar-files-in-the-classpath-should-have-the-same-version-t flutter build Runtime JAR files in the classpath should have the same version. These files were found in the classpath flutter build Runtime JAR files in the classpath sh..
앱을 제작하다보니 앱의 현재 화면이나 화면의 일부 위젯을 이미지로 저장하기 필요한 패키지는 아래와 같다. # 특정 위젯 screenshot 을 위한 패키지 screenshot: ^1.2.3 path_provider: ^2.0.11 permission_handler: ^9.2.0 image_gallery_saver: ^1.7.1 share_plus: ^4.0.9 screenshot 패키지는 flutter에서 원하는 widget tree 혹은 전체 UI를 캡쳐 할 수 있다. 이때 캡쳐한 이미지를 저장하기 위해서 path_provider 패키지를 이용해서 저장할 directory를 쉽게 받아올 수 있다. permission_handler 는 이미지 저장시, 현재 프로젝트에 할당된 디렉토리 이외의 곳에 저장하려..
패턴책을 볼때 알게된 Singletone. 플러터를 이용해 Bluetooth를 연결하기 위해서 코딩하는 중에 마주쳤다. 현재 Bluetooth를 사용하기 위한 라이브러리로 flutter_blue_plus를 사용하고 있는데 여기서 클래스 정의 내부를 보면 아래와 같이 singletone 이다. 핸드폰에 Bluetooth 모듈이 하나가 있기 때문에, 하나의 instance 만 가지고 있어야 해서 그렇다. 비슷한 방식으로 아래처럼 get 대신에 factory를 이용할 수 도 있다. 결과를 보면 singletone 프린트문은 한번만 실행됬고, a 와 b는 같은 클래스 인스턴스를 가지고 있는 것을 볼 수 있다.
현재 만들고 있는 앱은 Bluetooth를 이용해서 근전도 측정 장치와 통신을 한다. 앱을 Flutter로 제작하고 있기 때문에 Bluetooth와 연결을 위한 라이브러리를 써야한다. 장치와 통신하는 방식은 정확하게 말하면 Bluetooth low energy (BLE)이다. Bluetooth classic과는 다른 메커니즘을 사용하고 있다. BLE를 위한 Flutter 라이브러리를 Pub.dev에서 찾아보면 3개이상이 있는 것을 확인 할 수 있다. 이 중에서 활발히 업데이트되고 있는 라이브러리가 2개이다. 하나는 필립스 휴에서 조명(LED)을 컨트롤하기위해 제작한 flutter_reactive_ble 이고, 다른 하나는 flutter_blue_plus 이다. flutter_blue_plus는 이전에 많..
버튼을 클릭하면, 15초 후에 사라지는 dialog를 생성하고 싶었다. 그래서 dialog의 initState()에 Timer.periodic 을 실행하도록 하고, 이 타이머에서 15초가 되면 callback하는 함수에서 창을 닫는 (아래 코드처럼)명령을 주었다. 그랬더니 context 빨간 줄이 생기면서, initState에서 context를 사용할 수 없다는 설명이 떴다. 'initState context'를 검색해보니 context는 initState 이후에 사용할 수 있다고 한다. 그래서 해결 방법을 보니 아래 링크처럼 Future.delayed를 사용하면 된다고 한다. 그래서 따라 해보았다. https://stackoverflow.com/questions/49457717/flutter-get-c..
Sql DB에 자료를 저장하려면 아래와 같은 타입들이 가능하다. (자료링크) 그런데 저장해야할 자료 type중에 array나 list가 있다면? 그 data를 db에 저장 가능한 타입으로 변환해서 저장을 해야한다. 보통은 String으로 저장하는게 편하다. string에 다양한 메소드들이 이미 구현 되어있어서 다른 타입에서 string으로 변환하거나 string에 포함되어있는 separator를 기준으로 내용들을 array으로 변환하기 쉽기 때문이다. 아래의 예는 List 형태의 데이터를 sql DB에 저장할 수 있도록 string으로 변환하는 코드(dart언어)와 , DB의 string 데이터(list을 string으로 만들어 저장해두었던..)를 다시 List 로 변환하는 코드이다. static Str..
최근 코등을하면서 어떻게하면 좀더 디버깅을 빨리, 그리고 잘 할수 있을까? 혹은 그것을 도와주는 좋은 툴들이 있을까하고 고민을 하고 있다. 아래 영상은 그걸 찾다가 발견한 것은 아니지만 보다보니 유익한 것같아서 기억하고 싶은 내용들을 조금 정리해 둘까한다. https://www.youtube.com/watch?v=vVg9It7cOfY "Jank" is like a visual stutter. Jank란 화면이 버벅거리는 것을 의미한다. 그러니까 뭔가 부드럽게(우연하게) 넘어가야하는데 그렇지 못한 경우, 버벅거리거나 프레임을 한 두개 skip 하는 것처럼 시각적으로 nice 않는 것을 말한다. Flutter는 적어도 3개의 쓰레드르 사용한다. 첫번째는 UI 쓰레드이다. 메인 쓰레드로써 widget을 bui..
- Total
- Today
- Yesterday
- firebase
- UI
- 앱개발
- 앱 프로그래밍
- Flutter
- 문제 해결
- 한빛미디어
- 이미지
- position
- TextField
- addPostFrameCallback
- 인사이트
- 다트
- UX
- error
- Syncfusion
- hide
- 크롬
- Chrome
- TextFormField
- BLE
- 앱
- IOS
- SizedBox
- Bluetooth
- 플러터
- DART
- 디자인
- 에러
- plugin
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |