반응형

플러터 29

12. Flutter[플러터] 안드로이드 화면띄우기 method channel invokeMethod(1)

이번 포스팅에서는 Flutter에서 Android(Java)로 데이터 받기를 포스팅해보겠다. 현재 배터리상태를 가져오는 것은 공식문서에도 잘 되어있으므로, 그대로 따라 하시면 된다. 그래도 내가 삽질하면서 알게 된 정보들을 적어보겠다. 얼마 전 플러터를 개발하면서 플러터를 지원해주지 않는 API들을 보며, '과연 플러터로만 모든걸 개발을 할 수 있을까?'라는 생각이 들었다. 그래서 결국은 네이티브와 연동을 할 수밖에 없다는 결론을 내렸다. 심지어 플러터에서 사용하는 라이브러리들, 특히 핸드폰 하드웨어적인 부분은 네이티브와 연동이 굉장히 많이 되어있다. 하지만 내가 연동을 하기전 궁금한 게 몇 가지 있었다. 네이티브와 연동을 할 때 안드로이드와 IoS에 나누어진 언어들 모두 지원하는가? 네이티브와 연동을 ..

Study/Dart,Flutter 2022.06.18

11. flutter Rx를 이용하여 BottomNavigationBar 만들기

이번 포스팅에서는 앞선 포스팅의 연장선, rxdart를 이용하여 나만의 BottomNavigationBar를 만들어보자. 화면 구성할 때 가장 자주 사용하는 scaffold 상위 위젯에 사용을 하고 scaffold의 매개변수 bottomNavigationBar에 직접 만들 것이다. 혹시 rxdart에 대해서 모른다면 나의 앞선 포스팅 두 개를 읽어보고 오면 좋다. 1. ReactiveX가 무엇일까? https://pcseob.tistory.com/40 2. Reactive Programming 오늘은 Reactive Programming에 대해서 알아보도록 하자. Reactive Programming이란 Reactive programming is programming with asynchronous da..

Study/Dart,Flutter 2022.04.24

8. Dart, Flutter 상태관리 그리고 Riverpod (1)

이번 포스팅은 상태 관리법 중 하나인 Riverpod 알아보도록 하자. 이론적인 내용이므로 만약 코드에 바로 사용할 방법을 찾는다면 다음 포스팅을 읽으면 된다. 목차 Flutter의 상태관리 Flutter의 상태 관리 Ephemeral state와 App state Riverpod과 Provider의 차이점 1. Flutter의 상태관리 Flutter의 상태 관리란, 데이터의 상태라고 생각해도 좋다. 현재 데이터에 맞게 화면을 변경해주고 유저의 반응에 대응해주기 위해서 필요하다. 하지만 모든 데이터를 관리해야 하나 그것은 아니다. 어떤 상태(데이터)이냐에 따라 Ephemeral(일시적) state, App state로 나뉘게 된다. 공식문서 링크는 아래를 참고하면 된다. https://flutter.de..

Study/Dart,Flutter 2021.10.28

7. StatefulWidget의 LifeCycle(생명주기) 그리고 setState

이전 포스팅은 state와 widget 그리고 statelessWidget에 대해서 알아보았다. 이번에는 statefulWidget과 상태 관리(state management)에 관해서 알아보도록 하자. 오늘도 어김없이 이론이다. 하지만 이번에는 굉장히 중요한 내용이니 반드시 읽고 넘어가기 바란다. statefulWidget은 무엇일까? statefulWidget은 stateless와 다르게 상태를 변하게 할 수 있는 위젯이다. 앞서 포스팅에서 말한 것처럼 플러터에서 상태라는 것은 애플리케이션에 영향을 주는 데이터이다. 그래서 애플리케이션의 데이터가 변경이 된다면 그에 맞게 화면이 바뀌어야 한다. 유저가 버튼을 클릭하면 스낵바가 올라온다던가 하는 행동이다. 그렇다면 statefulWidget으로 애플리케..

Study/Dart,Flutter 2021.08.30

6. Flutter의 Widget과 State 그리고 StatelessWidget과 StatefulWidget

