목록Flutter/Flutter개발 (11)
일모도원(日暮途遠) 개발자
Flavor를 만드는 경우는 보통 아래와 같다. 개발용, 릴리즈용, qa용으로 배포가 필요할때.유료, 무료(광고 포함, 기능 제한)을 할때. 안드로이드는 앱 모듈에 있는 build.gradle에 있는 productFlavors를 이용하여 flavor를 만든다. iOS는 두가지 방법이 있는데, flavor별로 타겟을 만들거나, 타겟은 한개(Runner)인데 스킴과 Configuration(Debug, Release등)을 각 flavor별로 만들면 된다. 각각 Native로 개발할때는 안드로이드는 안드로이드 스튜디오의 GUI를, iOS는 XCode의 gui를 이용하고 또 소스내에서 바로 어느 flavor인지 쉽게 구분할수 있는데, 플러터로 할때는 Dart코드에서 어떤 Flavor인지 구분을 해야한다. 앱이름..
flame오디오를 사용해서 총알이 발사될때 소리를 내게 했는데, 점점 소리나는 시점이 늦어지더니 어느순간 총알이 나가도 소리는 안나간다. 자세히 보니 소리가 아주 늦게 나오는것이다. 반복되는 소리는 AudioPool을 쓰라고 해서 이런씩으로 쓰고 있었다.AudioPool? _laserPool;_laserPool = await AudioPool.createFromAsset( path: 'sfx_laser1.ogg', minPlayers: 1, maxPlayers: 5, audioCache: FlameAudio.audioCache,);await _laserPool?.start() 디버깅을 해보니 음원파일은 1.2초짜리이고 재생은 0.6초 단위로 계속 재생을 시키고 있었다. maxPlayers를 5정..
Flame으로 게임 개발하는중에 Overlay로 뷰를 띄우니 아래처럼 빨간 색에 노란 밑줄이 보인다. class GameOverPopup extends StatelessWidget { final RogueShooterGame game; const GameOverPopup({super.key, required this.game}); @override Widget build(BuildContext context) { return Center( child: Container( width: 300, padding: const EdgeInsets.all(24), decoration: BoxDecoration( color: Colors.wh..
https://docs.flame-engine.org/latest/flame/router.html import 'package:flame/components.dart';import 'package:flame/effects.dart';import 'package:flame/events.dart';import 'package:flame/game.dart';import 'package:flame/geometry.dart';import 'package:flame/rendering.dart';import 'package:flutter/rendering.dart';class RouterGame extends FlameGame { late final RouterComponent router; @override ..
easy_localization과 GetX를 사용하고 있는데, 메뉴 언어를 영어, 한국어로 변경시 반영이 잘 안된다. 앱을 껏다 켰다해야 확실히 반영이 된다. 기존코드는 아래처럼 context.setLocale만 사용했었는데,context.setLocale(newLanguage.locale.toLocale(separator: '-')); 아래처럼 Get.updateLocale까지 같이 해주니 잘되었다.final newLocale =newLanguage.locale.toLocale(separator: '-');await context.setLocale(newLocale); // change `easy_localization` localeGet.updateLocale(newLocale); // change..
Dialog에 마이크 버튼이 가운데 있는데 오른쪽에 스피커 버튼을 두고 싶었는데, 다른방법을 몰라서 Row로 스피커를 양쪽에 배치하고 하나는 숨겨버리고 반응도 안되게 하였다. (IgnorePointer위젯의 child에 Opacity위젯을 쓰면서 투명도를 0으로 줌) 일단 내가 원하는 형태대로 나와서 이렇게 쓴다. Row( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ Gap(8), IgnorePointer(ignoring: true, child: Opacity(opacity: 0.0, child: VocaSpeakerB..
아이폰에서 컴파일 안되는오류때문에 flutter pub upgrade --major-versions를 하고 나서 컴파일 하니 아래 에러가 나온다. git:(dalnim*)> flutter run –-flavor helpee -t lib/main.dart Launching lib/main.dart on iPhone 15 Pro Max in debug mode...Running pod install... 219.0sRunning Xcode build... Xcode build done. ..
class MyAppBar extends StatelessWidget implements PreferredSizeWidget { const MyAppBar({super.key}); @override Size get preferredSize => const Size.fromHeight(100); @override Widget build(BuildContext context) { return AppBar( title: const Text('Flutter 앱'), ); } } preferredSize값을 조절해주면 저 빈공간이 사라진다. (값을 하드코딩안하고 싶은데, 잘 모르겠다.) Size get preferredSize => const Size.fromHeight(50);