떨림 코딩 생성기 떨림에서의 응용

19925 단어 fluttermobiletutorial
저자: Ivy Walobwa✏️
원생 안드로이드 앱을 개발한 사람들은 플래터의 자산을 사용하려 할 때 움츠러들 수 있다.Flatter 개발자로서 코드에서 문자열을 직접 사용해서 인용할 수 있는 선택의 여지가 없습니다.예를 들어, 그림을 처리하는 것은 쉽지 않다. 왜냐하면 그것들의 경로 문자열을 통해 그것들을 인용해야 하기 때문이다.
안드로이드 애플리케이션 개발 환경에는 코드의 어느 곳에서나 참조할 수 있는 모든 자산을 유형 보안 변수로 변환하는 데 도움을 주는 도구가 있습니다.이 도구에는 다음과 같은 여러 가지 이점이 있습니다.
  • 은 자산을 언급할 때 맞춤법이 틀릴 위험을 낮추었다.만약 맞춤법 오류가 발생하면, 그것들은 한 곳에 있을 것이다. 이것은
  • 을 더욱 쉽게 디버깅할 수 있다
  • 코드
  • 의 자산 사용 위치 추적 용이
  • 코드
  • 에서 사용되지 않는 자산을 쉽게 식별
  • 및 그 이상!
  • Flatter는 이런 기존의 도구를 제공하지 않는다.다행히도, FlutterGen이 있습니다. 이것은 자산에 사용되는 떨림 코드 생성기입니다. 응용 프로그램의 모든 문자열 기반 API를 삭제하는 데 도움을 줄 수 있습니다.
    이 문서에서 Flatter 프로그램에서 FlatterGen을 사용하는 방법을 배울 것입니다.

    소개하다.


    자산은 런타임 시 액세스할 수 있도록 애플리케이션과 번들로 구성되고 구축된 파일입니다.자산은 다음과 같은 형태로 구성될 수 있습니다.
  • 이미지
  • 애니메이션 글씨체
  • 프로필
  • 정적 데이터(예: 텍스트 또는 JSON 파일
  • Flatter 응용 프로그램에서 리소스를 로드하려면 보안 상태가 아닌 경로 문자열을 사용하여 리소스를 참조해야 합니다.FlutterGen 패키지는 모든 자산에 대한 코드를 생성하여 응용 프로그램의 모든 문자열 기반 API를 삭제합니다.
    FlatterGen을 사용하면 매우 간단합니다.
  • 귀하는 pubspec.yaml 문서에 자산을 신고하는데 이것은 귀하의 일반적인 방법과 같습니다.추가 구성이 필요 없음
  • 그리고 기본적으로
  • lib/gen 디렉토리에서 관련Dart 파일
  • 을 생성합니다.
  • 그리고 생성된 클래스
  • 을 사용하여 자산을 탑재할 수 있습니다
    다음은 구성할 수 있는 사용 가능한 파서입니다.
    자산
  • - assets.gen.dart에서 lib/gen 파일 생성
  • 글꼴 - 이 구성은 fonts.gen.dart에서 lib/gen 파일을 생성합니다.
  • 색상 - 이 구성은 colors.gen.dart에서 lib/gen 파일을 생성합니다.
  • FlatterGen은 애니메이션과 같은 리소스를 사용할 때 다음과 같은 통합을 제공합니다.
  • flutter_svg - 로드할 수 있습니다.svg 파일
  • flare_flutter - 로드할 수 있습니다.flr 파일
  • rive - 로드할 수 있습니다.riv 파일
  • 한번 해보자!

    개시하다


    계속하려면 get the starter app here을 선택하십시오.이 애플리케이션은 루트 디렉토리의 assets 폴더에 다음과 같은 자산을 추가했습니다.
    애니메이션
  • - .riv 파일
  • 글꼴 - .ttf 파일
  • 이미지 - .png.svg 파일
  • JSON-.json 파일
  • 비디오 - .mp4
  • 폴더 구조에 표시된 유형에 따라 자산을 그룹화하는 것은 매우 좋은 방법이다.
    다음은 폴더 구조 및 응용 프로그램 모양입니다.


    이 자산들은 프로그램에 불러왔지만 경로 문자열이 있습니다.자산을 위한 코드를 생성하고 정적 변수를 사용하여 접근할 것입니다.FlatterGen 지점에서 코드를 생성하는 최종 프로그램을 찾을 수 있습니다.
    FlatterGen을 사용하는 방법에 대해 알아보십시오.

    FlatterGen 설정


    응용 프로그램에서 FlatterGen을 설정하려면:

    FlatterGen 설치


    다음과 같은 방법으로 FlatterGen을 설치할 수 있습니다.
  • 사용 자제
  • 전 세계
  • 추가
  • build_runner의 일부입니다.
  • build_runner의 일부로 설치할 예정입니다.build_runnerflutter_gendev_dependencies 파일의 pubspec.yaml에 추가합니다.
    dev_dependencies:
      build_runner:
      flutter_gen_runner:
    
    FlatterGen을 설치하려면 루트 응용 프로그램 디렉토리에서 다음 명령을 실행합니다.
    $ flutter pub get
    

    FlatterGen 사용

    pubspec.yaml 파일에 자산 지정:
    flutter:
      uses-material-design: true
      assets:
        - assets/images/
        - assets/video/
        - assets/animations/
        - assets/json/
    
      fonts:
        - family: RobotoMono
          fonts:
            - asset: assets/fonts/RobotoMono-Regular.ttf
            - asset: assets/fonts/RobotoMono-Bold.ttf
              weight: 700
            - asset: assets/fonts/RobotoMono-Italic.ttf
              style: italic
    
    사용하는 해상도 종류: assetsfonts을 주의하십시오.starter app에는 자원과 글꼴이 포함되어 있습니다.

    자산에 대한 코드 생성


    루트 응용 프로그램 디렉토리에서 flutter packages pub run build_runner build을 실행합니다.이 명령은 lib/gen 폴더의 관련 자산에 대한 파일을 생성합니다.이 경우 두 개의 파서 assetsfonts이 지정되므로 각 파서에 대해 두 개의 파일이 생성됩니다.
  • assets.gen.dart - 이미지, 비디오, 애니메이션 및 JSON 자산을 포함하는 생성 코드
  • fonts.gen.dart - 글꼴 자산
  • 의 생성 코드 포함

    생성된 코드 사용


    관련 레이아웃 파일에 파일 가져오기를 추가해야 합니다.
    import '../gen/assets.gen.dart';
    import '../gen/fonts.gen.dart';
    
    자산 파일의 이름 방식에 따라 경로 문자열을 읽을 클래스를 만들 것입니다.
    예를 들어, 비디오를 다음 형식으로 추가하면 문자열 클래스가 만들어지고 해당 클래스에 액세스할 수 있습니다.
    // getter
    String get bee => 'assets/video/bee.mp4';
    
    // static variable
    static const String robotoMono = 'RobotoMono';
    
    현재 당신은 당신의 자산을 위해 코드를 생성했습니다. 타자 오류와 작별하고 코드에서 생성된 정적 변수를 사용하십시오.
    다음은 레이아웃 파일에서 생성된 코드를 사용하는 법을 배울 것입니다.

    이미지 처리


    만약 떨림이 추가된 이미지 형식을 지원한다면 Image 클래스를 생성합니다.사용자의 경우 이미지 경로는 assets/images/add_color.png입니다.다음 형식으로 이미지를 로드할 수 있습니다.
  • Assets.images.addcolor - AssetImage 클래스
  • 구현
  • Assets.images.addcolor.image(...) - Image 클래스
  • 반환
  • Assets.images.addcolor.path - 반환 경로 문자열
  • 시작 코드에서 이미지 경로를 생성된 경로로 바꿉니다.
    // with string APIs
    Image.asset(
      "assets/images/add_color.png",
      height: 400,
      width: 400,
    ),
    
    // with generated path - option 1
    Image.asset(
     Assets.images.addColor.path,
      height: 400,
      width: 400,
    ),
    
    // with generated image class- option 2
    Assets.images.addColor.image(width: 400, height: 400),
    
    .svg 이미지 파일을 사용할 수도 있습니다.이 예에는 svg류도 창설되었다.flutter_svg을 통합하여 .svg 파일을 로드합니다.

    pubspec에서 통합을 사용합니다.yaml 파일


    기본적으로 FlatterGen 통합은 false으로 설정됩니다.이러한 값을 사용하려면 값을 true으로 설정해야 합니다.
    flutter_gen:
      integrations:
        flutter_svg: true
    flutter:
    
    언제든지 pubspec.yaml을 변경하려면 다음 코드를 실행하십시오.
    flutter pub get
    
    flutter packages pub run build_runner build
    
    이렇게 하려면 SVG 이미지를 응용 프로그램에 추가합니다.
    // with string APIs
    SvgPicture.asset(
      "assets/images/book_lover.svg",
      height: 300,
      width:300,
    ),
    
    // with generated SVG class
    Assets.images.bookLover.svg(width: 300, height: 300),
    

    비디오 처리


    videos의 경우 생성된 문자열 클래스에서 경로 문자열을 읽을 수 있습니다.
    // with string APIs
    _videoController = VideoPlayerController.asset("assets/video/bee.mp4");
    
    // with generated path string
    _videoController = VideoPlayerController.asset(Assets.video.bee);
    

    애니메이션 사용


    애니메이션과 이미지에 대해 rive 클래스를 만들었습니다. 이 예에서 우리는 .rive 파일을 사용합니다.또한 rive 통합을 설정해야 합니다.
    flutter_gen:
      integrations:
        flutter_svg: true
        rive: true
    
    이미지에 액세스하는 것과 동일한 방법으로 애니메이션에 액세스할 수 있습니다.
    // with string APIs
    RiveAnimation.asset(
      "assets/animations/vehicles.riv",
      controllers: [_animationController],
      animations: const ['idle', 'curves'],
    ),
    
    // with generated path - option 1
    RiveAnimation.asset(
      Assets.animations.vehicles.path,
      controllers: [_animationController],
      animations: const ['idle', 'curves'],
    ),
    
    // with generated rive class - option 2
    Assets.animations.vehicles.rive(
        controllers: [_animationController],
        animations: const ['idle', 'curves'],
      ),
    ),
    

    글꼴 사용


    생성된 글꼴 이름은 애플리케이션을 통해 액세스할 수 있는 FontFamily 클래스의 정적 변수에 지정됩니다.
    // with string APIs
    const Text(
      "This is RobotoMono font - medium",
      style: TextStyle(fontFamily: 'RobotoMono'),
    ),
    
    // with generated variable
    const Text(
      "This is RobotoMono font - medium",
      style: TextStyle(fontFamily: FontFamily.robotoMono),
    

    정적 데이터 사용


    텍스트와 JSON과 같은 정적 데이터의 경로가 Getter에 할당되어 응용 프로그램에서 읽을 수 있습니다.
    // with string APIs
    final String response = await rootBundle.loadString("assets/json/assets_tye.json");
    final data = await json.decode(response);
    
    // with generated path
    final String response = await rootBundle.loadString(Assets.json.assetsTye);
    final data = await json.decode(response);
    

    코드 생성 스타일 변경


    기본적으로 FlatterGen 패키지는 점 구분자 스타일을 사용하여 자산에 대한 코드를 생성합니다: Assets.video.bee.다른 종류의 코드 생성을 지원합니다.이러한 작업은 다음과 같습니다.
  • snake-case - Assets.video_bee에 액세스한 자산
  • camel-case - Assets.videoBee에 액세스한 자산
  • 코드 생성 스타일을 변경하려면 style 파일에 pubspec.yaml을 지정해야 합니다.
    flutter_gen:
      integrations:
        flutter_svg: true
        rive: true
    
      assets:
        enabled: true
        # Avaliable values:
        # - camel-case
        # - snake-case
        # - dot-delimiter
        style: dot-delimiter
    

    결론


    자산의 유형과 문자열 경로를 사용하여 Flatter에 접근하는 방법을 알고 있습니다.이제 FlatterGen을 설치하고 사용할 수 있습니다.
  • 애플리케이션에서 자산에 대한 문자열 참조 삭제
  • 자산 유형 및 정적 변수 생성
  • 자산 유형 보안으로
  • 로드
  • 맞춤형 자산 생성 스타일
  • 너는 GitHub으로 전화를 걸어 FlatterGen을 조회할 수 있다.우리는 네가 이 강좌를 좋아하길 바란다.

    LogRocket: 네트워크 애플리케이션에 대한 완벽한 가시성



    LogRocket은 프런트엔드 어플리케이션 모니터링 솔루션으로 사용자가 자신의 브라우저에서처럼 문제를 재방송할 수 있습니다.LogRocket은 오류의 원인을 추측하거나 화면 캡처와 로그 저장을 묻는 대신 세션을 재방송하여 오류의 원인을 신속하게 파악할 수 있습니다.프레임워크가 어떻든지 간에, 모든 프로그램과 완벽하게 사용할 수 있으며, 플러그인은 Redux, Vuex, @ngrx/store의 다른 상하문에서 기록됩니다.
    Redux 작업과 상태를 기록하는 것 외에 LogRocket에는 콘솔 로그, JavaScript 오류, 스택 추적, 제목과 본문이 있는 네트워크 요청/응답, 브라우저 메타데이터 및 사용자 정의 로그가 기록되어 있습니다.또한 DOM은 페이지의 HTML과 CSS를 기록하여 가장 복잡한 한 페이지 프로그램의 픽셀급 완벽한 영상을 재현합니다.
    Try it for free .

    좋은 웹페이지 즐겨찾기