반응형

요즘 열심히 공부하고 있는 Flutter , 이 Flutter 를 배우고 싶어하는 개발자들에게 아주 도움이 될만한

기초강의를 추천하려고 한다.

 

 

알만한 사람은 알겠지만, 바로 "오준석의 생존코딩"이라는 채널에서 오준석님이 진행하시는 Flutter기초 강의다.

해당 채널로 이동하여 재생목록 탭을 보게되면 Flutter기초, 중급 뿐만 아니라

그 외 다양한 언어들에 대한 강의도 존재한다.

 

혹시나 다른 포스팅들을 봤다면 알겠지만, 10분이상 넘어가는 강의는 별로 좋아하지 않는 스타일인데

이 분 강의는 10분 미만 컷이다. 너무 마음에듬... 아무튼 Flutter기초가 필요한 개발자에게 

"오준석의 생존코딩" 유튜브 채널을 추천한다. (채널 들어간 다음, 재생목록 탭 꼭 눌러서 확인하길.)


※만약 Flutter를 배우기 위해서는 선행공부가 되어야 하는 Dart를 공부해야 겠다면 아래 포스팅을 추천!

 

Flutter개발을 위한 Dart언어 왕초보 강의

Flutter를 이용한 앱개발을 위해 Dart강의를 찾던 중 유튜브에서 기가막힌 강의를 찾아냈다. (혹시 Dart언어에 대해 빠르고 간략하게 기초를 쌓고 싶으신 분에게 추천드림..) 정말 마음에 드는점은

masswhale.tistory.com

 

반응형
반응형

안드로이드 스튜디오에서 Flutter로 개발하기 위해, 기본적인 셋팅을 끝내고 본격 코딩을 시작하려고 하니깐

이런 메세지가 뜬다.. "Dart SDK is not configured"

Flutter 는 Dart언어로 개발되며 Dart에서 제공되는 SDK가 반드시 존재해야 하는데, 이 Dart의 SDK경로가 지정되지 

않았다는 것을 뜻한다. 

이럴땐 당황하지 말고, 가장 우측에 있는 Open Dart Setting을 클릭한다.

그러면 아래와 같은 팝업이 나타난다.

이 팝업에서 Dart SDK의 경로를 지정해주고, 내 프로젝트를 선택해주면 된다.

그런데 Dart SDK경로는 어디에...??


일단 기본적으로 Flutter를 설치했다면, 설치한 flutter폴더 아래 경로에 존재한다.

만약, Flutter설치를 아직 안했다면 아래 포스팅을 참고하여 Flutter기초강의와 함께 설치하길 바란다.

 

안드로이드 스튜디오로 Flutter 앱 개발 기초 강의 추천

요즘 열심히 공부하고 있는 Flutter , 이 Flutter 를 배우고 싶어하는 개발자들에게 아주 도움이 될만한 기초강의를 추천하려고 한다. 알만한 사람은 알겠지만, 바로 "오준석의 생존코딩"이라는 채널

masswhale.tistory.com

 

Flutter보다 더 전에 Dart를 모른다면 아래 포스팅을 참고하기 바란다.

 

Flutter개발을 위한 Dart언어 왕초보 강의

Flutter를 이용한 앱개발을 위해 Dart강의를 찾던 중 유튜브에서 기가막힌 강의를 찾아냈다. (혹시 Dart언어에 대해 빠르고 간략하게 기초를 쌓고 싶으신 분에게 추천드림..) 정말 마음에 드는점은

masswhale.tistory.com


다시 이어서 얘기하자면, 아무튼 Flutter를 설치했다면 경로를 통으로 지정하면 안된다. 

이게 무슨말인지 예시를 들어보겠다.

 

내 경우 예를 들면, c드라이브에 workspace라는 폴더를 만들어서 flutter를 설치했는데 

경로는 아래와 같다.

C:\workspace\flutter

만약 위 경로를 통으로 지정해 버린다면 아래와 같은 경고메세지가 발생한다.

