분류 전체보기
-
36일차카테고리 없음 2023. 3. 19. 19:33
2주차 주간과제의 키오스크 앱에 작성한 소스코드를 확인하고, 코드 구성과 위젯 구성을 재배치하여 코드를 개선하는 리팩토링을 진행하시오. 리팩토링이란, 소프트웨어를 보다 쉽게 이해할 수 있도록 만드는 작업이다. 본인의 코드에서 부족했던 점을 개선할 수 있도록 한다. 가독성과 유지보수성을 높이는 목표를 가질 수 있도록 한다. 기존 코드를 보고 리팩토링이 적용된 핵심코드를 정리하시오. 기존에 했던 코드에서 리팩토링한점, 1. MVC 디자인패턴사용? (Card위젯도 따로 만들어서 관리) 2. 패키지 get사용 main.dart import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:order_app36/contr..
-
34일차카테고리 없음 2023. 3. 15. 15:56
과제를 진행하기 위해서 아래의 설정을 맞춰주세요. 프로젝트에 컬렉션 (post)를 만들고 2가지 Document를 만들어 다음의 값을 넣도록 한다. 문서명은 자동생성할 수 있도록 한다. 필드값은 content, likes, title를 같도록 하며, 데이터타입은 다음과 같다. content - string title - string likes - number 지금까지 JSON 데이터를 불러와서 Class에 적용시키기 위해 Serialization을 진행하였다. Firebase에서 이를 편하게 적용시킬 수 있도록하는 메서드 (withConverter)를 제공하는데, lib/model/post.dart // ignore_for_file: public_member_api_docs, sort_constructo..
-
33일차 비밀듣는고양이 최종카테고리 없음 2023. 3. 12. 22:09
회비밀듣는고양이를 secret_cat_sdk를 사용하지 않고 제작하시오. 아래의 API 명세서를 보고, 플러터에서 과제풀이에 활용할 수 있도록 하시오. 아래의 필수 기능을 포함해야 함. 로그인/회원가입 기능 유저 인증상태가 바뀌면 자동 페이지 리다이렉트 기능 디자인을 반드시 포함할 것 Read 유저리스트를 불러오는 기능 GET http://52.79.115.43:8090/api/collections/users/records?sort=-created { "page": 1, "perPage": 30, "totalPages": 1, "totalItems": 2, "items": [ { "id": "**USER_RECORD_ID** (주말과제시 필요)", "collectionId": "_pb_users_auth..
-
32일차카테고리 없음 2023. 3. 12. 21:11
Getx AuthController 강의를 보고 따라서 제작하시오. AuthController에는 User의 정보만을 담고있다. 로그인을 하면 유저를 식별할 수 있는 Token 값도 함께 받아볼 수 있는데, 해당 Token 값을 AuthController 내에 저장할 수 있도록 하고, 코드를 제시하시오. 해당 API의 정보는 다음과 같다 API URL // API Request // Method : POST // data : identity(String), password(String) // Teddy/sfac12341234 API Response { "token": "JWT_TOKEN", "record": { "id": "RECORD_ID", "collectionId": "_pb_users_auth_"..
-
31일차카테고리 없음 2023. 3. 10. 10:47
외부에서 접근을 할 수 없도록, Private하게 사용할 수 있는 멤버 변수(또는 멤버 함수 등)를 지정하는 방법이 있다. Dart에서는 Private 멤버 변수를 어떻게 설정하는지 알아보고 정리하시오. 이때, Private으로 멤버변수를 설정시 얻는 이점에 대해서도 추가적으로 고민하여 정리하시오. Private 변수 Dart에서는 변수명 앞에 _(underscore)를 추가함으로써, Private 변수를 생성할 수 있다. 클래스안에서만 Private 변수가 사용 가능한 다른 언어와는 달리, Dart에서는 클래스가 정의된 파일에서는 Private 변수에 접근할 수 있다. 예를들어, class Idol{ //Private 변수 선언 String _name; Idol(this._name); } void ma..
-
29일차 Getx카테고리 없음 2023. 3. 9. 18:31
Getx 패키지를 활용하여 기본적으로 제공되는 다음의 Get의 메서드를 활용하고 실행결과를 포함하여 내용을 정리하시오. Get.dialog : dialog 띄워주는 방법이며, 기존 showDialog 와 같은 역할을 합니다. main.dart // ignore_for_file: prefer_const_constructors import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:myapp29/page/main_page.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key..
-
30일차 과제카테고리 없음 2023. 3. 7. 16:09
위의 결과물처럼 메인페이지에서의 코인이 1초마다 +1씩 되도록 만드시오. 사용된 비트코인은 FontAwesome의 아이콘을 활용한다. Icon( FontAwesomeIcons.bitcoin, size: 96.0, color: Colors.yellow.shade700, ), 2. CoinController를 만들고, GetxController를 extends하여 위와 같은 결과물을 만들 수 있도록 하시오. 코인은 int형의 데이터를 가지며, 관측가능한 형태의 데이터타입으로 사용한다. 이 때 Timer를 사용할 수 있도록 한다. 코인이 10의 배수가 될때 마때, 코인 10n개를 달성했다는 안내문구를 출력하도록 한다. (Getx의 워커중 상황에 맞는 올바른 워커를 사용할 것) 3. [상점으로 이동하기] 버튼을..
-
6주차 주간과제카테고리 없음 2023. 3. 5. 23:19
아래는 공개된 API의 리스트를 공유하는 Github 문서이다. 아래의 링크에 들어가서, 공개되어있는 API중 하나를 분석하고 직접 기획하여 본인이 기획한 어플을 제작하시오. https://github.com/public-apis/public-apis 기획 과제내용을 간단히 2-3줄로 설명하여 제출하시오. 이 때 해결 과정을 함께 포함하여 정리하시오. (어려웠던 내용과 헤맸던 내용이 있다면 반드시 기재할 것) 다음의 조건을 반드시 만족할 것. 페이지는 두 페이지 이상이어야 하며 네비게이션을 활용하여 페이지 이동이 포함될 것 클래스를 작성하여 Serialization이 적용될 수 있도록 할 것 적절한 애니메이션 효과를 포함할 것 API를 고르는데 뭐가 뭔지 모르겠고.. 그래도 스포츠앱을 만들어 보고 싶어서..