自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

咖啡花园

专注咖啡一百年!

  • 博客(253)
  • 资源 (2)
  • 收藏
  • 关注

原创 通过Docker Cloud部署应用

如果您在生产环境中使用Docker Community Edition的效果还不错,可以使用Docker Cloud来帮助管理Amazon Web Services、DigitalOcean和Microsoft Azure等主流服务提供商的应用程序。设置和部署流程是:将Docker Cloud与您的首选提供商连接,授予Docker Cloud权限,为您自动配置和Dockerize虚拟机;使用D

2018-01-17 18:50:39 1062

原创 Docker堆栈的管理

在Docker中,镜像是一个轻量级的,独立的可执行程序包,包含运行一个软件所需的所有东西,包括代码、运行环境、库、环境变量和配置文件。容器是镜像的运行实例,默认情况下,它与主机环境完全隔离,只有在配置时才访问主机文件和端口。在《Docker集群的创建与管理》中,设置了一个运行Docker的机器集群,并部署了一个应用程序,容器在多台机器上运行。现在你可以了解分布式应用程序层次结构的顶层:堆栈。堆

2018-01-17 17:20:12 1137

原创 Docker集群的创建与管理

在《Docker简单入门》中编写一个应用程序,并将其转化为服务,在《Docker分布式应用》中,使应用程序在生产过程中扩展5倍,并定义应该如何运行。现在将此应用程序部署到集群上,并在多台机器上运行它,通过将多台机器连接到Dockerized集群上,使多容器、多机器应用成为可能。Swarm(集群)是运行Docker并加入到一个集群中的一组机器,在这种情况下,您将继续运行以往的Docker命令

2018-01-17 15:46:29 1272

原创 Docker分布式应用

这一节接着《Docker简单入门》后面扩展应用程序。实现负载平衡,要做到这一点,必须在分布式应用程序的层次结构中的服务层实现。在分布式应用程序中,应用程序的不同部分被称为“服务”。例如,一个视频共享站点,它可能包括一个用于将应用程序数据存储在数据库中的服务、后面的视频转码服务、用户上传东西、为前端服务等等。服务实际上只是“生产中的容器”,服务只运行一个镜像,但它编码镜像运行的方式,例如,应

2018-01-16 14:20:54 746

原创 Docker简单入门

作为一个初次接触Docker的人来说,最大的问题是Docker是什么?Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。比如,我们在笔记本上编译测试通过的容器可以批量地在生产环境中部署,可以用于自动化测试和持续集成、发布。还可以用于web应用的自动化打包和发布;在服务型环境中部署和调整数据库或其他的后台应用;从头编译或者扩展现有的OpenShif

2018-01-16 00:10:33 599

原创 使用PO+跨平台改造Macaca示例(APP端)

在学习完Macaca基础后,就迫不及待的模仿着Macaca示例项目,开始了测试用例的开发,并且在几天时间里就完成了几个页面的测试。然而,此时项目的所有代码都放在一个.py文件里,该文件已有上千行代码,重复代码很多,维护起来很困难。更大的问题是,我需要给Android和iOS分别写一套代码,这个工作量太多,而且大多是重复代码。为了避免这种情况发生,可以使用PageObject设计模式开发Ma

2018-01-15 19:26:19 986

原创 使用PageObject改造Macaca示例(桌面端)

在学习完Macaca基础后,就迫不及待的模仿着Macaca示例项目,开始了测试用例的开发,并且在几天时间里就完成了几个页面的测试。然而,此时项目的所有代码都放在一个.py文件里,该文件已有上千行代码,重复代码很多,维护起来非常困难。为了避免这种情况发生,可以使用PageObject设计模式开发Macaca项目。Page Object是自动化测试项目开发实践的最佳设计模式之一,通过对界面元素的封

2018-01-15 19:21:20 876

原创 Macaca使用过程中的疑问

使用PyCharm导入本地包时,提示Unresolved reference错误在PyCharm中导入本地包,需要为想导入的包设置源目录,也就是你要使用的文件所在的目录。macaca-ios、macaca-android与app-inspector模块下的应用包冲突在iOS真机调试下,因为macaca-ios和app-inspector是两个模块下的,安装的XCTestWD也是