앞서 포스팅에서는 Dart언어의 비동기식을 알아보았다. 이번에는 Dart의 가장 유명한 프레임워크이자 크로스 플랫폼인 Flutter의 State에 관해서 자세하게 알아보자. 오늘도 어김없이(재미없는) 이론 시간이다. Flutter를 잠깐 사용한다면 굳이 이론적인 내용은 알아야 하나 하지만, 조금이라도 깊게 파고들거나 상태 관리(State Management)에 알고자 한다면 반드시 알고 넘어가야 한다. Widget이란 무엇일까 Flutter의 모든 것이 Widget이라고 해도 과언이 아닐 정도로 모든 것이 Widget으로 이루어져 있다. 색이 있는 상자, 버튼, 사진 텍스트 상자 화면 전체까지 Widget이다. 화면을 Widget단위로 만든다고 생각하면 아주 좋다. Widget에 관하여 좀 더 자세하게 ..

Study/Dart,Flutter 2021.08.19

5. Dart Flutter, 플러터의 비동기의 Return, then과 try catch

이전 포스팅한 내용은 Dart에서 비동기가 어떻게 작동하고 어떻게 제어하는지 포스팅을 했었다. 이번에는 비동기 함수의 결괏값을 어떻게 받아오는지 알아보자. 결론 Dart의 비동기함수의 예외처리는 두 가지 방법이 있다. 첫 번째는, try catch finally로 한다. try를 진행하고 에러가 발생하면 catch가 작동하며 try 혹은 catch작동 이후 finally가 실행된다. 두 번째는, then catchError, whenComplete를 사용한다. 작동은 try가 then, catch가 catchError, finally가 whenComplete라고 생각하면 된다. 둘 중에 무엇이 좋다고 딱 잘라서 말을 할 순 없다. 하지만 잘 짠 코드에서는 코드의 가독성도 중요하므로 상황에 맞게 사용하도록..

Study/Dart,Flutter 2021.07.30

4. Dart Flutter, 플러터의 비동기식 Future, await 그리고 async

포스팅이 점점 더 기초적으로 가지만, 짚고 넘어가야 할 것 같아서 작성하게 되었다. 앞서 Dart의 비동기의 작동방식을 살펴보았다. 그러면 어떻게 사용하는지 살펴보자. 바쁜 사람을 위한 빠른 결론! Dart Flutter에서 비동기식을 사용할 때 Future, async, await를 사용한다. 함수 이름 앞 Future은 반환을 나타낸다. 가독성을 위해 적는것을 추천하지만, 생략해도 무방하다. await를 사용하기 위해서는 반드시 async가 적혀있어야한다. await를 사용하면 비동기 함수가 끝날때까지 기다리며, await를 사용하지않으면 기다리지않는다. 비동기함수가 끝났음을 알리고싶다면 Callback함수를 이용하여 알릴 수 있다. 직전 포스팅을 안 읽은 사람들을 위해 Dart 공식홈페이지 링크를 ..

Study/Dart,Flutter 2021.07.28

3. Dart Flutter, Asynchronous, Isolates와 Event Loop 에 관한 고찰

오늘은 이론적인 내용을 다뤄보도록 하자. Flutter로 개발을 하면 흔하게 사용하는 Future, async 그리고 await가 비동기식으로 작동하는 원리를 파악해보려고 한다. 먼저 Dart 공식 홈페이지에서 찾아보았다. https://dart.dev/codelabs/async-await Asynchronous programming: futures, async, await Learn about and practice writing asynchronous code in DartPad! dart.dev 읽어보면 Asynchronous 즉 비동기식 프로그래밍, futures, async 그리고 await에 관련된 내용이 나온다. 비동기식이란 동시에 일어나지 않게 일처리 하는 방식을 뜻하며, 동기식의 반대되는..

Study/Dart,Flutter 2021.07.23

2. 플러터 Navigator와 onGenerateRoute그리고 popUntil 의 고찰

앱 페이지를 넘기는 과정 중, PushName과 Pop만 사용하다가 popUntil을 사용해야 했다. 별생각 없이 PushNamed처럼 popUntil을 사용하는데 검은색 화면만 떠서 왜 안 될까 했는데 이번에 해결을 해서 포스팅하기로 했다. 바쁜 사람을 위한 결론! MaterialApp 혹은 CupertinoApp의 Parameter, onGenerator에 RouteGenerator을 선언했다고 popUntil이 되는 것이 아니다. 정확히는 ModalRoute.withName에 저장이 되지 않는다. ModalRoute.withName으로 Page이름을 적기 위해서는 Navigator push 할 때 MaterialPageRoute 또는 CupertinoPageRoute의 Parameter, setti..

Study/Dart,Flutter 2021.05.15
반응형