Android上的Flutter让Golang开发者感到绝望!

Android上的Flutter让Golang开发者感到绝望! 当谷歌提及Android Go时,所有人都以为它与Golang相关。

一些开发者对在Android上看到Golang充满希望。

但结果如何呢?

Kotlin抓住了机会,而谷歌则大力推广其Flutter

真是令人感到无比绝望!

1 回复

更多关于Android上的Flutter让Golang开发者感到绝望!的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


作为 Go 语言开发者,我理解你的失望,但需要澄清一些误解。首先,Android Go 与 Go 语言(Golang)无关,它是 Android 的一个轻量级版本,针对低端设备优化。Go 语言本身并不是为移动应用开发设计的,它的强项在于后端服务、系统工具和并发处理。

尽管 Go 在 Android 上的直接应用有限,但你可以通过其他方式集成 Go。例如,使用 Go 编写高性能的后端 API 或库,然后在 Android 应用(包括 Flutter 或原生 Kotlin 应用)中通过 HTTP 请求或 gRPC 调用这些服务。这能发挥 Go 的并发优势,同时利用 Flutter 的跨平台 UI 能力。

下面是一个简单示例,展示如何用 Go 编写一个 HTTP 服务,然后在 Flutter 应用中调用它:

Go 后端代码(main.go):

package main

import (
    "encoding/json"
    "log"
    "net/http"
)

type Response struct {
    Message string `json:"message"`
}

func handler(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("Content-Type", "application/json")
    json.NewEncoder(w).Encode(Response{Message: "Hello from Go backend!"})
}

func main() {
    http.HandleFunc("/api", handler)
    log.Fatal(http.ListenAndServe(":8080", nil))
}

运行这个 Go 服务后,它会在本地 8080 端口提供 API。

Flutter 应用代码(Dart): 在 Flutter 中,你可以使用 http 包调用这个 Go 服务:

import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Go + Flutter Example')),
        body: Center(
          child: ElevatedButton(
            onPressed: () async {
              var response = await http.get(Uri.parse('http://localhost:8080/api'));
              if (response.statusCode == 200) {
                var data = json.decode(response.body);
                print(data['message']); // 输出: Hello from Go backend!
              }
            },
            child: Text('Call Go API'),
          ),
        ),
      ),
    );
  }
}

这个例子展示了 Go 和 Flutter 的协同工作:Go 处理后端逻辑,Flutter 处理前端界面。虽然 Go 不直接用于 Android 应用开发,但它在后端领域表现出色。如果你坚持在移动端使用 Go,可以考虑通过 Go Mobile 项目编译为 Android 库,但这通常用于特定场景,如性能密集型计算。

总之,不要绝望——Go 和 Flutter 可以互补。专注于 Go 的优势领域,同时利用 Flutter 构建跨平台 UI,这样能最大化开发效率。

回到顶部