flutter 뿐만 아니라 어떤 앱을 개발하더라도 시각효과는 필요로 하다.

특히나 가장 많이 쓰는 페이지 전환 효과

 

화면과 화면 사이에 전환 효과를 넣어주면 좀 더 부드럽고 유저 입장에서도 딜레이 되는 시간을 느끼지 못하게 빠르거나 부드럽다는 느낌을 주곤 한다.

 

flutter 쿡북에서 제공하고 있는 예제이다.

 

https://docs.flutter.dev/cookbook/animation/page-route-animation

 

Animate a page route transition

How to animate from one page to another.

docs.flutter.dev

 

PageRouteBuilder와 tween을 만들고 animatedWidget을 활용하여 경로 전환을 생성하고 이용을 한다.

 

import 'package:flutter/material.dart';

void main() {
  runApp(
    const MaterialApp(
      home: Page1(),
    ),
  );
}

class Page1 extends StatelessWidget {
  const Page1({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            Navigator.of(context).push(_createRoute());
          },
          child: const Text('Go!'),
        ),
      ),
    );
  }
}

Route _createRoute() {
  return PageRouteBuilder(
    pageBuilder: (context, animation, secondaryAnimation) => const Page2(),
    transitionsBuilder: (context, animation, secondaryAnimation, child) {
      return child;
    },
  );
}

class Page2 extends StatelessWidget {
  const Page2({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: const Center(
        child: Text('Page 2'),
      ),
    );
  }
}

기본 루트 materialApp에 메인 페이지가 되는 Page1을 home에 설정해둔다..

 

StatelessWidget을 상속 받아서 build에 각종 앱바등을 설정을 한다.

 

 

첫화면에서 ElevatedButton을 터치시 Route _createdRoute로 이동한다.

Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            Navigator.of(context).push(_createRoute());
          },
          child: const Text('Go!'),
        ),
      ),
    );

 

Route _createRoute() {
  return PageRouteBuilder(
    pageBuilder: (context, animation, secondaryAnimation) => const Page2(),
    transitionsBuilder: (context, animation, secondaryAnimation, child) {
      return child;
    },
  );
}

 

만들어진 라우터에는 Page2를 생성해서 return 시켜준다.

최종적으로 page2페이지가 나오고 종료되게 된다.

 

여기까지가 기본 뼈대이고 이후에 tween을 생성하여 페이지 사이에 전환 효과를 넣는다.

transitionBuilder의 파라메터는 context, animation,secondaryAnimation, child를 받는다.

그리고 Tween을 설정하는데 시작옵셋과 종료 옵셋을 넣어주면 된다.

 

그 다음으로 AnimatedWidget을 활용하여 옵셋값이 변경될때마다 자식을 가져와서 리턴시킨다.

 

애니메이션이라고 무조건 똑같고 규칙적이지 않고 시간이나 속도를 조절하면 좀 더 미려한 효과를 줄 수 있다.

CurveTween을 활용하면 된다.

 

최종 예제를 보면 go버튼을 누르면 아래에서 위로 슬라이딩 되면서 다음 페이지가 올라오게 된다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,
2022. 12. 12. 13:17

flutter sdk 설치과정

flutter sdk 설치과정

 

요즘은 이전과 달리 하나의 코딩으로 인해서 여러 디바이스로 배포를 할수 있는 플랫폼이 많이 등장하고 있습니다.

한창 공부중인 것이 플러터로 구글에서 서비스를 하고 있습니다.

 

윈도우에 설치를 하기 위한 요구 사항은 최소 1.64기가의 하드공간과 파워쉘 5.0이상이여야 합니다.

참고로 윈도우 7일 경우는 파워쉘 5.0으로 수동 업그레이드를 하여야 합니다.

 

flutter sdk는 현재 기준으로 버전이 3.3.9입니다.

 

https://docs.flutter.dev/get-started/install/windows

 

받은 뒤 할일은 압축파일을 풀어서 적당한 폴더에 풀으시고 그 경로를 윈도우 환경변수에 등록 하시면 됩니다.

검색창에 env를 입력 후 환경변수 -> 사용자 변수 아래쪽에 보시면 path항목에 추가하시면 됩니다.

 

안드로이드 스튜디오도 필요한데 명령어 창에서 flutter doctor를 입력을 하시면 필요한데 누락이 된 부분은 없는지

추가로 설치해야할 부분이나 전반적인 상황을 바로 알 수 있습니다.

 

개발 툴은 보편적으로 많이 쓰는 visual code를 사용하시면 됩니다.

,
2022. 11. 11. 00:46

flutter-3.3 업데이트 내용

flutter 3.3은 8월 31일날 업데이트가 되었다.

개발을 하다 보면 툴이나 플랫폼이 자주 업데이트가 되기도 하는데 한두번의 위아래는 상관없지만 그게 수개월 수년이 흘러가면 이전에 잘 동작하던 코드가 안될때가 많아서 더 편리해지거나 개선되는게 무엇인지 늘 체킹 해두는 것이 좋다.

 

이전에 폰갭을 그렇게 하고 방치하다 호되게 혼난적이 있어서 

 

global selection

selectablearea 위젯의 모든 자식은 모두 선택이 가능하다..

 

flutter에서 material design3 마이 그레이션 확인

https://github.com/flutter/flutter/issues/91605

 

상단에 큰 appbar를 지원을 한다.

flutter를 이용해서 개발을 하다보면 거의 필수적으로 앱바는 쓰게 된다.

구현을 해도 되지만 기본적으로 되어 있는 위젯을 가져다 쓴다면 개발 시간을 줄여줄 수 있다.

 

더 이상 32비트 ios 지원 되지 않는다.

또한 맥os의 버전 10.11 및 10.12 종료를 시킨다.

 

플러터 블로그나 홈페이지를 살펴보면 꽤 괜찮은 정보를 확인 할 수 있는편이다.

 

개발에 정신없이 팔려 있다보면 기본적인 레퍼런스 사이트를 잘 안가게 된다.

,