목록전체 글 (48)
Flutter 개발 Story
flutter로 개발하다 보면, 위와 같은 로그가 뜬다. Explicit concurrent copying GC freed 4884(175KB) AllocSpace objects, 1(20KB) LOS objects, 89% free, 1485KB/13MB, paused 61us total 11.319ms 앱이 메모리를 사용하는데 있어서 GC(Garbage Collector)에 할당된 메모리까지 사용해 GC가 메모리를 비우는데 시간이 오래 걸리게 된다는 뜻이다.
Isolate 사용 방법 compute의 경우 다른 예제 글들이 많으니 넘어가고, spawn의 방법에대해 알아보자. isolate간의 통신을 위한 방법은 RecievePort를 통해 하는 것인데, RecievePort - isolata간에 메세지를 주고 받을 수 있는 포트 - RecievePort는 sendPort를 반환하는 SendPort getter를 갖고 있음 SendPort - 지정된 RecievePort에 메세지를 보냄. - SendPort를 통해 전송된 메세지는 지정된 RecievePort에 전송되고, RecievePort는 해당 메세지를 RecievePort의 listener를 통해 받을 수 있다. Isolate.spawn Isolate.spawn(함수, recievePort.sendPort..
MethodChannel MethodChannel이란 비동기 호출을 사용해 플랫폼 플러그인과 통신하기 위한 채널이다. 즉, flutter와 Native(Android, IOS)사이에서 메세지를 통해 native 메서드 또는 plugin을 호출하는 것이다. 플랫폼 채널 flutter(Client)는 플랫폼 채널을 통해 IOS나 Android가 될 수 있는 호스트에게 메세지를 보냄 -> 호스트는 플랫폼 채널에서 메세지를 받고 플랫폼 네이티브 언어를 사용해 플랫폼 별 API를 호출해 flutter(client)에게 보냄 (메서드 호출은 전송되기 전에 binary로 인코딩 되고, 수신된 binary 결과는 dart값으로 디코딩됨.)