분류 전체보기
-
[Flutter] Don't use 'BuildContext's across async gapsFlutter 2024. 6. 22. 22:59
아래와 같은 Warning 메시지를 만날 때가 있다.Don't use 'BuildContext's across async gaps. Try rewriting the code to not reference the 'BuildContext'.dartuse_build_context_synchronously 예를 들면 아래와 같은 상황이다.버튼을 눌렀을 때 비동기 동작을 수행할 때 ! 주로 네트워크 통신이 될텐데작업이 성공이면 pop, 실패면 alert을 띄워주고 싶다.이때 context를 사용하게 되는데 비동기 작업 직후에 context 바로 사용하면 안된다고 경고를 주고 있다.ElevatedButton( onPressed: () async { await viewModel.performAsync..
-
[오브젝트] 10. 상속과 코드 재사용독서_dev 2024. 5. 30. 08:19
- 중복 코드는 변경을 방해한다!- 중복된 코드를 제거하는 대표적 방법 : 상속, 합성- 상속은 결합도를 높인다. 쓸 때 매우 주의할 것. 그래도 쓴다면 추상화에 의존하도록 설계(결론: 합성 좋잖아~ 합성 쓰자.) 중복 코드는 왜 문제인가?(우리를 주저하게 만들고 동료들을 의심하게 만든다.)변경을 방해한다.어떤 코드가 중복인지 찾아야 한다.모두 일괄되게 수정해야 한다.모든 중복 코드를 개별적으로 테스트 해야 한다. Don't Repeat Yourself!! (DRY)중복코드를 쓰지 말자. 그럼 어떻게 해야 하는가.타입 코드 사용하지만, 낮은 응집도와 높은 결합도상속편하지만, 개발자의 가정을 이해하기 전에는 코드를 이해하기 어렵다.-> 결합도를 높인다. 상속을 위한 경고상속은 코드 재사용과 관련된 대부분의..
-
아주 작은 습관의 힘경험치바/독서 2024. 5. 28. 22:49
인생을 바꾸는 두 가지 질문.1. 어떤 사람이 되고 싶은가.2. 내가 원하는 결과를 얻은 사람은 어떤 사람인가.이 행동은 내가 바라는 사람이 될 수 있게 하는가?이 습관은 내가 원하는 정체성을 쌓아나가는 한 표가 되는가. 좋은 습관을 만드는 방법1. 분명하게 해라2. 매력적이게 해라3. 쉽게 해라4. 만족스럽게 해라 습관을 지속하는 방법아주 작은 변화가 큰 결과를 가져오진 않는다. 하지만 큰 결과는 매일 작은 습관이 쌓여서 만들어진다. 매일 1% 성장한다면 1년 후 37배가 성장해 있을 것이다.
-
[flutter] 1000 자리마다 쉼표 넣기Flutter 2024. 5. 19. 23:06
intl dependency 를 추가해야 합니다. 아래 코드를 넣으면 자동으로 추천해줄겁니다. IntExtension.dartimport 'package:intl/intl.dart';extension IntExtension on int { String toThousandSeparated() { return NumberFormat('#,###').format(this); }} 사용 예시.print(10000.toThousandSeparated) // 10,000
-
[Dart] Libraries & imports (접근제한자)Flutter/dart 2024. 5. 19. 22:35
1. Public별도로 명시하지 않으면 기본적으로 Public. 다른 모든 클래스나 파일에서 접근이 가능하다.2. Private변수나 메서드 이름 앞에 _ 를 붙이면 된다.해당 클래스나 라이브러리 내에서만 접근이 가능하다.3. library (라이브러리 스코프)같은 library로 묶인 파일들은 패키지의 private 멤버에 접근할 수 있다.part - 한 라이브러리 파일 내에서 서브파일들을 지정한다.part of - 라이브러리의 서브파일은 라이브러리의 private 변수에 접근할 수 있다.library.dart (메인 라이브러리 파일)library my_library;part 'part1.dart';part 'part2.dart';class LibraryClass { String _privateVar..
-
Exception `require': cannot load such file -- xcodeproj (LoadError) / flutterfire configure --project=Flutter 2024. 5. 16. 18:40
flutterfire configure --project= 를 할 때 zsh: command not found: flutterfire 에러를 만나고 해결했는데 다음 에러를 또 만났다. Exception: {문제경로}:in `require': cannot load such file -- xcodeproj (LoadError) xcodeproject 를 찾을 수 없다는 말.나 같은 경우 flutter로 androd만 개발하고 있었어서 ios를 실행한 적이 없었기 때문에 xcodeproj가 없어서 발생하는 문제로 보인다.xcodeproj를 설치해주면 문제 해결.sudo gem install xcodeproj
-
zsh: command not found: flutterfireFlutter 2024. 5. 16. 18:25
firebase로 flutter 앱을 만들 때 위 에러를 만날 수 있다. flutterfire configure --project=~~명령어를 입력할 때 flutterfire의 환경변수가 제대로 추가되어 있지 않으면 zsh(현재 shell) 가 제대로 찾지 못하기 때문이다.이 명령어 전에 아래 명령어를 통해 cli를 설치했다면 dart pub global activage flutterfire_cli warning으로 친절히 해결법을 같이 알려줬을 것이다.Warning: Pub installs executables into $HOME/.pub-cache/bin, which is not on your path.You can fix that by adding this to your shell's config ..
-
이미지의 크기를 줄인다. 리사이징 ? 압축 ? 해상도? 품질?iOS 2024. 5. 10. 01:44
앞서 픽셀의 개념과 함께 고해상도는 무엇인지에 대해 이해했습니다. 하지만 항상 고해상도의 이미지가 좋기만 한 것은 아닙니다. 세상에 공짜는 없기 때문에 고해상도의 많은 픽셀을 저장하려면 그만큼 많은 공간이 필요합니다. 당연히 처리하는 시간도 오래 걸릴 것입니다. 아주 작은 영역이라면 그렇게까지 필요하지 않은데도 말이죠. 그래서 개발을 하다보면 이미지의 크기를 줄여야 하는 경우가 생깁니다. 이미지의 크기. 어떻게 줄일 수 있을까요? 방법은 크게 2가지가 떠오릅니다. 픽셀 자체를 버리거나, 저장할 때 최대한 최적화를 시켜야 할 것입니다. 픽셀 자체를 버리는 것을 리사이징 (Resizing) 해상도는 유지하면서 저장 방식을 바꾸거나 데이터를 최적화하는 것을 압축 (Compression) 이라고 합니다.리사이징..