다트의 call by sharing이 플러터에서 작동하는 원리에 대한 해설

Posted on

프로그래밍 기술은 소프트웨어 연구에 의해 성립된 개념에 의해 구현됩니다. 함수를 호출한다고 했을때, 매개변수가 넘겨진다면 이 매개변수를 넘겨서 참조하는 방법도 경우에 따라 차이가 있으며 이를 개념화한 것이 언어의 특징으로 규정되어 있습니다. “값에 의한 호출” (call by value) “메모리 주소에 의한 호출” (call by reference) “공유에 의한 호출” (call by sharing) 이 그 개념들입니다. 이들 세가지 개념은 …

just_audio로 배경음악 연주하는 코드들 해설

Posted on

플러터에서 배경음악 연주를 할때 중요한 것은 지연시간입니다. 음악 연주를 하다가 화면이 바뀔때 다른 배경음악을 연주해야 한다면 아래와 같은 현상이 있게 됩니다. 이 지연시간을 줄인 패키지가 just_audio입니다. just_audio는 지연시간이 1초보다 작아서 활용에 유리합니다. 지원되는 플랫폼은 Android, iOS, macOS, Web으로 윈도우는 지원을 안하는 것 같애요. 그래도 안드로이드와 iOS가 지원되서 좋습니다. 사용법은 매우 쉬운 편인데요. 함수가 간결하고 직관적입니다. …

[플러터] just_audio 패키지로 효과음 지연 시간없이 재생하는 방법 해설

Posted on

타국어로 썼던 글을 직접 번역하기가 귀찮아서 이번글은 그록한테 번역을 맡겼습니다. 번역 품질이 좋네요. 오타가 몇군데 있을 수도 있으니 주의하시길요. just_audio (https://pub.dev/packages/just_audio)는 Android, iOS, macOS, 웹, Linux, Windows용 기능이 풍부한 오디오 플레이어입니다. 가장 뛰어난 기능은 재생 모드를 재설정하는 데 매우 낮은 지연 시간을 가진다는 점으로, 길고 복잡한 연결 해제, 해체, 재설정 과정 없이 다음 오디오를 준비하는 …

모토롤라 모토 G 5G 2023 스마트폰 리뷰

Posted on

모바일폰을 대부분의 경우 삼성 최상위 제품을 주로 쓰시는 것 같습니다. 제가 가입해 있는 캐나다 쿠도 모바일의 경우 갤럭시 S23 제품군은 2년 텀계약에 한달에 3만원(33불)씩 내야 하는데요. 이 비용이 부담이 되어 가성비 스마트폰을 주로 봅니다. 삼성 갤럭시 A 시리즈를 눈여겨보구요. 이들 폰에 안드로이드 메이저 버전 업그레이드도 된다고 합니다. 갤럭시 A54와 갤럭시 A14가 있는데요. 찾아보니 둘다 된다고 …

[플러터] 플러터에서 스와이프하는 방향 추출하기와 타일 자리 교환 코드

Posted on

플러터로 타일 매칭 게임을 만드는데 타일 이동시켜 자리를 교환하면서 진행되는 게임입니다. 타일을 이동시키려면 스와이프 동작이 발생하는데 이 동작을 감지해서 이 동작에 맞는 작동을 구현해야 합니다. 우선 여러 감지 방법이 있으나 타일 매칭 게임에 적합한 방법은 onHorizontalDrag* 와 onVerticalDrag* 콜백을 써서 details로 읽어들여 처리하는 방법인데요. 우선 GestureDetector로 감싼 child: 로 타일 이미지를 표시합니다.child: 로 표시한 타일 …

[iOS] 애플 시뮬레이터 명령어로 실행하는 방법

Posted on

애플 기기에서 도는 앱을 실험해보기 위해서는 (1) 실장비가 있어야 하거나 (2) 시뮬레이터를 쓰는 방법이 있습니다. 후자 시뮬레이터는 일종의 가상머신으로 애플에서 발표한 실장비의 제품과 운영체제를 실험해볼 수 있는 도구로, 모바일 앱을 실장비 없이 테스트해볼 수 있게 해주는 방법을 제공합니다. Xcode의 일부이지만, xcrun simctl 명령어를 쓰면 명령행에서 제어가 가능합니다. 시뮬레이터를 잘 쓰면 아래와 같은 기능이 가능합니다. (1) …

[안드로이드] 안드로이드 앱 용량 줄이기 2

Posted on

https://shutterpress.info/pc/2023/02/17/%ec%95%88%eb%93%9c%eb%a1%9c%ec%9d%b4%eb%93%9c-%ec%95%b1-%ec%9a%a9%eb%9f%89-%ec%a4%84%ec%9d%b4%ea%b8%b0/ 전에 작성했던 글에서 해설하지 않은 부분을 보충합니다. 우선 플러터 작업시 프로젝트 페인에서 android → app → build.gradle 에 아래 라인을 추가합니다. (안드로이드 스튜디오의 경우) build.gradle의 android { } 블락안에 이 라인을 추가합니다. 제가 참고한 네이버 개발자의 말에 의하면 위 구문을 추가시 앱이 크래시 잘된다고 하는데 아마도 구형 기기라서 그런 것 같네요. 크래시 잘 안되는게 …

플러터에서 앱 화면 구동까지 딜레이 주기 (카운트 다운)

Posted on

플러터로 가위바위보 게임을 만들고 있습니다. 우선 가위, 바위, 보 중에서 하나를 누르면 선택지가 입력되어 게임이 진행되는 구조인데요. 채점하는 동안 선택지를 더 못고르게 DateTime() 함수로 2초 동안 못고르게 만들었습니다. 그런데 구조적인 문제로 인해 화면이 로딩되고나서 무심코 유저들이 가위, 바위, 보를 탭하다보면 2초간 못고르게 된게 화면 로드할때부터 효력이 있어서 이것저것 누르다보면 UI에 대한 신뢰감이 저하됩니다. 그래서 화면 …

1 2 3