툴 다운로드

윤주헌's avatar
Oct 01, 2024
툴 다운로드

1. 안드로이드 스튜디오 다운로드

notion image
notion image
앱 개발 무료 툴
 
여기까지 했으면 먼저 아래의 플러터를 깔고 다시 돌아오자!
 
  • 클릭
 

3. 안드로이드 스튜디오 설정

그냥 계속 next하면 됨
그냥 다 next
notion image
 
notion image
notion image
notion image
notion image
notion image
notion image
notion image
notion image
SDK 경로 넣기
notion image
  • 주의
💡
프로젝트의 제목은 대문자로 하면 안된다
사진에서는 실수로 대문자를 했지만 소문자로 변경함
notion image
지금은 네이티브 직접 짤게 아니니까 java를 하든 kotlin을 하든 상관 x
notion image
notion image
기본형
notion image
짠 만들어짐
notion image
 
원래는 플러터 메뉴얼대로 만들어줘야한다!!

설정(반드시 해야함)

터미널(CMD)에서 flutter doctor
notion image
 
첫번째 초록색 체크 플러터 인식함
두번째 윈도우 버전 체크 운영체제 있다
세번째 안드로이드 툴첸 안돼있음
네번째 크롬 설치돼있으면 ok
다섯번째 비쥬얼스튜디오 C# 같은거 할 때 사용함 데스크탑때 윈도우 대스크탑 개발할 때 사용
여섯번째 안드로이드 스튜디오
일곱번째 유료버전은 인텔리J로 개발 가능
여덟번째 VS코드로도 가능 상관 없음
아홉번째 반드시 체크 되야함 애몰레이터 설치해주는데 앱 알아서 확인할 수 있게
 
세번째 해야함!!
notion image
notion image
notion image
notion image
이후
cmd가서 flutter doctor 치면
notion image
아직 느낌표 하나가 있다
notion image
cmd에 컨트롤 c 컨트롤 V 해서 계속 y
notion image
전부 y엔터 해주기
notion image
 
 
 
notion image
notion image
화살표 누르기 에몰레이터 실행하는 것
notion image
실행하고 계속 기다려 다른것 하지 마라!!
이렇게 뜨면 잘 된거임
notion image
여기서
왼쪽

우리가 개발할 환경

1급객체다!!
notion image
lib main.dart 에서 우리는 개발한다
 
디바이스 선택하는것
notion image
notion image
notion image
누르면 해석해서 크롬 브라우저에 떤진다 → 이거를 펌웨어라 한다
 
TV에 sk브로드밴드 장치 같은게 있는데 이게 기계인데 안에 소프트웨어가 들어가 있다 이런게 펌웨어라 한다!!
 
기계에 집어넣는다 펌웨어
💡
하드웨어의 기본적인 구동 및 제어를 담당하는 특수 용도의 소프트웨어.
소프트웨어라고는 하지만 보통 하드웨어 엔지니어가 도맡아 지원한다.
펌웨어 하는 일
새로운 소프트웨어나 버전이 나오면 하드웨어도 그 기능에 맞춘 논리회로가 필요한데,
매번 물리적으로 제조하려면 시간 낭비가 크기 때문에 논리적으로 기능을 보강하거나 대신해주는 프로그램이 펌웨어다.
즉 펌웨어는 하드웨어의 일부분이며, 없으면 장치가 정상 동작하지 못하게 된다.
 
notion image
안드로이드로 실행해보자
notion image
바꾸고 화살표 누르기
오래걸림
notion image
notion image
notion image
바꾸고 번개버튼 누르기
notion image
notion image
, 저장만 해도 바로 반영됨
notion image
끝!

2. 플러터 다운

notion image
notion image
notion image
notion image
 
notion image
 
맥은
아래 내리면 있다
export PATH =$HOME/development/flutter/bin:$PATH
PATH에 BEAN폴더 걸어주면 된다 아마도?
 
압축파일인데 이 안에 개발 sdk 가 들어가 있어 javac 이런거
윈도우는 시스템환경변수 가서 설정

환경 변수 설정

1. 먼저 플러터 다운 받은거 압축 풀고 툴에 넣어주기

notion image
 
notion image
이 두개가 실행파일
notion image
왼쪽 bin 적혀있는 네모 박스에서 우클릭하고 주소복사
notion image
 
