목록개발 (194)
파파비의 블로그
플러터에서는 state라는 개념을 사용합니다. State란 무엇일까요? State란 앱에서 사용되는 data들을 의미합니다. cf) 그럼 State management는 무엇일까요? 앱에서 사용되는 data들을 관리하는 방법을 의미하겠죠? 아무튼, 플러터에는 State가 2개로 나누어질 수 있습니다. App state와 Widget state입니다. - (1)App state App state은 앱 전반에 걸쳐 사용되는 data입니다 앱 여기저기 전반적으로 다 필요하고, 한쪽에서 app state를 변경하면 다른 쪽에서도 data변경을 반영할 필요가 있겠죠? - (2) Widget state 또 Widget state는 widget 내부에서만 사용되는 data입니다. App state와의 차이점이라면 위..
이 코드를 실행해보면 까만 바탕에 좌측 상단에 hello라고 뜨게 됩니다. 앱이긴 한데... 뭔가 디자인적으로 굉장히 별로죠 그 이유는 우리가 일일이 디자인적인 요소들을 처리해주지 않았기 때문입니다. 그런데 디자인적으로 모든 것을 처리하는게 굉장히 어렵습니다. 요소들도 매우 많구요 그래서 플러터에서는 기본적인 앱에서 디자인적인 뼈대를 구성하는 위젯을 만들어놓았습니다. 그게 바로 Scaffold 위젯입니다. 플러터 API문서를 확인해보면 Scaffold에 대해서 다음과 같이 설명하고 있습니다. (https://api.flutter.dev/flutter/material/Scaffold-class.html) Implements the basic material design visual layout struct..
저번에 설명했던 코드의 일부분입니다. 저기 보면 MaterialApp이라는 생성자 안에 home: 이렇게 표시된 부분이 있습니다. 오늘은 여기에 관하여 자세히 다루어보고자 합니다. 우리는 class를 만들고 거기에 여러 속성들을 만들어 놓을 수 있습니다. 그리고 해당 class의 객체를 생성할 때, 일부 속성 값들을 생성자의 인자로 넣어 값을 바로 부여할 수 있죠. Dart에서도 역시 그것이 가능합니다. 위 코드는 Person Class의 생성자입니다. 생성자는 class에서 일반 메소드와 비슷하지만, 생성할 때 한번만 호출이 가능한 메소드이며, 특징은 return type을 암시하지 않는다는 것입니다. 당연히 해당 class의 객체를 생성하니 굳이 써줄 필요가 없죠. 위 코드처럼 생성자가 표시되어 있을..
플러터는 어떤식으로 작동하는 것일까요? 너무 어려운 질문이지만, 초반에 어떻게 시작하는지에 대해 다뤄보고자 합니다. 위 코드를 입력해서 실행을 누르면, 좌측 상단에 빨간 글씨로 hello가 나타나고, 배경은 검정색일 것입니다. 아주 허접하지만 간단한 앱이 만들어진 것이죠. 하지만 저기 코드들에는 많은 의미들이 숨어있습니다. 하나하나 뜯어보도록하죠. void main() 이 void main() 함수는 dart에서는 진입점에 해당합니다. dart 파일을 실행하면, main() 함수를 찾아서 실행하게 됩니다. 따라서 함수의 이름을 바꾸거나 하면 절대 안됩니다. 시작을 못하니깐요.. import 'package:flutter/material.dart'; 플러터에서 제공한 패키지 중 material.dart 파..
C#에서는 메모리구조로 스택과 힙을 사용한다. 그 중에서 스택에 대해 얘기해보려고 한다. 스택은 하나의 쓰레드가 실행될 때 해당 쓰레드에 1MB의 메모리가 할당된다. 스택의 역할은 메서드의 실행, 메서드로 전달하는 인자, 메서드 내에서 사용되는 지역변수 등을 처리 한다. 메소드들도 스택에 의해 관리되는데, 메소드의 끝을 알리는 } 를 만났을 때, 해당 메소드와 관련된 모든 데이터들은 스택에서 해제된다. 1MB가 작게 느껴질 수 있는데, 사실은 상당히 넉넉한 양이다. 그런데 하나의 메소드에서 필요한 저장공간이 1MB를 넘어서게 되면 에러가 생기며 프로그램이 중단된다. 이를 스택오버플로우라고 부른다. 스택오버플로우의 특이한 점은, 어떤 에러라는 정보가 제공되지 않는다는 점이다. 스택에 에러 관련 내용이 저장..
1. 명령 프롬프트를 킨다. 2. 원하는 곳으로 cd를 통해 이동한다 3. 'flutter create 원하는프로젝트이름' 을 입력한다. 물론 이때 이미 flutter가 path에 설정되어서 flutter 명령어를 인식할 수 있게 해두어야 한다! 또한 vs code에 flutter가 익스텐션으로 깔려있어야 함. 한마디로 설치과정을 제대로 진행했어야 위 단계들도 잘 진행된다 특이 한 점은 에뮬레이터를 키기 위해선 안드로이드 스튜디오에 들어가서 에뮬레이터를 따로 켜주어야 한다. 안드로이드 스튜디오에서 어떻게 가상 에뮬레이터를 키는지는 따로 다루진 않겠다. 아무튼 안드로이스 스튜디오를 경유해야하는 점 때문에 그래서 안드로이드 스튜디오를 사용하는게 더 편리할 수 있다. 그런데 VS code는 훨씬 가볍기 때문에..
플러터는 하나의 프로그래밍 언어를 사용하여, 하나의 코드베이스(프로젝트)로, 안드로이드와 IOS 둘 다 네이티브 수준으로 만들 수 있게 해준다. 1. 플러터 SDK (개발툴) - 컴파일을 도와주는 등의 개발할 수 있는 환경을 제공하는 것. - 안드로이드 스튜디오나 VS code위에 플러터SDK를 입힐 수 있습니다. 2. 플러터 Framework - 개발을 용이하게 해주는 라이브러리, 위젯, 유틸리티들을 제공해줌 - 프레임워크를 사용하면 굉장히 빠른 시간에 UI들을 재사용 할 수도 있어서 효율적입니다. 하나의 프로그래밍 언어는 Dart입니다. Dart는 한국에서는 아마 굉장히 생소한 언어일 것입니다. 실제로 Java와 C# 그리고 JS를 섞어놓은 듯한 느낌의 언어이고, 언어는 개인적으로는 쉬운 편에 속한다..
우리가 함수, function or method를 처음배울 때 흔히 쓰이는 예시가 있다. 바로 '더하기' 기능을 가진 함수 예시이다. 위처럼 2개의 정수를 받아 더한 값을 return하는 그런 함수말이다. 그런데 이 함수는 한 가지 아쉬운 점이 있다. 2개의 정수의 합은 잘 구하지만 3개의 정수의 합을 구할 때는 최소 2번의 계산이 필요하다. a+b+c의 값을 구하려면 int sum = Add(a+b); sum = Add (sum+c); 이렇게 말이다. 이게 3개의 정수가 아니라, 여러 개면 더욱 코딩해야하는 줄 수가 늘어난다. 그럴바엔 안쓰는게 나을 것 같다. 이런 불편함을 해결하기 위해, params 라는 키워드가 존재한다. params는 가변매개변수를 구현할 수 있게 해준다. 가변매개함수는 말 그대..