본문 바로가기
버킷리스트/앱 만들기

오공완 (with Do it! 플러터 앱 프로그램밍) #1

by 또또도전 2024. 5. 1.
반응형

// 이곳에 쓴 내용은 앱 만들기라는 버킷리스트를 달성하기 위해 플러터를 공부하면서 정리하고 있는 내용입니다.

플러터에 대해 아는 것이 거의 없기 때문에 정리하면서 오류가 있을 수 있습니다.

오류를 발견하신 분은 댓글 남겨 주시면 감사하겠습니다.

책을 동시에 2권 나가기로 했다. 워낙 시간이 없고, 이 책에서 이해 못 한 부분은 다른 책에서.. 다른 책에서 이해 못 한 부분은 이 책이 채워주지 않을까 하여..

이 책은 16주차로 계획되어 있다. 빠르면 16일 안에도 끝낼 수 있다고..

 

   1강 플러터 시작하기

 

iOS: 오브젝티브-C-> 스위프트(Swift)
안드로이드: 자바(java)->코틀린(Kotlin)

2개를 개발해야 하는 불편함으로 인해
웹앱->프로그레시브 웹앱
하이브리드 앱<-웹앱
이 녀석들은 애니메이션 제약과 느린 속도

크로스 플랫폼 앱 개발 프레임워크 리액트 네이티브(React Native; 페이스북)
플러터는 다트(Dart)언어 사용

 

결론은 플러터가 가장 좋다~~

 

   2강 다트를 알면 플러터가 보인다.

2강 다트를 알면 플러터가 보인다.

<용어 정리>
위젯: 앱을 구성하는 재료, 집에 비교하면 벽, 철근, 나무 등의 개념
쿠퍼티노(cupertino): iOS 스타일의 위젯
프레임워크( Framework): 어떠한 목적을 달성하기 위해 복잡하게 얽혀있는 문제를 해결하기 위한 구조로 소프트웨어 개발에 있어 하나의 뼈대 역할은 한다(출처: 나무위키)
SDK: Sotfware Development Kit, 소프트웨어 개발자 도구

<2강 다트를 알면 플러터가 보인다>
다트 언어의 9가지 특징 중 3번부터 막히기 시작했습니다.
다트에서는 모든 변수가 객체입니다. 그리고 모든 객체는 Object클래스를 상속받습니다.
뭔지 모르겠지만 나도 상속을 좀..^^;;
나를 혼돈에 빠뜨린 용어들 그냥 일일이 다 찾아보지 않고.. 나열만 하려고 합니다.
나중에 이해가 되는 순간이 있겠지.
var 키워드는 자료형을 특정하지 않고 변수를 선언할 때 사용

내가 모르는 용어들: 제네릭타입, public, protected, 삼항연산자, null, private, Null safety,

int(정수형), String(문자), double(실수형), bool(True나 False), 자료형 추론(입력받은 값에 따라 자료형 결정, var(한 번 결정된 자료형은 변경 불가), dynamic(다른 변수 입력하면 자료형 변경 가능))

다트패드(다트언어를 연습할 수 있는 곳): dartpad.dev/

변수나 함수의 시작은 언더스코어 또는 문자열로 시작

다트는 비동기 처리를 지원, 어떤 결과가 끝내기를 기다리는 것이 아니고, 동시에 처리 가능.

(async와 await)

이건 복잡하니 이해는 다음에..

JSON 데이터주고받기와 스트림 통신하기도 다음에 이해하자~

 

자동차 클래스 구현하기 실습이 있는데..

 

void main(){
  Car bmw = Car(320, 1000000, 'BMW');
  Car benz = Car(250, 70000, 'BENZ');
  Car ford = Car(200, 80000, "FORD");
  
  bmw.saleCar();
  bmw.saleCar();
  bmw.saleCar();
  print(bmw.price);
}

class Car{
  int maxSpeed;
  num price;
  String name;
  
  Car(int maxSpeed, num price, String name){
    this.maxSpeed = maxSpeed;
    this.price = price;
    this.name = name;
  }
  
  num saleCar(){
    price = price*0.9;
    return price;
  }
}

 

구현이 안된다. 이 문제점도 다음에 해결하자. 남겨진 숙제만 늘어나는구만..

다음은 로또 번호 생성기 만들기인데, 이건 제발 되었으면..

 

import 'dart:collection';
import 'dart:math' as math;

void main(){
  var rand = math.Random();
  HashSet<int> lotteryNumber = HashSet();

  while(lotteryNumber.length < 6 ){
    lotteryNumber.add(rand.nextInt(45) + 1);
  }
  print(lotteryNumber);
}

이번 주 로또 번호는~~~ 

반응형