시스템 환경변수
notion image
notion image
더블클릭
notion image
새로 만들기 클릭 하고 아까 bin주소 붙이기
notion image
 

2. 경로 잘 설치됐나 확인

notion image
flutter --version
환경변수 확인!
notion image
 

다시 올라가기

이론 설명

HW가 다르다 누구는 AMD 누구는 인텔 등
notion image

V1

개발의 기본은 직접 기계어로 건드리는 것이다 (0101) 이런걸로
→ 어려움 (레지스터 건드려서 해야하는데 레지스터가 너무 많다!)

V2

어셈블리어
→ 기호화한것 (인간이 이해하기 쉽게)
+가 500이라 한다면 기호화 하면 영어로 add하면 실행될 수 있게
 
지금까지는 CPU에 종속 적이다
→ 어셈블리어로 개발하면 CPU마다 기호가 달라서 각 각 다르게 개발했다.
amd맞게 하면 인텔에서는 못 쓴다
 
즉 여기까지는 기계에 종속적이다
 

V3

OS에 종속적인 C언어가 나왔다
장점
  1. CPU에 종속적이 아닌 이 HW위의 OS에 종속적이다 즉 만약 윈도우면 CPU에 윈도우만 있으면 사용 가능하고 리눅스면 리눅스만 깔 면 사용 가능하다
하지만 이것도 종속 적이다
 

V4

JAVA OS에 종속적이지 않은 것!
OS위에 JVM인 가상 머신을 쌓는다. 이러면 JVM에 명령해서 기계도 OS도 상관 없다 알아서 치환해줘서 해준다
이게 크로스 플랫폼이다
 
 

이후

이제 하드웨어가 달라진다
갤럭시가 있고 애플이 있다
 
갤럭시의 HW는 퀄컴
애플은 AMD
 
CPU에 명령어 형식이 AMD INTEL 이 다르다
뭐가 다르냐면

인텔 (복잡하다)(저 전력으로 만들기 힘듦 전력 소모가 크다!)

모든 명령어가 있다 + * - 등
 

AMD (CPU가 간단하다)(저전력)

명령어 집합이 작다
예를 들어 명령어 하나로 여러가지를 할 수 있다
 
 

다시 휴대폰으로

notion image
HW인 퀄컴 위에 OS 안드로이드가 있고
애플은 AMD 위에 IOS가 있다
 
AMD를 C 언어로 건드릴 수 있을까? 있음
퀄컴도 건드릴 수 있을 까 있다!
 
하지만 HW 다이랙트로 건드리는 사람은 없다
HW를 바로 만들면 HW바뀌면 다 바뀌어야 하니까 OS 기반으로 만든다
 
HW는 입출력 장치다(핸드폰) 엑추에이터들이 들어가 있다 (GPS, 카메라, 자이로센서(기울기 감지) 등 여러가지를 들고 있다.)
카메라는 input장치, GPS도 주변 장치 input, 자이로 센서 출력 등
전부 입출력 장치다. 이런것을 건드리려면 원래는 퀄컴을 건드려야한다 어려워서
이런거 건드릴 수 있는 라이브러리 집합을 안드로이드에서 제공해준다!
→ SDK(소프트웨어 디벨롭 키트)
💡
개발자에게 다른 프로그램에 추가하거나 연결할 수 있는 커스텀 앱을 제작할 수 있는 기능을 제공하는 도구 모음
즉 라이브러리 덩어리 준다(모든 개발 키트들이 들어가 있다)(그림, 기계)
 
안드로이드 IOS가 같냐? 아니다! 버튼 하나를 만들어도 다르다!
OS빼고 개발 가능하긴 함 하지만 귀찮고 어렵고 힘들지만…
 
앱에서 native하게 개발한다는 것은 OS를 건드려서 개발하다는 것
네이티브개발이라 한다
 
안드로이드 건드려서 개발하는 것은 자바(네이티브 언어)
아이폰인 IOS 건드려서 개발하는 것은 SWIFT(네이티브 언어)
 
여기서
내가 IOS 개발을 하고싶어 그러면 반드시 IOS운영체제가 필요하다 (있어야 테스트 해보지)
이거를 맥에서만 깔 수 있게 만듬 IOS는 반드시 맥이 필요하다
 