정확한 Dart SDK경로를 지정해줘야 한다. 

Dart SDK 의 경로는 바로 "C:\workspace\flutter\bin\cache\dart-sdk"

C드라이브에 workspace폴더까지는 설치하는 사람마다 다를수 있고, flutter하위는 동일하다.

물론 flutter 폴더명도 다를수도 있겠다. (flutter압축을 그대로 푼사람의 경우...)

다시 경로를 지정해 보자.


경로를 바꿔서 지정하니깐, 하단에 메세지가 변경되었다.

잘못된 경로를 입력했을 땐, error였지만 이번에는 warning이다.  간단하게 현재 프로젝트(모듈)를 지정한다.(체크)


경로도 정확하고! 모듈까지 지정하면 마무리 된다. 이제 ok를 눌러서 마무리 하자.

반응형
반응형

내껀 스샷 못찍었는데, 검색때려서 적당한 이미지를 찾아냄 ㅋㅋ

flutter와 android sdk를 받은다음, flutter doctor 명령어를 호출했는데, 

android toochain 라인에서 경고 또는 오류 메세지가 발견한것을 볼수 있다.

이때 "특정메세지"를 호출하여 조치하라는 안내가 뜨는데 

보통은 이 포스팅의 제목처럼 "flutter doctor --android-licenses" 일 것이다.

 

이때 흔히 발생하는 오류가 

Android sdkmanager tool not found(/Users/ryan/Library/Android/sdk/tools/bin/sdkmanager).
Try re-installing or updating your Android SDK,
visit https://flutter.dev/setup/#android-setup for detailed instructions.

위와 같이 뜨는 경우가 있다. 

여러가지 방법이 있으나, 일단 1차 조치방법으로 간단하게 해결할수 있다.

바로 flutter config명령이다.

flutter config명령으로 본인이 설치한 android sdk위치를 지정해 주는 방법이다.

내 경로를 예로 들자면 

flutter config --android-sdk C:\workspace\sdk

만약 이 포스팅을 보는 사람이 같은 오류를 겪고있다면 flutter config명령으로 해결하길 바란다.

당연히 뒤에 경로는 본인이 설치한 android sdk의 경로를 설치해 줄것!

 

만약에 위에 flutter config 명령으로도 안된다면, 다른 방법 2가지가 더 있다.

이 방법을 포함한 다른 방법은 검색하다가 찾아낸, 인프런 오준석님의 답변과, stack overflow답변을 첨부한다.

아래 링크▼

 

flutter doctor -v 를 실행시 Android toolchain 부분에서 오류가 발생합니다. - 인프런 | 질문 & 답변

flutter doctor -v 를 실핼할 경우   Android toolchain - develop for Android devices (Android SDK version 29.0.3)     • Android SDK at /User...

www.inflearn.com

 

 

Flutter does not find android sdk

I just tried intalling flutter and since I already had android studio and the android sdk installed I just followed the installation of flutter. Here is my problem: When I run flutter doctor It t...

stackoverflow.com

 

반응형
반응형

지난 스터디에서 class와 constructor를 알아보았다.

이번 스터디에서는 Getter와 Setter라는 것에 대해 알아보려 한다.

실습을 진행하기 전에, 간단한 기능을 가지는 class를 하나 선언하여 준비한다.

void main() { 
  
  Color color = new Color(
    name: 'red',
    group : 'A'
  );
  
  color.sayName();
  
}


class Color {
  String name;
  String group;
  
  
  //네임드 파라미터를 사용하는 생성자 하나 선언
  //중괄호의 유무
  Color({
    String name,
    String group
  }) : this.name = name,
       this.group = group;
    
  void sayName(){
    print('이 색은 ${this.name}입니다.');
  }
}

이 색은 red입니다.

 

Getter와 Setter를 알기전에 먼저 Private변수에 대해 알아야 하는데, 일단 선언하는 방법은

