본문 바로가기

전체 글

GestureDetector 의 onTap 이 먹히지 않을때 GestureDetector 의 자식 위젯에서 이벤트를 소모해서 ontap 이벤트가 먹히지 않는 경우가 있는데 이때는 IgnorePointer 위젯으로 GestureDetector 의 자식 위젯을 감싸 주어서 이벤트를 자식위젯에서 소모하지 않도록 하는 것이 좋다. 더보기
row 위젯과 column 내부 요소간의 정렬을 위해서 필요합팁 row 위젯과 column 내부 요소간의 정렬을 할때 각각 내부 위젯에서 차지하는 영역이 달라서 row나 column에서  crossAxisAlignment 등을 통해서 정렬을 하려고 해도 정렬이 되지 않거나또는 내부에 크기 지정되지 않아서 stretch가 먹히지 않아 위젯이 표시 되지 않는 문제점이 있을 수 있습니다  이때 사용해야 하는 것이 IntrinsicHeight 위젯(Row에서 사용)으로 감싸거나 IntrinsicWidth(  Column에서 사용 )을 합니다 이때 IntrinsicHeight ,IntrinsicWidth 위젯들은 각각  Row 나 Column 내부 요소들중 가장 큰 크기위 위젯에크기에 맞추어서 각각 자리를 확보합니다 더보기
flutter개발시 MaterialApp 실행전 외부라이블러리 적용시 조치법 결론은 main함수 내에서  MaterialApp() 실행전 라이블러리를 사용하기 위해서는   우선 WidgetsFlutterBinding,ensureInitalized(); 을 먼저 사용해야 한다.WidgetsFlutterBinding,ensureInitalized();  이것은 플러터의 실행 준비를 확인 하는 함수 인데 main 함수에서 runapp을 통해서 MaterialApp() 을 바로 사용하면 WidgetsFlutterBinding,ensureInitalized()가 바로 실행되나  runapp말고 다른 함수를 실행하고 싶다고 할때는  WidgetsFlutterBinding,ensureInitalized() 을 먼저 실행해 주어야 한다. 더보기
[flutter] No implementation found for 관련 오류 해결법 해당 오류는 실행중인 플러터 앱을 중지시키고 터미널에서 flutter clean 명령어 실행후 다시 시작하면 된다. 해당오류가 나는 이유는 실행도중 네이티브 코드 관련  코드를 작성및 변경해서인데이과정에서 네이티브 코드와 동기화가 안될 수 있어서이다.이때 안드로이드 에뮬레이터를 사용하는 경우 추가로 Multidex 오류가 날 수 있는데이때는 추가로 터미널에서 flutter run 실행후 실행기기를 안드로이드 에뮬레이터 선택multidex를 지원할 수 있도록 y를 선택해주면 된다. 더보기
오름캠프 Flutter 과정 생존코딩 수강후기 해당 교육과정을 선택하게 된 배경은 안드로이드 개발자인 친구에게 오준석 선생님의 플러터 과정을 추천받게 되어서 시작하였습니다. 가장 좋았던 부분은 주어진 실습시간 통해서 저에게는 새로운 언어인 다트를 단지 이론적으로만 아니라 실제로 활용하여 배우고 익혀갈 수 있었디는 점이 좋았습니다. 실습과정에서 주강사님과 보조강사님께서 친절하고 아낌없는 도움을 주셔서 어려운점을 해결하는데 큰도움을 받았습니다. 이론을 배우는 과정에 있어서도 점진적으로 새로운 개념을 익혀나가면서 뒤에 나오는 개념에 필요한 이론을 차근차근 하나씩 배워나갈 수 있었던 점이 좋았고 온라인 과정이라 소통없이 단지 혼자만 공부하지 않을까 하는 선입견을 가지고 있었는데 게더를 통해서 같이 수업을 듣는 수강생들과 서로 편하게 소통할 수 있었고 이러한.. 더보기
21일차(Result패턴) Result 패턴 서버에 데이터 요청시 예상되는 상황 성공 (Success) 실패 (Error, Failure) 네트워크 연결이 아예 안 되어 있음 네트워크 불안정으로 타임아웃 발생 등등 enum은 동등성 및 헤시코드 비교 안되서 한계가 있음 일반적인 클래스 + enum처럼 사용 할 수 있다. 에러처리의 기본 try - catch 본적으로 예외는 try - catch 를 활용하여 처리 한다. 런타임 에러 뿐만 아니라 논리적인 오류나 예외 상황에 대한 처리를 하기에는 부족하다 Result 패턴은 성공, 실패시 처리에 유용한 패턴이다 성공과 실패 중 하나를 리턴하는 Result 클래스 예시 Result 클래스는 성공시에는 데이터를, 실패시에는 Exception(또는 String)을 담는 객체를 정의한다 이 .. 더보기
20일차(네트워크 통신) JSON 개념 서버-클라이언트 통신에서 표준처럼 사용되는 데이터 교환 형식이다. 가볍고 사람이 읽기 쉽다 Map 과 같은 간단한 구조 직렬화 하여 문자열로 나타내기 쉽다 대부분의 언어가 이를 파싱할 수 있기 때문에 상호 운용성은 걱정할 것이 없다 HTTP 개념 HyperText Transfer Protocol 원래 문서 전송용으로 설계된 상태 비저장용 프로토콜 브라우저가 GET 요청으로 웹 서버의 문서를 읽어오는 용도였음 지금은 서버와 클라이언트가 텍스트, 이미지, 동영상 등의 데이터를 주고 받을 때 사용하는 프로토콜로 확장됨 웹 상에서 보는 이미지, 영상, 파일과 같은 바이너리 데이터도 HTTP 멀티파트나 Base64 인코딩하여 사용 HTTP에 전송 계층 보안(TLS: Transport Layer Se.. 더보기
19일차(Dto, Mapper) 서버에서 들어오는 데이터가 변동적이거나 일반적인 값이 들어오지 않을 경우도 있다. DTO 데이터 소스를 모델 클래스로 변환하는 과정에서 순수 하게 클래스에 담기 위한 중간 전달 객체 모델 클래스와 비교하여 어떤 특징이 있는가? 모든 필드가 Nullable 변수 직렬화, 역직렬화 제공 즉, Json을 무지성으로 받아들인다 기존 모델 클래스를 Dto 가 대체 모델 클래스 다시 정리 모든 필드가 non-nullable 상수 직렬화 역직렬화 == hashCode 재정의 toString() 재정의 깊은 복사 제공 copyWith() Json 을 그냥 받지 않고 내 앱에서 필요한 형태로 필드를 수정할 수 있음 데이터 소스의 모양을 확인하지 않고 미리 정의할 수 있음 Dto를 모델로 변환해서 사용해야 함 Mapper.. 더보기