안드로이드는 어디에서든 개발할 수 있다.
notion image

OS위에 또 생기는 무언가

안드로이드, IOS한방에 개발하고 싶으면 위에 뭐가 또 깔린다
  • 다트
 
다트로 앱 개발은 힘들다 내가 다 점찍으면서 그릴 수는 없으니까
그래서 Flutter UI프레임워크다 (
즉 스윙같은것임
스윙 있어야 자바에서 버튼 클래스 가지고 와서 버튼 만드는 것처럼
없으면 좌표에 점 막 찍어서 하나 하나 만들어야 한다.
 
다트는 네이티브가 아니다.
다트는 안드로이드에 맞게, IOS에 맞게
 

리엑트 네이티브 (JS로 만든다) RN 이라 함

js 목적 코드 만들어서 RN실행하면 JS는 버튼 만들면 html 모양으로 해주는데
RN이 html버튼 모양이 안드로이드 버튼과 비슷한 것을 찾아서 뿌린다!
안드로이드 코드로 만들어진다
만약 IOS로 보내면 IOS에 비슷한 것을 찾아서 보내준다
 
실행시 컴버팅 된다 그래서 느리다
 
Ex
내가 한국 사람인데 프랑스, 미국인을 보면
 
내가 안녕 하면 중간에 RN이 있으면 미국인들한테는 hello 프랑스인 한테는 봉쥬르 한다
 

다트는 다르다

네이티브가 아니고 컴파일 하면 바로 기계어로 바뀐다!
 
IOS에 맞게 컴파일, 안드로이드에 맞게 컴파일 해야 한다
기계어로 해서 엄청 빠르다!!
 
차이
리엑트 네이티브는
버튼 그림그리면 무조건 종속될 수 밖에 없다 아무리 디자인 해도 각자 OS에 있는 디자인만 보여질 수 있다
 
하지만 다트는 지가 그림을 다 그려버리고 OS 상관 없이 그리고 기계어로 바로 던져서
안드로이드에 IOS그림 보일 수 있고 IOS에 안드로이드 그림 보일 수 있다.
 
엣지, 크롬에서도, 앱에서도 다 실행가능하다
윈도우 데스크탑, 맥 등 키오스크, 자동차 스크린
모든 플랫폼에서 동작 가능하다!!
 
그런건 있다.
내가 플러터로 그림 그렸어 앱으로 던지면 바로 실행 되것지
근데 카메라를 건드리고 싶어
 
다트는 카메라를 못 건든다 JAVA언어가 아니니까 SDK를 못 만진다
왜? 다트는 바로 기계어로 바뀌는데 기계어로 내가 직접 건드려야 하는데
 
그래서 이렇게 한다
플러터로 개발을 했어 이거를 다이랙트하게 센서 건드릴 수 없다 쉽게 건드리려면 java있어야 함
 
만약 카메라가 있다면 얘 건드릴 수 있는 SDK가 필요하다
SDK에 (camera 라는 라이브러리가 있다 하자) 플러터는 못 건드려서

네이티브 건드리는 방법

  1. 자바언어로 카메라 건드릴 수 있는 것을 만든다
  1. 플러터가 자바를 때릴 수 있다 즉 통신할 수 있다 (네이티브코드와 통신)
notion image
 
 
내가 자바코드 모르면 못 만들잖아
그래서 플러터에 라이브러리를 만들어 둔다
이거를 다운 받으면 플러터에서 다운 받은 라이브러리 통신하면 알아서 SDK 연결해준다
notion image
즉 2가지가 있다
  1. 내가 자바로 만들어서 통신하기
  1. 남이 만든 라이브러리 쓰기
문제는 라이브러리 커스터마이징 할 수 있을까? 못함 남이 만든거니까
 
결국은 내가 만들어야 한다
근데 앵간하면 라이브러리만 써도 충분하다 95%는 되는데 5%가 안될 수 있다.
 
그럼 우리가 다운 받은 플러터 윈도우는 뭘까?
용도는 뭘까?
그림그리는 도구 , 라이브러리, 네이티브로 변환하는 것 3개가 들어가있겠지
 
플러터, 빈, 케시, 다트가 있다
 
이것만드로 못 만드니까 안드로이드 스튜디오 만듬
 
 
 
Share article

code-sudal