2018-01-15 19:17:39 919

原创 WebDriver使用入门

WD.py是一个Python WebDriver客户端,实现了WebDriver协议中的大部分API。 它最初是为Macaca(一个Node.js驱动的WebDriver服务器)而设计的,但也可以应用于WebDriver服务器的其他实现,比如Selenium,Appium等。查找元素WebDriver的查找元素命令允许分别查找单个元素和元素集合,定位策略如下:文本idXP

2018-01-15 19:15:24 23312

原创 Macaca简单入门

执行Macaca自动化脚本时,首先需要启动一个Macaca服务器:$ macaca server --verbose参数设置启动Macaca服务器时如果没有指定端口号,服务器URL的配置参数如下:server_url = { 'hostname': 'localhost', 'port': 3456}Android设置变量desired_c

2018-01-15 19:13:00 3901

原创 在Mac下配置Macaca环境

Macaca依赖的功能模块非常多,安装过程很复杂,不过这是目前所有自动化测试框架的通病。Node.js请安装Node.jsv6.0或者更高版本,装好Node.js后命令行里就已经集成npm工具。默认情况下,npm命令下载的全局模块会存放在系统目录下,这会导致后续操作有很多坑,因此,需要修改默认的全局模块(node_global)的存放路径以及缓存(global_cache)的路

2018-01-15 19:09:57 2319

原创 基本的Material Design布局结构

