본문 바로가기
개발/플러터

플러터 desktop windows 만들어 보기

by 꿈트리꿈트리 2022. 9. 20.

Flutter 공부하면서 제일 좋아 보였던 점은

한번 개발에 안드로이드, 웹, ios 그리고 데스크톱 앱 windows, linux 다 만들 수 있다는 점이었다

 

전에 한번 테스트로 윈도우앱도 만들어 봤는데

이게 매법 방법이 달라지는 거 같다 업데이트할 때마다 나만 그렇게 느끼나

사소한 거 하나 바뀌어도 나에겐 스트레스 ㅠㅠ

 

오랜만에 다시 만들어 보니

다트 플러터 서치 한거 업데이트 후 

적당한 빈 폴더를 만들어준 후 명령어를 쳐야 한다

안드로이드 스튜디오로 모듈로 해서 만드니 설정을 잡아야 한다고 하며 

잘 안되는 doc 찾아보면 명령어 치라고 하는데 만들 때마다 버전마다 먼가 다른 이 느낌

 

flutter create --platforms=windows,macos,linux .

ide로 모듈 생성으로 만들었을때는 윈도가 작동이 되지 않았고

이런 명령으로

flutter create --org ios.app --template=plugin --platforms=android,ios,linux,macos,windows -i swift hello

 

--org 옵션은 도메인 혹은 패키지 명을 설정할수 있고

-i 는 ios 개발 언어 어떤 걸 쓸 수 있는지

 

flutter create --org com.example.android.app --template=plugin --platforms=android,ios,linux,macos,windows, web -a java hello

요렇게 하면

com.example.android.app.hello 패키지로 , 안드로이드 랭귀지는 자바 , 코틀린등 선택 가능하고

마지막에.이나 hello 등의 이름으로 패키지 명이나 폴더 명을 지정할 수 있다

--platform 에다가 어떤 플랫폼을 만들것인지 등등을 난 다

--template 모듈이나 플러그인등등

 

ide로 모듈로 해서 만드니 윈도 앱이 작동이 안 되던데 문서 보니 플러그인으로 만들더라는

 

 

flutter create --org com.example --template=plugin --platforms=android,ios,linux,macos,windows,web -a java aiwapp

이런 식으로 만들고 나면

flutter desktop 레이아웃

위와 같은 레이아웃이 생성된다

프로젝트 명 아래

lib 폴더가 있는데 main.dart는 example폴더 아래 lib 폴더에 생성되고

저기에 코딩을 해주면 된다

먼가 내가 생각했던 구조는 아닌데 첨에 main.dart가 안 보여서 오잉했다는

 

 

https://docs.flutter.dev/development/packages-and-plugins/developing-packages#step-1-create-the-package-1

 

Developing packages & plugins

How to write packages and plugins for Flutter.

docs.flutter.dev

아무튼 이런 식으로 적당한 위치에 

프로젝트를 생성해 주면 윈도 웹 안드로이드 등등 멀티 플랫폼 앱이 생성된다

 

그리고 나서 ide에서 프로젝트를 오픈하니

Launching lib\main.dart on Windows in debug mode...
Exception: Building with plugins requires symlink support.

Please enable Developer Mode in your system settings. Run
  start ms-settings:developers
to open settings.

이런 메시지가

 

머 자꾸 허들이 생기는지....

우연히 크롬 창에 ms-settings:developers 차장 보려고 치니 

개발자용 설정 창

창이 떠서 켬으로 해줌

실행하면

 

윈도 앱이 잘 작동

모 이래 저래 쉬울 거 같지만 발에 걸리는 게 많음

어렵다기 보단 자꾸 먼가 발에 걸리는게 많은...

 

이제 exampl/lib/main.dart 부터 코딩하고 하고 싶은 대로 하면 되나

firebase도 설치하고 설정하고 등등등

허들이 장애물을 넘고 넘고 넘으면 어디에 도착할는지...

 

그래도 굉장히 재미난 게 

한번 코딩으로 안드로이드, 아이폰, ios, window , linux , macos 다 만들어진다는 게 신기

어딘가 한계는 있겠지만... 기본적인 어느 정도까지 범위에서 재미나게 만들 수 있을 거 같다