TIL
20231026 TIL
김빵그
2023. 10. 26. 18:47
Today 요약
[✅] 프로그래머스 코딩테스트 2문제
[✅] flutter 강의 3강
[] 옵시디언 정리겸 복습
[✅] 깃 강의 5강
배운 점
1. flutter
1-1 go, push 차이
context.go();
context.push();
- push : 데이터 등을 스택 위에 추가하는 것으로 뒤로가기 버튼을 통해 뒤로 갈 수 있다 (pop 사용 가능)
- go : 말 그대로 그 경로로 이동하는 것, 경로가 바뀌고 기존 스택에 추가하는 게 아닌 스택 자체를 교체하는 것
1-2 GoRouter 페이지 관리
- initialLocation : 초기위치 지정할 수 있음
// GoRouter 구성
final _router = GoRouter (
initialLocation : '/' ,
Routes : [
GoRoute (
name : 'home' ,
path : ' /' ,
builder : ( context, state ) => HomeScreen (),
),
GoRoute (
name : 'page2' ,
path : '/page2' ,
builder : ( context, state ) => Page2Screen (),
),
],
);
- 매개변수 지정하기
GoRoute (
path : '/:tab(home|setting|picture)' ,
builder : (context, state) {
final id = state.params[ 'id' ] // URL에서 "id" 매개변수 가져오기
return FruitsPage ( id : id);
},
),
- 하위경로 추가하기 Goroute 안에 Routes 사용해 하위경로를 추가해줄 수 있다
- pageBuilder 는 customTransitionPage를 반환하고 customTransitionPage에는 자식이 필요한데 애니메이션 효과를 줄 화면이 된다
GoRoute(
name: Screen.routeName,
path: Screen.routeURL,
builder: (context, state) => const NextScreen(),
routes: [
GoRoute(
name: DetailScreen.routeName,
path: DetailScreen.routeURL,
builder: (context, state) {
final id = state.params["id"]!;
return DetailScreen(id: id);
},
),
],
),
- 페이지 경로 전환 애니메이션
- https://docs.flutter.dev/cookbook/animation/page-route-animation
transitionsBuilder: (context, animation, secondaryAnimation, child) {
const begin = Offset(0.0, 1.0);
const end = Offset.zero;
final tween = Tween(begin: begin, end: end);
final offsetAnimation = animation.drive(tween);
return SlideTransition(
position: offsetAnimation,
child: child,
);
},
Flutter go_router: The Essential Guide
Go_router is a third-party package for routing in Flutter that aims to provide a more flexible and easy-to-use solution than the default…
medium.com
1-3 SlideTransition class
- 애니메이션을 사용하여 자식 위젯을 수평 또는 수직으로 이동시키는 데 사용되는 위젯
- 주로 다른 위젯과 함께 'AnimationController' 및 "Tween"을 사용하여 애니메이션을 제어하고 구성하는데 사용된다
SlideTransition(
position: Tween<Offset>(
begin: Offset(-1, 0), // 왼쪽에서 시작
end: Offset(0, 0), // 오른쪽으로 슬라이드
).animate(animationController),
child: YourWidget(),
)
- position : 어디에서 시작하고 어디로 이동하는지 제어 Animation<Offset>
2. git
2-1 git merge
- Git 버전 관리 시스템에서 브랜치를 병합하는데 사용되는 명령어
- 브랜치란 프로젝트의 특정 기능 또는 수정 작업을 분리하여 개발할 수 있도록 해주는 개념이다
- 브랜치를 병합하여 기능을 통합
- 기능 개발 또는 버그 수정을 위한 새로운 브랜치를 생성한다
- 작업이 완료되면, 해당 브랜치를 기본 브랜치 (master 또는 main)에 병합하려고 할 것
- 이 때 git merge 명령을 사용해 브랜치를 병합할 수 있다
- 충돌 해결
- 여러 사람이 동시에 같은 파일이 다른 부분을 수정하거나 두 브랜치가 다른 방향으로 변경 사항을 가질때 충돌이 발생할 수 있다
- 이런 경우 Git은 자동으로 충돌을 해결하지 못하면, 충돌을 해결하기 위해 수동으로 개입해야 한다
git merge <브랜치이름>
git merge master //현재 작업중인 브랜치에서 marter 브랜치를 병합할 때
git merge --no-ff <브랜치이름> // Fast-Forward 병합을 피하고 항상 병합 커밋을 만들 수 있다
- Fast-Forward 병합은 기존 브랜치의 커밋 히스토리를 변경하지 않고 단순히 포인터를 이동하는 방식으로 병합되는 것