Flutter应用的用户界面是由布局控件(不可见的)和展示控件(可见的)协同完成的,布局控件就像是建筑里的框架,而展示控件则相当于建筑里的砖瓦。展示控件按照布局控件的要求依次排列,就组成了用户所看见的界面。在Flutter应用中,最基础的布局结构是脚手架(Scaffold),例如:import 'package:flutter/material.dart';void main(){ runAp

2017-12-20 10:01:37 1338

原创 使用Material Design的Flutter应用

使用Flutter框架必须要导入flutter/material.dart包,然后在main()函数中调用material包的runApp函数,这样就可以启动一个Flutter应用。访问《Flutter框架基础》了解更多内容。import 'package:flutter/material.dart';void main() { return runApp(Widget app);}那么如何

2017-12-13 23:25:34 5126

原创 Flutter框架基础

Flutter应用程序是由一些零散且有关联的控件组成的,那么控件是什么?控件,就是你在屏幕上看到那些东西。例如,一间教室相当于一个屏幕,它里面可以放椅子,也可以放桌子,教室就是一个控件。在这个教室里,放一张桌子,在上面写上“Hello World”这个经典名句,桌子就是一个控件,它上面写有文字。这相当于你在屏幕上放一个Text控件,然后在Text控件的data属性中写上“Hello World”这句

2017-12-05 18:28:06 3311 1

原创 Material Design设计技巧

很多人以为做个应用程序很简单,所以描述需求的时候及其模糊,自己都不知道要做的东西的具体功能,结果项目做出来跟自己想的完全不一样。项目上线的时候漏洞百出,反复修修补补解决不了问题,后面直接报废重做。在开始开发一个新应用时,最麻烦的就是需求改来改去。所以首先需要列出要实现功能的表单,然后连续划掉不重要的项目,直到表单中只剩下核心功能,这样能确保应用的特征和功能点。新应用可以在后续版本中添加其他功能,但是

2017-11-30 00:48:45 965

原创 Material Design基础

Material Design,中文名:材质设计,是由Google推出的全新设计语言,旨在为手机、平板电脑、台式机和其他平台提供更一致、更广泛的感官体验。Flutter与Material Design的关系密切,Flutter框架中有一个Material Design风格的Widget库,而且这个Widget库也是Flutter的重要组成部分。但是Material Design不仅仅应用在Flutt

2017-11-20 11:44:14 2155 1

原创 Flutter插件一野狗云身份认证

Flutter插件一野狗云身份认证使用野狗身份认证(Wilddog Auth)的Flutter插件。野狗云身份认证即Auth,用于帮助企业和开发者将野狗快速接入应用的身份认证系统,一次身份认证打通野狗所有产品。还可以用于增强已有帐户体系和简化新应用中账号系统的开发。开发者使用Auth能让新应用避开从0开始的帐户系统开发,轻松搞定用户注册登录、用户信息存储。同时野狗采用行业标准的JWT格式对传输数据进

2017-11-16 23:22:07 7320 1

原创 Flutter插件一野狗云实时通信

Flutter插件一野狗云实时通信使用野狗实时通信引擎(Wilddog Sync)的Flutter插件。野狗实时通信引擎即Sync,可以帮助开发者解决应用的实时通信问题,开发者通过API,即可为应用建立客户端之间的长连接,并实时地双向同步数据。开发者使用Sync能快速实现三大功能:实时数据通信、实时数据分发以及实时数据存储,以下介绍Sync常见的应用场景。实时聊天:可用于直播或社交应用中的实时聊天

2017-10-25 18:52:16 9619 1

原创 Flutter进阶—简单平台插件实例

在之前写过的《Flutter进阶—平台插件》中,笔者简单介绍了如何简单的使用和创建一个Flutter插件,现在可以试试编写一个可以在平台与客户端之间传递数据的Flutter平台插件。在此之前,可以先了解一下平台插件的基本原理。上面图片是平台通道的结构概述,使用MethodChannel在客户端(UI)和主机(平台)之间传递消息,消息和响应异步传递,以确保用户界面保持响应。在客户端,Flutter的M

2017-10-02 22:54:29 12341 1

原创 Flutter从入门到进阶

Flutter从入门到进阶《Flutter简介》Dart入门《Dart入门—基础类型与正则》《Dart入门—集合类型》《Dart入门—函数与运算符》《Dart入门—库、泛型与异常》《Dart入门—类与方法》《Dart入门—控制流程与其他》Flutter基础《Flutter基础—你好,Flutter!》《Flutter基础—开发环境与入门》《Flutter基础—第一个Flutt

2017-09-20 10:36:01 12316 2

原创 Flutter实战一Flutter聊天应用(汇总)

纸聊这个应用程序使用Google的Flutter移动框架开发,是一个实时聊天应用程序,为了能专注于APP设计,应用程序的服务端使用Googler的Firebase平台。程序程序的名称为纸聊,意为像传递小纸条一样的简约聊天,登录后所有好友都在,消息无缝同步,还能发送图片。支持Android、iOS等多个平台,多端消息漫游同步。(由于使用了谷歌的后端服务,该应用程序必须在科学上网时才能正常使用。)应用截

2017-09-17 17:37:56 19254 8

原创 Flutter实战一Flutter聊天应用(二十一)

在这一系列的前二十篇文章里,我们已经完成了最主要的添加、删除好友,并与好友聊天,还可以发送图片的功能。这一篇文章会完成个人资料与设置相关的功能,并将应用发布上线。之前设置了个人资料的入口按钮,现在我们就来完成个人资料屏幕,个人资料屏幕的UI如下图所示。在该屏幕点击右上方的按钮会变换浏览、编辑两种状态,而控制状态变换的关键在于设置一个全局变量。当用户进入个人资料屏幕时,编辑状态设置为false,因此显

2017-09-16 21:31:42 10500 8

原创 Flutter简介

Flutter makes it easy and fast to build beautiful mobile apps.这是Flutter项目主页上对Flutter的定义,它可以轻松、快速地构建漂亮的移动应用。Flutter是Google使用Dart语言开发的移动应用开发框架,使用一套Dart代码就能构建高性能、高保真的iOS和Android应用程序,并且在排版、图标、滚动、点击等方

2017-09-07 00:04:39 19197 4

原创 Flutter实战一Flutter聊天应用(二十)

在上一篇文章《Flutter实战一Flutter聊天应用(十九)》中,我们完成了删除用户的逻辑,就是将会话的有效性设置为false就可以了。那么当会话的有效性为false时,用户再次添加该会话,我们应该怎么处理呢?打开add_session.dart文件,将_AddSessionState的_addSession方法中将新会话写入数据库的代码提取出来。同时,在_AddSessionState中新增一

2017-08-28 10:19:22 4019

原创 Flutter实战一Flutter聊天应用(十九)

在上一篇文章中,我们完成了聊天列表的用户界面与功能代码。在用户添加完会话后,聊天列表会增加对应的会话项,通过点击会话项,可以进入聊天屏幕。在这一篇文章中,我们主要是修改lib/chat_screen.dart的代码,也就是最早的聊天屏幕。首先打开lib/chat_screen.dart,在ChatScreen中添加五个参数,messages是会话对应的消息列表,myName和sheName是会话双方

2017-08-23 17:50:13 4218

原创 Flutter实战一Flutter聊天应用(十八)

在上一篇文章中,我们完成了基本的添加聊天功能,但是还没有在聊天列表显示添加的新聊天,在这篇文章中我们将实现这个功能——在聊天列表中展示所有的聊天。首先,我们在/lib目录下新建一个group_chat_list_body.dart文件。在group_chat_list_body.dart中编写一个有状态控件GroupChatListBody,传递两个参数,phone(手机号码)和myName(姓名)

2017-08-14 17:47:04 3610

原创 Flutter实战一Flutter聊天应用(十七)

在正文开始之前,我们先组织一下数据,所有Firebase实时数据库的数据都被存储为Json对象。我们可以将该数据库视为云托管Json树,该数据库与SQL数据库不同,没有任何表格或记录。当我们将数据添加至Json树时,它变为现有Json结构中的一个节点。虽然Firebase实时数据库允许嵌套数据的深度多达32层,然而,当我们提取数据库中某个位置的数据时,也会检索所有子节点。另外,当我们向某用户授予数据

2017-08-08 17:43:42 6866

原创 Flutter实战一Flutter聊天应用(十六)

在上一篇文章《Flutter实战一Flutter聊天应用(十五)》中,我们完成了登陆屏幕。在用户登陆成功后,会在本地创建一个LandingInformation文件,以使应用程序在启动时可以判断用户的登陆状态。在main.dart文件中,我们在main方法执行runApp之前使用existsSync方法判断LandingInformation文件是否存在。判断结果会传递给TalkcasuallyAp

2017-08-02 15:52:05 5442

原创 Flutter进阶—自定义主题风格

质感设计的Theme类将主题应用于后代控件,主题描述了应用程序的颜色和排版选择。后代控件使用Theme.of获取当前主题的ThemeData对象,当控件使用Theme.of时,如果主题稍后更改,则会自动重建,以便可以应用更改。我们可以通过Theme.of查看当前应用程序的配色方案。class _MyHomePageState extends State<MyHomePage> { Widget

2017-08-01 15:35:03 25591 4

原创 Flutter实战一Flutter聊天应用(十五)

在上一篇文章《Flutter实战一Flutter聊天应用(十四)》中,我们完成了注册屏幕。为了保持应用程序入口只有一个,即登陆屏幕,用户注册完成之后会返回手机号码、密码到登陆屏幕,让用户点击登陆按钮就可以直接登陆应用程序了。现在我们就来完善一下登陆屏幕。应用程序的项目已经上传到GitHub上,大家可以直接查看sign_in.dart文件的代码。我们回到sign_in.dart文件,在_SignInS

2017-07-28 16:01:33 4179

原创 Flutter实战一Flutter聊天应用(十四)

优化输入体验在进行下一步之前,我们先优化一下注册的体验:正在输入注册信息时,点击屏幕空白部分,清除当前文本输入框的焦点,同时收起键盘。正在输入注册信息时,直接收起键盘,再点击空白部分,清除当前文本输入框的焦点。不在用户输入时直接判断并显示错误提示信息,而是在用户输入完成以及点击加入按钮时判断并显示错误提示信息。在每一个输入框下方都显示帮助信息,提示用户输入什么内容。首先我们把SignUpS

2017-07-22 23:53:11 6870

原创 Flutter进阶—Firebase数据库实例

Flutter目前无法使用平台的数据库,因此我们暂时使用Firebase实时数据库。首先我们需要为项目配置Firebase,具体配置方法可以在《Flutter实战一Flutter聊天应用(五)》查看,因为我们只需要使用Firebase数据库,所以pubspec.yaml文件的内容需要修改一下。name: talk_casuallydescription: A new flutter project

2017-07-11 17:32:00 10463 2

原创 Flutter实战一Flutter聊天应用(十三)

提交用户的注册信息我们现需要将用户的注册信息保存到Firebase实时数据库,在Firebase控制台中,更改Firebase实时数据库的安全规则,选择“Database > 规则”,规则如下所示:{ "rules": { "users":{ ".read": true, ".write": true }, "messages": {

2017-06-28 18:33:20 2862

原创 Flutter实战一Flutter聊天应用(十二)

由于当前项目的账号是直接使用Google账户,iOS系统问题不大,但是Android系统如果没有Google框架,则无法使用我们的应用程序。因此,我们需要创建自己的账户数据。在这篇文章中,我们会创建一个登陆屏幕和注册屏幕,两个屏幕的UI如下图所示:关于UI布局的内容不是这篇文章的重点,所以不会具体描述,只会展示代码并陈述布局思路。有关UI布局的内容可以查看《Flutter进阶—构建布局实例》、《Fl

2017-06-27 18:23:31 3758

原创 Flutter实战一Flutter聊天应用(十一)

我们的应用程序现在可以点击查看图像,但还没有实现查看时放大、缩小与移动图像。要实现这个功能,需要监听用户在图像上的操作,并调用相应的回调处理用户操作。我们先将Transform控件从_ImageZoomableState的build方法中拆分出来。在_ImageZoomableState类中添加_drawImage方法。class _ImageZoomableState extends State<

2017-06-21 16:39:13 3143

原创 Flutter实战一Flutter聊天应用(十)

首先,我们要修复一下之前几篇文章中存在的缺陷。在发送超过两行的消息时,屏幕上显示的消息不会自动换行,会超出最大宽度。我们可以通过将Text包装在Container控件中,再添加一个width属性,使其获得一个不超出屏幕大小的宽度。class ChatMessage extends StatelessWidget { //... @override Widget build(BuildCo

2017-06-20 16:58:51 4743 1

原创 Flutter实战一Flutter聊天应用(九)

在这篇文章中,我们将允许用户在聊天消息中发送图像,从设备检索图像文件,并将文本和图像数据存储在Google云端存储Bucket中。由于我们使用Firebase云储存,应用程序将变得更加健壮和可扩展。它能够在上传和下载期间处理网络中断,安全地存储数据,并在用户群扩展时保持相同的性能。要将数据(如文本和照片)从移动设备上传到云端,我们需要使用firebase_storage插件。在main.dart文件

2017-06-14 15:38:53 8729

原创 Flutter实战一Flutter聊天应用(八)

现在,我们将使用Firebase服务将聊天消息数据存储并同步到公用共享实时数据库上的云。我们需要使用firebase_database插件,用于在Firebase数据库存储和同步消息,还需要使用firebase_animated_list插件,用于增强聊天消息列表。在main.dart文件中,确保导入相应的包。import 'package:firebase_database/firebase_da

2017-06-13 23:24:33 5189 1

原创 Flutter实战一Flutter聊天应用(七)

使用Firebase控制台的分析(Analytics)功能可以帮助我们了解用户是如何使用Flutter应用程序。我们将启用捕获预定义的事件,调整应用程序以收集登录事件和发送消息的指标。数据捕获后,我们将通过Firebase控制台在仪表板中查看。要使用Firebase Analytics收集用户的数据,我们需要firebase_analytics插件。在main.dart文件中,确保导入相应的包。im

2017-06-12 17:58:00 4383 1

原创 Flutter实战一Flutter聊天应用(六)

我们将使用Google登录来验证应用程序的用户。Google登录功能可让用户使用其Google帐户(与Gmail、Play、照片和其他Google服务所使用的帐户相同的帐户)进行安全登录。我们还可以根据与用户的Google帐户相关联的个人资料和身份信息,个性化用户体验。用户登录后,我们可以使用个人资料照片个性化聊天消息头像。要添加对Google登录的支持,我们将使用google_sign_in插件,

2017-06-09 22:42:24 10292 8

mask_segmentation

《LabelStudio + MMDetection 实现目标分割预标注》的项目代码

2022-04-20

dear_demo.zip

Python DearPyGui 项目实践项目代码,开箱即用,马上可以在此基础上开发你的GUI项目!

2020-11-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除