다트의 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용 기능이 풍부한 오디오 플레이어입니다. 가장 뛰어난 기능은 재생 모드를 재설정하는 데 매우 낮은 지연 시간을 가진다는 점으로, 길고 복잡한 연결 해제, 해체, 재설정 과정 없이 다음 오디오를 준비하는 …

[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에 대한 신뢰감이 저하됩니다. 그래서 화면 …

플러터 ListTile 위젯에 이미지를 제목 위에 추가하는 방법

Posted on

플러터로 텍스트를 목록으로 표시하고 탭하면 지정한 작동을 하도록 하는 위젯이 꽤 됩니다. 그중에서 간편하게 쓸 수 있는 것이 ListTile 입니다. ListTile은 해시맵과 같은 유형으로 읽어들인 구조적인 데이터의 구조를 입력받아 각 타일을 채워넣는 것이 자동화됩니다. 아래처럼 할 수 있습니다. 이렇게 저장된 데이터를 리스트로 만들어 저장하고 이 값을 map() 으로 받아와서 처리할 수 있습니다. 이 경우 Row()나 …

[플러터] 플러터 쓰다가 생각난 이런 저런 상념

Posted on

(1) build 함수에 위젯 주렁주렁 달기build 함수에 return 문에 위젯을 배치해서 처리하는 것이 플러터의 특징이다. UI 구성을 하다보면 위젯 개수가 많아지고 속성도 많아져서 매우 길게 늘어진다. 이렇게 되면 코드가 가독성도 없고, 무거운 앱인 경우 오버헤드가 있다고 한다. 그래서 고안된 추천 사항은 children: [] 속성 설정이 가능한 위젯을 두고 달아둘 위젯을 클래스나 함수로 분리해서 배치하라는 기법이다. …

1 2 3