반응형

분류 전체보기 103

Flutter - 6.3 from Json

이번에는 API로 받은 Json 데이터를 flutter내부에서 사용할 수 있는 형태로 바꿔야 한다.API의 데이터는 어떻게 되어 있을까?[{...}, {...}, ... , {...}] 이렇게 되어 있다. List 안에 여러 요소가 있는 형태이다. 그리고 String이다.(주로 이렇게 되어 있는 것 같다.)그러면 각 요소를 담는 '그릇'부터 만들어보자../models/webtoon_model.dartclass WebtoonModel {  final String title, thumb, id;   WebtoonModel.fromJson(MapString, dynamic> json)      : title = json['title'],        thumb = json['thumb'],        id ..

Flutter - 6.2 Data Fetching

일단 ./services/api_service.dart를 만들자.그리고, http 패키지를 사용해야 한다.https://pub.dev/ The official repository for Dart and Flutter packages.Pub is the package manager for the Dart programming language, containing reusable libraries & packages for Flutter and general Dart programs.pub.dev이 링크에서 dart 패키지를 검색할 수 있다. http를 검색해서 적절한 버전을 찾아보자.그 후에 pubsec.yaml 파일에 들어가서 dependencies 밑에다가 두면 된다. 이렇게.dependencies: ..

Flutter - 6.1 AppBar

이제부터는 웹툰앱을 만드는 프로젝트가 시작되었다.니꼬쌤이 직접 만든 api를 이용해서 만들 것이라고 함.이번에는 AppBar를 이용해서 제목을 만들었다.AppBar에는 아주 많은 옵션이 있으니... 나중에 사용할 때마다 대충 찾아보자.딱히 특별한 것은 없어서 전체 코드를 첨부한다.main.dartimport 'package:flutter/material.dart';import 'package:toonflix/screens/home_screen.dart';void main() {  runApp(const App());}class App extends StatelessWidget {  // 이 위젯의 key를 stateless widget이라는 슈퍼클래스에 보낸 것임.  const App({super.key..

아무거나 공부하기 3) Value at Risk(VaR), Expected Shortfall(ES)

FRM Part 1을 인강을 들으면서... 'Value at Risk(VaR)', 'Expected Shortfall(ES)' 이 두개에 대해서 배웠었다.하지만, ES에 대해서 증명은 해주지 않으셨었다.그래서... 직접 해보고자 해서 전에 증명을 해뒀었다. 그래서 나도 되짚어 보면서, 게시글을 만들어보고자 한다.1. 일단 VaR에 대해서 조금 알아보도록 하자.VaR이란? 특정 기간동안 일정 수준의 신뢰구간에서 예상되는 최대 손실 금액수식으로 표현해보자. $$ \text{VaR} = \text{inf}\{ x; F_\text{x}(x) \leq \alpha \% \} $$  $\alpha = 1-x$$\alpha$ : Significance Level$x$ : Confidence Level$F_ \text..

Flutter - 5.4 Code Challenge

'실행'버튼 밑에 '정지'버튼을 만들어서 시간 초기화를 하는기능을 추가하는 code challenge가 주어졌다.어렵지 않다.  void reset() {    timer.cancel();    setState(() {      isRunning = false;      totalSeconds = twentyFiveMinutes;    });  }이렇게 reset 함수를 추가해주고...실행하고 있는 것들을 모두 멈춰줘야 한다는 사실을 잊지 말자.                Center(                  child: IconButton(                      iconSize: 60,                      color: Theme.of(context).cardCo..

Flutter - 5.3 Date Format

이번에는 시간이 다 줄어들면 Pomodoros밑에 있는 숫자가 하나씩 커지도록 할 것이다.1.  void onTick(Timer timer) {    // 0초가 되면...    if (totalSeconds == 0) {      // Pomodoro 숫자 증가 + 초기화      setState(() {        totalPomodoros = totalPomodoros + 1;        isRunning = false;        totalSeconds = twentyFiveMinutes;      });      timer.cancel();    } else {      // state 변경      setState(() {        totalSeconds = totalSeconds -..

Flutter - 5.2 Pause Play

단순하다. 일시정지/실행 기능을 넣으려고 한다.  bool isRunning = false;이 변수를 이용해서(false로 초기화) 실행중인지, 실행중이 아닌지 구분한다.  void onStartPressed() {    timer = Timer.periodic(const Duration(seconds: 1), onTick);    setState(() {      isRunning = true;    });  }   void onPausePressed() {    timer.cancel();    setState(() {      isRunning = false;    });  }이렇게 두 함수를 이용해서 실행하는 함수와 일시정지하는 함수를 만들었다.setState으로 상태를 변경해야 함을 명심하자.그..

Flutter - 5.1 Timer

import 'dart:async';이 패키지에서 가져와야 한다.  int totalSeconds = 1500;  // 사용자가 버튼을 누를 때만 타이머가 생성되게 할 예정이라 late로 초기화를 미루자.  late Timer timer;  void onTick(Timer timer) {    setState(() {      totalSeconds = totalSeconds - 1;    });  }  void onStartPressed() {    timer = Timer.periodic(const Duration(seconds: 1), onTick);  }start 버튼을 누르면...Timer.periodic이 정해진 간격에 한번씩 함수를 실행하도록 한다.여기에서는 1초 간격으로 함수 onTick을..

오랜만인 일상글

논문도 쓰고...논문 또 쓰고...논문 또또 쓰고...하다보니 전역하고도 오랫동안 안 썼었다.(그래도 논문은 거의 끝나간다.)사회복무요원을 하면서... 퇴근 후에 계속 공부했었다.그래서 결과는...이게 붙어버렸다. 솔직히, 공부를 만족할 만큼 하지 못해서 걱정했었다.(Part1 때는 만족할 만큼 했었는데...)특히, 시험 며칠 전에 로아콘서트까지 다녀와서...이 결과들을 보라. 나는 Operational Risk and Resiliency를 사실상 버렸다.대충 해도 괜찮으니 너무 짜증나는 부분은 조금 대충 하고 나머지에 집중하는 것도 하나의 방법인 것 같다.아마 FRM을 공부하면서 직접 증명했던 내용들이 있어서 이 내용들은 따로 업로드 할 예정이다.(공부시간 등 물어볼 것이 있으면 물어봐도 괜찮다. 물론..

일상 2024.11.17

Flutter - 5.0 User Interface

2024년 11월 기준, Nomad Coders님의 강의와 flutter 버전 차이에 의해서 조금 코드가 다르다는 점을 유념하자.main.dartimport 'package:flutter/material.dart';import 'package:toonflix/screens/home_screen.dart';void main() {  runApp(const App());}// 위젯 그 자체class App extends StatelessWidget {  const App({super.key});  @override  Widget build(BuildContext context) {    return MaterialApp(      theme: ThemeData(        scaffoldBackground..

반응형