4 min read

Flutter: SDK viết mobile app cho Android và iOS của Google

Bài viết giới thiệu về Flutter - SDK phát triển ứng dụng di động đa nền tảng của Google sử dụng ngôn ngữ Dart. Tác giả phân tích các tính năng nổi bật như hot reload, reactive programming, hệ thống widget và khả năng truy cập tính năng native, đồng thời so sánh với React Native để giúp lập trình viên có cái nhìn tổng quan về công nghệ mới này.

Flutter: SDK viết mobile app cho Android và iOS của Google

Flutter: SDK viết mobile app cho Android và iOS của Google

Ngôn ngữ Dart

Dart là ngôn ngữ được Google phát triển, tham vọng là sẽ thay thế Javascript. Nói chung không biết thay thế được không nhưng cũng khá hứa hẹn. Bời vì Javascript giờ bá quá, cái gì cũng làm được. Mà cái gì cũng làm được đâm ra lại không tốt.

Mấy anh kĩ sư Google không thích Javascript nên quyết tâm phát triển Dart. Thật ra mình cũng mới nhìn sơ qua code của Dart chứ chưa code thử luôn. Một nhận xét là khá giống Javascript :))

Anh em vào đây test thử ngôn ngữ Đát tờ nha: https://dartpad.dartlang.org/

Trên trang chủ của Dart, bạn sẽ thấy dòng quảng cáo sau:

Ám chỉ ai thì bạn biết rồi đó.

Dart ngon hay dở thì tương lai sẽ trả lời. Còn hiện tại, muốn cạnh với Javascript thì phải ít nhất làm được những gì Javascript có thể làm. Front end thì Dart làm được rồi ( một phần nào thôi ), giờ tới cross platform cho mobile app. Ai cũng biết React Native, Ionic giờ đang phổ biến. Do đó Google cũng ra Flutter để cạnh tranh, đương nhiên là code bằng Dart rồi.

Giới thiệu Flutter

Không liên quan nhưng tiếng Anh flutter là vỗ cánh ( làm nhớ đến Swift là tên chim, mấy anh này thích đặt tên chim chóc quá ha ).

Hot reload

Tương tự như React Native, Flutter cũng có hot reload. Viết code rồi save lại khỏi chạy cũng thấy được sự thay đổi nên build UI sẽ nhanh hơn

hot-reload flutter

Reactive programming

Cũng kiểu setState() sẽ chạy lại hàm build() ( bên React Native là hàm render() )

class CounterState extends State { 
  int counter = 0;

  void increment() { 
    // Tells the Flutter framework that state has changed, 
    // so the framework can run build() and update the display. 
    setState(() { 
      counter++; 
    }); 
  }

  Widget build(BuildContext context) { 
    // This method is rerun every time setState is called. 
    // The Flutter framework has been optimized to make rerunning 
    // build methods fast, so that you can just rebuild anything that 
    // needs updating rather than having to individually change 
    // instances of widgets. 
    return new Row( 
      children: [ 
        new RaisedButton( 
          onPressed: increment, 
          child: new Text('Increment'), 
        ), 
        new Text('Count: $counter'), 
      ], 
    ); 
  } 
}

Widget

Bên RN được xây dựng theo Component, còn Flutter thì có khái niệm 'mới' là widget. Chắc cũng sẽ sinh ra cái gì đó giống Redux thôi :))

Native features

Flutter cũng có thể truy cập cái API của native. Ví dụ dưới đây là code lấy % pin của máy:

Future getBatteryLevel() async { 
  var batteryLevel = 'unknown'; 
  try { 
    int result = await methodChannel.invokeMethod('getBatteryLevel'); 
    batteryLevel = 'Battery level: $result%'; 
  } on PlatformException { 
    batteryLevel = 'Failed to get battery level.'; 
  } 
  setState(() { 
    _batteryLevel = batteryLevel; 
  }); 
}

Kết

Hiện tại Flutter mới ra bản alpha. Nếu đem so sánh với React Native thì không công bằng đúng không. Nhưng theo mình thấy hiện tại thì Flutter không ngon như những gì quảng cáo. Cộng đồng ít, document viết cũng không ngon như React Native. Tuy nhiên nếu bạn muốn dẫn đầu xu hướng, là người tiên phong thì nên học và làm thử Dart với Flutter nhé. Lúc mình viết về React Native hay Kotlin đều chưa hot, giờ khá hot rồi nè. Biết đâu sau này bạn là chuyên gia Dart tại Việt Nam thì sao?

Related Posts

Discover more content you might enjoy