IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    使用Cloud Studio&Flutter完成全平台博客网站的搭建

    坚果发表于 2023-07-28 16:08:21
    love 0

    前言

    本文我将使用Cloud Studio 以及Flutter完成自己的一个博客平台的搭建。并且会将该项目作为模版,供大家使用。

    先来看一下效果

    image-20230722171710033

    image-20230722171433211

    image-20230722171455257

    image-20230722171626502

    一.Cloud Studio

    Cloud Studio 是基于浏览器的集成式开发环境(IDE),为开发者提供了一个永不间断的云端工作站。用户在使用CloudStudio 时无需安
    装,随时随地打开浏览器就能在线编程。

    image-20230722101025410

    大家也看到了,很多模版以及环境都有提供,大家也都知道我以前是搞Flutter的,于是就先尝试了一下Flutter模版,然后刚开始,可能确实不太会,但熟悉了一会,就发现他的好处了。

    Cloud Studio 作为在线IDE,包含代码高亮、自动补全、Git集成、终端等IDE的基础功能,同时支持实时调试、插件扩展等,可以帮助开发者快速完成各种应用的开发、编译与部署工作。我将这次的这个博客网站使用Cloud Studio推送到了Gitee,大家可以访问。

    image-20230722171523826

    image-20230722101417744

    二.应用场景

    Cloud Studio 在线编程工具适用于以下几个场景:

    2.1快速启动项目

    使用 Cloud Studio 的预置环境,您可以直接创建对应类型的工作空间,快速启动项目进入开发状态,无需进行繁琐的环境配置。

    下面就是我的工作空间,大家可以下次使用的时候,进入对应的工作空间,就可以继续编写代码,很是方便。

    image-20230722101646773

    2.2实时调试网页

    Cloud Studio 内置预览插件,可以实时显示网页应用。当您的代码发生改变之后,预览窗口会自动刷新,这样您就可以在 Cloud Studio 内实时开发调试网页了。

    下面这个就是我创建的第一个模版项目,你会发现很是方便。

    image-20230722101839929

    2.3远程访问云服务器

    Cloud Studio 支持您连接自己的云服务器,这样就可以在编辑器中查看云服务器上的文件,进行在线编程和部署工作。

    只有有自己的云服务器,那么你就可以在这里通过配置,很方便的入手开发。

    image-20230722102019485

    三.登录注册

    Cloud Studio 在线编程平台支持使用 CODING (opens new window)账号和 GitHub 账号,以及微信登录,可以在登录 (opens new window)界面输入相应的账号登录前往 Web IDE,这里我用的是微信登录。

    image-20230722105245727

    四.工作空间的创建与使用

    一个工作空间是一个虚拟计算单元,它包含独立的存储、计算资源以及开发环境。Cloud Studio 是以工作空间来组织的,本文为您介绍如何创建工作空间。

    4.1创建工作空间

    进入 Cloud Studio 云端 IDE,可以通过两种方式创建工作空间,第一种方式:点击模板直接创建工作空间,第二种方式:单击【新建工作空间】,进入工作空间创建页面

    4.1.1填写工作空间信息

    第一种方式点击模板创建工作空间,可自动生成工作空间名称,并运行模板的预置环境及样本代码。这里我用的是Flutter。

    image-20230722102325999

    第二种方式,选择创建工作空间,然后选择预置环境,填写工作空间名、描述,并选择运行环境和代码来源。

    image-20230722102355274

    image-20230722102503146

    • 工作空间名:您的工作空间的唯一标识,只能由字母、数字、下划线(_)、中划线(-)、点(.)组成,不能包含空格或其它字符。
    • 描述:对该工作空间作用的描述。
    • 运行环境:工作空间内代码运行的环境,您可以选择预置环境,包含 Ubuntu、Python、Java 和 Node.js 四种;也可以选择将其连接到自己的云服务器上,
    • 代码来源:工作空间内的代码来源,此处我们选择“空”,即不添加任何代码。

    单击【创建】按钮,即可完成工作空间的创建。您还可以创建代码来自于 Git 仓库的工作空间,代码会被自动克隆到工作空间

    4.2工作空间的使用

    您可以在 Cloud Studio 云端 IDE 的工作空间内存放自己的项目代码,安装所需要的软件环境,运行或编译项目,本文为您介绍如何使用工作空间。

    注意:

    • 数量限制:目前每个用户最多可以创建 10 个工作空间,并且只能同时运行一个工作空间,如果您需要打开另一个工作空间需要先关闭当前运行中的工作空间。
    • 时间限制:每个用户每月可以免费使用工作空间共 3000 分钟,超出时间将产生扣费(连接云主机的工作空间无此限制)。

    4.2.1工作空间界面简介

    工作空间是我们主要的工作区域,主要由顶部菜单栏、左侧操作面板、右侧代码编辑区和底部状态栏组成。

    您可以根据自己的习惯设置界面外观、偏好,安装自己需要的插件。

    需要注意的是,您的偏好设置和插件在每个工作空间中是互相隔离的,也就是说您可以给不同的工作空间设置不同的偏好,安装不同的插件。这里面大部分和你在本地使用vscode是一样的。

    我们可以通过终端来进行这些操作,点击菜单栏--终端--新终端,会在底部打开一个面板,点击【终端】切换到终端。

    4.2.2管理工作空间

    在 Cloud Studio 云端 IDE 的工作空间列表页面,您可以运行、停止、删除和恢复工作空间。

    运行

    单击对应的工作空间卡片,就会在新的页面打开并运行该空间,此时该工作空间卡片上会显示“运行中”状态。

    image-20230722104005628

    image-20230722104024539

    停止

    对于处在“运行中”状态的工作空间,单击卡片右边的【停止】,就可以停止运行该工作空间。

    image-20230722104046944

    删除

    您可以删除未运行的工作空间,单击工作空间卡片右下角的【删除】即可删除。

    image-20230722102839981

    恢复

    为了防止误删除,已删除的工作空间会展示在下方“已删除的工作空间”列表中,保留24小时。在此之前您可以随时单击【恢复】,还原您的工作空间,超过 24 小时未恢复的工作空间将被永远销毁。

    image-20230722105827791

    五.使用 Git 进行版本控制

    Cloud Studio 云端 IDE 的工作空间支持从代码仓库创建,不过在此之前您需要将工作空间的 SSH Key 添加至对应代码托管平台的个人公钥列表。

    5.1Cloud Studio 查看SSH公钥

    这里我们点击个人头像,打开系统设置,里面有SSH公钥,然后我们把密钥复制,添加到Gitee

    image-20230722103109295

    5.2Gitee添加SSH公钥

    在下图,添加SSH公钥,补充标题和公钥

    image-20230722103350506

    5.3Gitee上新建一个仓库

    image-20230722103659738

    在我们的云IDE的工作空间里,打开终端。

    5.4Cloud Studio配置邮箱和密码

    git config --global user.name "坚果"    
    
    git config --global user.email "852851198@qq.com"                                                            
    

    5.5Cloud Studio提交代码

    然后初始化仓库,提交修改,添加commit信息,然后推送

    
    git init
    git remote add origin git@gitee.com:jianguo888/flutter_bloc_super.git
    git add .
    git commit -s -m '初始化'
    git push origin master
    

    image-20230722103645747

    六.Flutter博客网站的开发

    Flutter 是谷歌的移动UI框架,Flutter 最近发布了 Flutter V3.10.6,可以快速在 iOS、Android、Web 等多平台上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作。在全世界,Flutter 正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。 目前 Cloud Studio 云端 IDE 支持 Flutter Web 应用开发。这就是为什么今天我们使用在 Web、macOS 应用、Android 和 iOS 应用上运行的 flutter 创建响应式博客主题。

    6.1创建项目

    打开云IDE之后,创建一个Flutter项目,当前,我使用的是 Flutter 3.0.1

    创建完成之后,我们就可以编写代码

    首先打开云IDE,选择创建项目

    image-20230722080603157

    然后这里我们给自己的项目命名

    image-20230722080817888

    等待项目加载完成

    然后运行下面的这行命令

    cd ./ && flutter pub get && flutter run -d web-server --web-port 9000  --web-hostname 0.0.0.0 && echo success

    image-20230722081123084

    我们可以选择打开内置浏览器或者浏览器

    这里我选择打来浏览器,大家可以看到这个项目运行成功。

    image-20230722081236621

    image-20230722080920406

    这个时候,说明我们的环境是ok的。我们可以后面的工作了

    6.2.打开端口面板实时预览调试

    点击最右边的按钮弹出预览页面。

    看到这些红色的文字 To hot restart changes while running, press "r" or "R". 说明项目编译好了。

    image-20230722104822701

    image-20230722104758236

    修改代码重新编译

    点击终端, 按 r 键即可重新编译, 再按预览页面的刷新按钮即可看到实时修改后的效果。

    image-20230722171601098

    1. 目前 Flutter Web 应用不支持热更新,需要手动刷新页面。
    2. 要项目编译完成才能代码预览页面, 否则会一直卡在 Loading 界面。
    3. 一直卡在 Loading 界面可尝试刷新预览界面。

    6.3发布web版

    我们希望你完成迁移后尽快将其发布,可以作为预览版:

    参考文章:
    https://dart.cn/null-safety/migration-guide

    细心的小伙伴可能会发现,安卓有android文件夹, iOS 有ios的文件夹,但目前目录结构是没有web文件夹的,

    6.3.1. 创建web文件夹

    输入下面的命令创建web文件

    flutter create .

    然后就会创建一系列web相关的文件 ,如下图, 目录结构也会多一个web的文件夹. 如下图

    image-20210927103240783

    6.3.2. 打包web版本

    我们知道要给android手机用,需要打包apk出来, 要给iPhone手机用,需要打包ipa出来;同样的道理要给浏览器用,也需要打包web相关代码.

    flutter build web --web-renderer html
    
    flutter build web 
    
    flutter build web --web-renderer canvaskit

    这将生成包括资源的应用程序,并将文件放入项目的 /build/web 目录中。

    一般的应用程序的 release 版本具有以下结构:

    content_copy

    /build/web
      assets
        AssetManifest.json
        FontManifest.json
        NOTICES
        fonts
          MaterialIcons-Regular.ttf
          <other font files>
        <image files>
      index.html
      main.dart.js
      main.dart.js.map

    启动 Web 服务器(例如,python -m SimpleHTTPServer 8000,或使用 dhttpd package),然后打开 /build/web 目录。在浏览器中访问 localhost:8000(前文用 Python 启动的服务器)以查看应用程序的 release 版本。

    经过测试,上面三种方式都可以打包web版本, 其中第一种是针对移动端的打包方式, 第二种是一般的打包方式, 第三种是针对pc端的打包方式.

    那这3种方式打包出来,运行起来有什么不同呢

    flutter build web --web-renderer html 打开速度最快,兼容性好(是指ie,chrome,safari等浏览器兼容)

    image-20210927103940311

    flutter build web 打开速度一般,兼容性好

    image-20210927104021552

    flutter build web --web-renderer canvaskit 打开速度最慢,兼容性好

    6.3.3结论

    就是使用第一种打包方式会比较好

    flutter build web --web-renderer html

    6.4常见问题

    坑1: 找到了index.html,用浏览器打开一片空白

    这个属于正常的, 这个不像前端web ,html css js那套,点击index.html就能访问的. 在flutter里面是不能直接访问的,一定要放到容器里面去才能访问,如:tomcat等

    坑2: 已经用nginx代理,用浏览器打开还是一片空白

    那是因为文件路径引用不对.解决办法有2种
    方法1:
    用编辑器打开index.html,能看到源文件,把<base href="/">,改成<base href="">

    方法2:
    用编辑器打开index.html,能看到源文件,把<base href="/">,改成你服务器的路径比喻说:<base href="http://你的服务器ip:0-65536/web/">

    然后nginx代理

      #flutter
        server {
           listen       251 ;
           server_name  flutterblog;
           location / {
               root   /root/study/flutter/web/;
               index  index.html index.htm;
            #    proxy_pass   http://127.0.0.1:12345;
            #    access_log  /usr/local/nginx/logs/go.101.log ;
    
           }
        }
    

    撒花

    七.自定义模板

    自定义模板是 Cloud Studio 云端 IDE 推出的面向团队模板能力的功能。该功能支持将当前项目作为自定义模板,能够覆盖到 Git 仓库的项目、普通项目、示例项目等,很大程度上提高了团队标准化代码开发环境的一大诉求。

    7.1自定义模板功能简介

    当前自定义模板实现的功能主要有四个方面,创建、发布、分享和管理自定义模板。

    7.2创建自定义模板

    当您处在当前项目 IDE 中,您可以创建自定义模板:

    这里我把我的Flutter 博客网站发布成模版。

    (1)点击功能栏中的“文件”,在下拉选项中选择“发布自定义模板”;

    image-20230722104258246

    (2)右侧布局窗口中会自动打开新标签页,可以选择您心仪的图标和标签,以及填写您模板的描述

    image-20230722104153254

    点击完成

    image-20230722104237142

    7.3发布自定义模板

    当您成功填写完自定义模板信息后,您可以进行自定义模板发布:

    (1)点击“完成”即可发布您的自定义模板;

    (2)在分享前点击“再次发布”,可以修改您的发布信息后再次分享,分享链接无变化,根据原模板已创建的 IDE 实例不受影响;

    image-20230722104348214

    image-20230722105143739

    7.4分享自定义模板

    当您的模板发布成功后,您可以有两种方式分享自定义模板:

    (1)进入分享页,复制您的自定义模板链接,分享给您的伙伴;

    坚果(个人)分享了「Flutter Blog」模板 https://cloudstudio.net/templates/r9IAX1JuTF2

    (2)通过嵌入 Markdown 徽章进行分享,将模板徽章嵌入 README 文件或者博客中,您的伙伴点击徽章即可获取模板;

    Cloud Studio Template

    至此,我们的一整个流程就完成了。

    总结

    通过这一次的一个体验过程,我总结了一下几个优势:

    Cloud Studio 作为 Web IDE/在线 IDE/Cloud IDE,和本地 IDE 相比具有以下优势:

    • 无需安装,跨平台:只要有浏览器就可以使用;预置常用环境,无需手动安装;支持创建网页预览,在线开发调试。
    • 全功能:无需下载安装,随时随地开发编码,拥有媲美本地 IDE 的流畅编码体验。
    • 多环境:内置 Node.js、Java、Python 等常见环境,也可以连接到云服务器进行资源管理。
    • 兼容 VS Code 插件:若默认的配置无法满足需求,可以在线安装 VS Code 插件来增强使用体验。
    • 持久化和快速加载:随开随写,随时保存,再也无需担心断电未保存,不浪费您的每一份灵感。

    在我的体验下,概括来说就是Cloud Studio 是用来开发中小型项目,在线修改代码,或者连接云服务器进行部署工作的不二之选。真正的达到了一键秒开、全持久化、预置环境及内置开发工具,跨团队无缝复制和共享,让开发化繁为简。



沪ICP备19023445号-2号
友情链接