변수명에 _언더바를 붙여주면 된다.

class Color {
	String name;  -> String _name;
	String group; -> String _group;	
}

언더바를 붙이면 Private 변수로 사용된다. 보통 JAVA에서는 Private변수의 경우 소속된 class에서만 

사용이 가능하지만, Dart의 경우 같은 파일내에 존재하는 영역에서는 어디서나 가져와서 사용이 가능하다.

그럼 변경된 Private변수명에 맞게 class내부를 수정 후, 출력해보자.


void main(){
  Color color = new Color(
    name: 'red',
    group : 'A'
  );
  
  print(color._name);
  
  
}


class Color {
	String _name;
    String _group;
    
  	Color({
	    String name,
	    String group
  	}) : this._name = name,
	       this._group = group;
	    
  	void sayName(){
	    print('이 색은 ${this._name}입니다.');
  	}            
}
red

main 함수의 print함수를 보면 color클래스의 _name을 호출하고 있다. 

_name은 color클래스의 프라이빗 변수로 선언되어 있음에도 불구하고, 같은 파일내에 있기때문에

Dart의 특성상 사용할 수 있는것이다.

만약 위 소스에서 main 함수와 class가 다른 파일에 있었다면 에러가 발생했을 것이다.


그럼 다른 파일에 선언되어 있는 경우엔 어떻게 불러와서 사용할 수 있을까?

이때를 위해 바로 Getter와 Setter가 존재하는 것이다.

선언은 class안에 아래와 같이 한다.

class Color {
	String _name;
	String _group;
   
	Color({
	    String name,
		String group
  	}) : this._name = name,
	       this._group = group;
	    
	void sayName(){
		print('이 색은 ${this._name}입니다.');
	}  
  
	get name{
		return this._name;
	}
  
	set name(String name){
		this._name = name;
	}
}

getter는 get 이름 형태로 선언하며, 보통 private변수명에서 언더바를 제거한 이름을 사용한다.

setter또한 set이름 형태로 선언하며, 값을 지정하는 역할을 하기 때문에 파라미터를 받게된다.(타입은 원하는 대로)

getter의 경우 호출하면 class의 private변수의 값을 리턴하도록 하고 있으며, setter의 경우 받은 파라미터를

class에 할당하는 역할을 하고 있다.

한번 호출해 보자.


void main(){
	Color color = new Color(
		name: 'red',
		group : 'A'
	);
  
	print(color._name);
  
  
	print(color.name);
  
	color.name = 'blue';
	print(color.name);
  
}


class Color {
	String _name;
	String _group;
   
	Color({
		String name,
		String group
	}) : this._name = name,
	       this._group = group;
	    
	void sayName(){
		print('이 색은 ${this._name}입니다.');
	}  
  
	get name{
		return this._name;
	}
  
	set name(String name){
		this._name = name;
	}
}
red
red
blue

main 함수 내 정의된 첫번째 print의 경우, 같은 파일내 private함수가 있기 때문에 바로 호출하여

사용할수 있다는 것을 보여준 예시이고,

 

두번째 print는 getter를 이용하여 class안에 포함된 _name값을 리턴받아 출력하는 예시이다.

마지막 세번째는 setter를 이용하여, blue라는 값을 set후, getter를 이용하여 출력한 예시이다.


번외로 , 여기서 하나 드는 의문점.

아래와 같이 선언해서 써도 상관없는거 아닌가?

  void getName(){
    return this._name;
  }
  
  void setName(String name){
    this._group = name;
  }

상관없지만, 단순히 보면 소괄호의 사용유무 정도라고 할수 있는데, 때에 따라 get(ter) set(ter)로 간단하게 

사용할 때가 있다. 언제 getter와 setter를 사용하는게 좋을지, 함수로 만들어서 사용해서 좋을지는 

실제 프로그램을 만들다 보면 구분지어 쓸때가 있다.

오늘의 스터디 Getter와 Setter 끝.

반응형

+ Recent posts