728x90

 

https://flutter.dev/

 

Flutter - Build apps for any screen

Flutter transforms the entire app development process. Build, test, and deploy beautiful mobile, web, desktop, and embedded apps from a single codebase.

flutter.dev

 

 

구글에서 만든 ios, android를 모두 아우를 수 있는 크로스브라우징 & 크로스 플랫폼 프레임워크이다.

 

Flutter 하나만으로 모바일 앱, 데스크톱 앱, 웹 앱이 모두 개발이 가능하다는 것이다. (심지어 IoT UI개발도 가능!)

 

 

 

하나의 코드베이스로 프로젝트 하나를 개발해서 apk로 빌드하면 안드로이드 앱이, web 빌드를 하면 웹 앱이 만들어지는 프레임워크 ~.~ 

(리액트로 예를 들면 리액트 앱 하나를 개발해서 안드로이드 아이폰 웹 데스크톱 앱 개발이 다 가능하다는 소리다 대박!)

 

 

https://dart.dev/

 

Dart programming language

Dart is an approachable, portable, and productive language for high-quality apps on any platform.

dart.dev

 

 

Dart라는 새로운 언어를 배워야 해서 초기 진입장벽이 있기는 하지만,

만약 시스템 프로그래밍 언어(C,C++,java)를 배운 사람이라면 문법이 거의 유사하기때문에 빠르게 접할 수 있다.

컴공전공자가 매우 쉽게 배울 수 있는 프레임워크라네 

 

그리고 C와 문법이 비슷하면서도, String 타입이나 async/await 비동기 처리도 지원을 하니 만약 javascript까지 알고 있다면 더욱 배우기 쉬울 것이다 

 

또한, 배포단계에서 AOT (ahead of time compile)기반으로 컴파일되기때문에 실행시점에 컴파일되는 JIT(just in time)방식과 달리 초기 실행속도가 빠르고, 보안면에서 우수하다는 장점이 있다. 

 

*aot : 소스코드를 기계어로 미리 변경 후 컴파일. 런타임에서 별다른 작업이 필요없음.

<-> jit : 실행시점에 그때그때 코드를 컴파일 

 

더 신기한건, 개발시에는 JIT로 컴파일 된다는 점! 그래서 개발시에는 즉각적으로 변화를 확인할 수 있고 디버깅도 쉽게 할 수 있다는 점이다 

 

물론 단점도 있다. 

Flutter는 SEO 최적화가 어렵고, 기계어가 포함되기 때문에 파일 크기가 커질 수 있다. 또한, UI 개발에 최적화되어 있어 애플리케이션 계층의 작업을 처리하는 데는 강점이 있지만, 하드웨어 계층의 작업을 처리하는 데는 한계가 있다. 

이러한 작업은 Java, Kotlin, Swift와 같은 네이티브 언어를 사용하는 것이 적합하다.

Flutter는 하드웨어를 직접 제어하기보다는 API(플러그인)나 라이브러리를 통해 간접적으로 하드웨어와 연동하는 애플리케이션 개발에 적합한 프레임워크이다.

 

 

 

 

 

끝 

 

 

 

 

 

728x90

플러터를 웹으로 배포시에 계속 같은 오류로 인해 자동 배포가 불가능했다 

해당 이슈는 플러터에서 사용되는 패키지들의 종속성이 업데이트되면서 발생하는 오류다. 

 

 

 

https://github.com/flutter/flutter/issues/143575 

 

[Web] App builds successfully, but then: "The type 'JSObject' can't be used as supertype." · Issue #143575 · flutter/flutter

Steps to reproduce Hi :) We have an app in production currently running 3.16.9 & now after upgrading to latest flutter I can't seem to run the app: flutter upgrade (3.16.9 => 3.19.0) flutter pub ge...

github.com

해결을 위해 플러터 깃 허브의 이슈를 찾아보니 

web 패키지를 올려라 내려라 올렷다가내려라 뭐 난리도 아니였다.... 

 

그중 해결에 도움을 중 방법은 

flutter pub upgrade web 을 통해서 web 버전을 올리는 것 

 

수동으로 배포할때는 이 방법을 쓰면 즉시 해결이되고, 

만약 나처럼 자동배포 yml 파일을 작성해야하는 경우에는 

 

해당 퍼블리시 파일 안에 

 

 

- run: flutter pub upgrade web

 

이 부분을 추가하면 된다 

 

 

어디에 넣어야하는지 헷갈린다면

 

ooo.yml 파일 안에 들어가서 

 

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - uses: subosito/flutter-action@v2
        with:
          channel: "stable"

      - run: flutter pub get

      - run: flutter pub upgrade web # **추가된 부분!! 

       .
       .
       .

      - run: flutter build web --base-href "/내 레포 주소/" # *본인의 repo 이름*으로 수정할 것!

 

요기쯤 넣어주면 되겠다. 

 

 

 

728x90

+ Recent posts