首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用户为王(一)

在这一部分我将谈到 -如何请求权限 -注册的囧况 -良好的加载效果 如何请求权限 再也没有比第一次打开应用就duang地跟你要权限好给你发通知更讨人厌的了。...你还没来得及看完应用引导界面就弹出一个对话框:“么么哒,我可以每天都给你发邮件吗?” “滚!”...别狮子大开口,用到了信息必须的功能再问用户要信息 有时候,为了给用户提供最好的体验,你要从用户那儿获取很多信息。可是,填表大概是这个世界上最讨人烦的事儿了,特别是当你从中还拿不到好处的时候。...使用进度条改善你的应用还能给你的用户体验加分。 假如你在加载一个内容丰富的页面,有图片、文本、链接、视频和炫酷的画面,整个界面最后加载完会非常漂亮,可假设我只是在找加载过程中第一秒就出现的文本链接呢?...取悦你的用户 那总有一些情况用户是必须得等的,像登陆注册啊什么的。 你记不记得当你还是一个孩子的时候,在饭馆等上菜是多无聊的一件事啊!

88870

5 个必备必知必用的前端插件

VSCode 窃窃一笑,说:嗯,你说的真对,说的太好了。那你们知道目前市场上最好的前端编辑器是哪个吗?是我,因为以上优点,在所有的前端编辑器中,只有我都有,而且最好。...众浏览器共同发出一声轻蔑的笑声:哼,原来你是在这里等我们的啊! Visual Studio Code 是由微软开发的一款免费、跨平台的文本编辑器。...由于其卓越的性能和丰富的功能,它很快就受到了我们前端开发者的喜爱。 VSCode 最大的优势和特点不仅仅是界面清爽,干净,最重要的是有一个扩展和主题市场,包含了数以千计质量不同的插件。...当你在 HTML 文件中右键单击选择器时,选择 “Go to Definition 和 Peek definition” 选项,它便会给你发送样式设置的 CSS 代码。 ?...它会在您键入时立即运行代码,并在代码编辑器中显示各种执行结果。说白了就是一个调试工具插件,能够根据你正在编写的代码提供实时反馈。配置简单而且能够预览变量的函数和计算值结果。 ? ?

2.3K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Resharper上手指南

    当你还是一只小小鸟的时候,可以学会drag&drop,当你开始写代码的时候,你会发现设计器生成的代码是多么愚蠢和臃肿。当你自己能够写出干净的代码时,可能再也不想切换到设计器中去了(切换/F7)。...首先在安装完Resharper之后,你主要通过三种方式用到或看到它:    一是在菜单栏上,如果是3.0版本的话,它会默认的屏蔽掉“重构”菜单栏,也就是说你按Alt+R的时候,弹出的是Resharper...你可以简单地这样体验一下:Alt+R,N,回车,就可以在当前项目中添加一个类,还记得以前你是怎么做的吗?...转到定义   当你的光标在一个变量上时,按下Ctrl+B就会跳转到这个变量声明的地方。这可能是某一个字段,某一个方法的参数或者一个局部变量。   ...•生成的代码中最常用的是构造函数和属性,当你没有私有字段的时候,只会生成一个空的默认构造函数,而且没有生成属性的功能。

    1.8K60

    【每日精选时刻】MySQL双主架构,原来能这么玩;一文掌握 Go 并发模式 Context 上下文;老板说,2 天开发一个 App,双端支持,我是怎么做到的

    在 Go 的日常开发中,Context 上下文对象无处不在,无论是处理网络请求、数据库操作还是调用 RPC 等场景下,都会使用到 Context。那么,你真的了解它吗?熟悉它的正确用法吗?...当你没有使用正常的浏览器访问网站的时候,它会返回如下这段文字: Checking your browser before accessing xxx....3、开发者生活老板说,2 天开发一个 App,双端支持,我是怎么做到的​老板说,2 天开发一个 App,我用 Expo 做到了,当然,学习怎么使用 Expo 花了1个小时时间不算哈。...Expo 是一个非常强大的工具,特别适合那些想要快速构建和发布React Native应用的开发者。你有没有遇到过这种情况?...这半年,我们见证了上百位开发者在社区第一次用文字记录自己的研发所思所想,数千名开发者参与21天打卡创作挑战、用科学的方法养成新习惯,累计发布技术文章数万篇。

    10510

    1小时零基础赚一千,教你完成图书管理系统,不用打代码绝对学得会!

    1_bit:行吧,是整个站点,完整的? 小媛:是的。 1_bit:不过你用了那么久 IVX 你知道 IVX 到底是啥吗? 小媛:是个编辑器?...1_bit:emmm,看来你就记住这个了;IVX 是一个编程语言。 小媛:啥?没代码也是语言吗? 1_bit:当然是啊,你不懂手语吗?手语也是语言呀。 小媛:突然焕然大悟。...1_bit:我刚刚说了那么多你还不清楚吗?是个 IDE! 小媛:IDE是啥? 1_bit:你竟然 IDE 都不懂?...IVX 找,这样就不用麻烦我了,你直接可以用,分分钟赚个几千不香吗?...1_bit:以上信息中,目标地址为点击后跳转到的资源地址,方面图为图片的地址。 小媛:明白了。 1_bit:然后我们可以点击加号,为这些字段(数据ID这些统称为字段)添加具体的值。

    64130

    关于无障碍设计的七件事

    确保文本与其背景保持足够的对比 根据WCAG,文本和文本背景之间的对比度至少保持在4.5:1。如果你使用的字体是24px或18px加粗,那这个比例为最小值—3:1。...缺失一:没有边框的表格 下面是传统的文本输入的示例。它是一个具有定义边界的矩形。表单输入区域可以填充颜色(当然不一定要填充)。还有一个可见标签,在这个例子里位于字段的左侧。 ?...要设计一个记笔记的或者博客APP,你会怎么做? 缺失二:没有标签的表格 “标签”告诉用户该字段的用途。当焦点在输入框内时,如今常见的用“占位文本”来替代标签是一种不太好的做法。...是邮箱还是手机号(左边的例子)?是我喜欢的食物还是餐厅(右上角的例子)?价格的最大值/最小值吗(右下角的例子)? ? 对于右下角“Price”的例子,我做了一个优化方案。...打开设置-辅助功能-旁白,这个时候就变成一部可以供视障用户使用的手机。 ? 轻点一次触发朗读,轻点两次激活所点项目 接着,闭上眼睛,根据提示声音打开任意一款APP。

    3K30

    最强 Android Studio 使用小技巧和快捷键

    通过在检索框中输入部分路径的前缀,并添加斜杠号,你就可以在第一次尝试的时候就找到正确的那个。...当你在没有写变量声明的直接写下值的时候,这是一个很方便生成变量声明的操作,同时还会给出一个建议的变量命名。...动态模板(Live Templates) 描述: 动态模板是一种快速插入代码片段的方法,使用动态模板比较有意思的是你可以使用合适的默认值将模板参数化,当你插入代码片段时...当你进入某段陌生的代码,试图明白某个参数是怎么传递到此处的时候,这是一个非常有用的操作。...标记对象(Mark Object) 描述: 当你在调试的时候,这个操作可以让你给某个特殊的对象添加一个标签,方便你后面很快地辨认。

    1.6K10

    Android Studio 的 10 个使用技巧

    通过在检索框中输入部分路径的前缀,并添加斜杠号,你就可以在第一次尝试的时候就找到正确的那个。...提取变量(Extract Variable) 描述:这是一个提取变量的快捷操作。当你在没有写变量声明的直接写下值的时候,这是一个很方便生成变量声明的操作,同时还会给出一个建议的变量命名。...内置(Inline) 描述:当你开始对提取操作有点兴奋的时候,突然觉得东西太多了,怎么办呢?这是一个和提取相反的操作。该操作对方法、字段、参数和变量均有效。...动态模板(Live Templates) 描述:动态模板是一种快速插入代码片段的方法,使用动态模板比较有意思的是你可以使用合适的默认值将模板参数化,当你插入代码片段时,这可以指导你完成参数。...当你进入某段陌生的代码,试图明白某个参数是怎么传递到此处的时候,这是一个非常有用的操作。

    20010

    完美假期第一步:用Python寻找最便宜的航班!

    大数文摘出品 编译:高延、熊琰、胡笳、蒋宝尚 “你喜欢旅游吗?” 这个简单的问题经常会得到一个积极的回复甚至还会额外收到一个或两个冒险的故事。...它会将检索结果以邮件的形式发给你,我建议将excel文件保存到Dropbox云端,这样你就可以随时随地访问它。...选择你要飞往的城市和日期。选择日期时,请务必选择“+ -3天”。我已经编写了相关的代码,如果你只想搜索特定日期,那么你需要适当地进行一些调整。我将尽量在整个文本中指出所有的变动值。...从我的测试来看,第一次搜索运行似乎一切正常,所以如果你想要用这段代码,并且让它们之间保持较长的执行间隔,就可以解决掉这个难题。你并不需要每10分钟就更新这些价格,不是吗?!...它会去搜素具有data-code属性值为price的a元素。而第一种方式则是去搜素一个id为wtKI-price_aTab元素,且该元素嵌在5层div及2层span内。

    2.3K50

    为什么比起 IntelliJ IDEA,我更喜欢 Eclipse…

    这些无法用糖衣包裹的“炮弹”是: 1、项目不是自动构建的(默认情况下) 项目不是自动构建的(默认情况下),所以你可以以编译错误结束,直到你打开一个非编译文件或者运行一个构建。...然后打开自动构建,让计算机爬动起来。我知道我的计算机需要升级,但这不是重点——没有“构建在变化上”对第一次尝试IDEA的我来说是一个巨大的“惊喜”。...另外,Maven / Gradle依赖关系的改变可能会引入你无法看到的编译问题。这根本不是一个合理的默认值,并且我认为性能问题是它仍然默认的唯一原因。这使得体验变得更糟。...所以每当你需要走出你的主要项目时,你会启动另一个屏幕。除了糟糕的可用性之外,它的内存加倍,痛苦加倍。 3、说起内存,IDE似乎比Eclipse更耗费内存。...由于使用Spring,所以这些方法和字段是控制器方法和自动装配字段。也许一些Spring插件会照顾到这一点,但是Spring并不是唯一使用反射的框架。

    1.9K30

    驱动力来自哪里——献给迷茫的程序员|洞见

    再比如你去跑步,第一次不间断跑了10公里,这种超越自己的感觉肯定会非常奇妙。你修复了一个存在已久的软件故障,那么今天就会感觉特别充实。这种没有人主动给你奖励或惩罚的事情你却干的津津有味。...如果你能驾驭这第三种驱动力,那么恭喜你,你的人生会一直前进。 那么如何驾驭这第三种驱动力呢?作为程序员,你首先要问自己一个问题:“我真的喜欢编程吗?...如果你的答案是为了养家糊口,那么很可能你成为不了一个优秀的程序员,而且在这条路上你越走越疲倦;如果你的答案是真心喜欢编程,那也很可能说明不了什么问题,除非你每天都在主动地学习和进步。...举个例子,AngularJS刚面世的时候,我一个同事对其非常感兴趣,研读了很多相关的资料,并积极试用,虽然那时候它极不成熟。...所以他们成了大牛,而按部就班的程序员依然是普通的程序员。当你自发想做一些事情时,你无疑已经领先了很多人一大步,因为这些人都在原地踏步。

    67550

    完美假期第一步:用Python寻找最便宜的航班!

    大数文摘出品 编译:高延、熊琰、胡笳、蒋宝尚 “你喜欢旅游吗?” 这个简单的问题经常会得到一个积极的回复甚至还会额外收到一个或两个冒险的故事。...它会将检索结果以邮件的形式发给你,我建议将excel文件保存到Dropbox云端,这样你就可以随时随地访问它。...选择你要飞往的城市和日期。选择日期时,请务必选择“+ -3天”。我已经编写了相关的代码,如果你只想搜索特定日期,那么你需要适当地进行一些调整。我将尽量在整个文本中指出所有的变动值。...从我的测试来看,第一次搜索运行似乎一切正常,所以如果你想要用这段代码,并且让它们之间保持较长的执行间隔,就可以解决掉这个难题。你并不需要每10分钟就更新这些价格,不是吗?!...它会去搜素具有data-code属性值为price的a元素。而第一种方式则是去搜素一个id为wtKI-price_aTab元素,且该元素嵌在5层div及2层span内。

    1.9K40

    26个你需要学习的Firefox配置技巧,改进体验和加快浏览器响应速度

    更改内容流程的数量 你喜欢同时打开很多标签页吗?或者你很少打开超过5个标签页吗?您拥有的内容进程越多,分配给每个选项卡的CPU资源就越多(这也将使用更多的RAM)。...减少会话历史缓存,保存RAM 如果你使用的是一台老旧的电脑,那么即使是通常速度很快的Firefox也会在默认设置下减慢你电脑的速度。...延长脚本的执行时间 在Firefox中,一个脚本只有10秒钟的响应时间,之后它会发出一个没有响应的脚本警告。如果网络连接缓慢,您可能希望通过dom增加脚本执行时间。...处理JavaScript弹出窗口 当你遇到一个执行一个javascript,打开一个新窗口函数,如果弹出窗口是没有通常的窗口功能,例如后退/前进/刷新按钮,状态栏,等等,Firefox将自动把它当作一个弹出...在所有文本字段中启用拼写检查 默认的拼写检查功能只检查多行文本框。您可以更改布局中的选项layout.spellcheckDefault使它对单行文本框进行拼写检查。

    5.5K20

    用户为王(二)

    把你创造的世界介绍给用户 这年头每天都有成千上万的新应用蹦出来,你必须得趁用户刚用上你的应用的时候就给他留下深刻印象,突出你的价值从而成为流行。...用户是让你的公司估值变得这么高的人,所以用户理应在注册之前知道他注册的是什么玩意儿。 至少,你可以设计一个炫酷的第一屏,半扁平风格的登陆界面。...再说说应用情景 根据你提供的服务,在设计你的第一次打开体验时,你得考虑到不同的用户情景好在展示内容的时候尽快让用户接受你的应用。...在连接之前就粘住用户 当Snapchat火遍大江南北的时候,我所有的朋友都开始下载它,然后社交全都用Snapchat。这是当时你第一次打开Snapchat看到的图: ?...我知道现在他们不再需要卖力吸收新用户,也不用在第一次启动的时候费劲兜售自己的价值,可我还是希望第一次打开的时候是这个样子的: ?

    92860

    INDIRECT函数导言

    这是我的定义,我们来一个个剖析加粗字体的意思。 1 传入的是文本内容。看到这,用过的人可能会想,我明明写过INDIRECT(A1),你却说传入的是文本内容。...别急,假设你在A1单元格填写了B1,B1单元格的内容是金拱门然后C1单元格输入了=INDIRECT(A1)。你能预料最后的结果吗?最后它会返回金拱门。...Excel 有两种表示工作表行列的方式,一种叫A1方式,一种叫R1C1方式。默认的是A1方式,所以你打开工作表,会发现在这个表格矩阵中,横坐标是字母ABC。。。...,纵坐标是12345...所以当你传输到INDIRECT 参数中的单元格,其单元格值是符合这种字母+数字的格式的时候,它将被识别为这个格式所代表的单元格,例如B1 3 输出区域对象。...可能微软工程师觉得和你们解释这个太累了,所以直接显示了单元格的值给你们。跳过了这个逻辑,有些人就一直很难理解这个函数。在很多嵌套函数中,用INDIRECT 的时候你就会发现这一特性。

    69620

    星际争霸2-数据编辑器-菜鸟入门

    我自信用魔兽3的对象编辑器用得炉火纯青了, 但是当我打开数据编辑器时, 连怎么做个Unit都不知道....显示所有对象源 - 当你编辑一个兵时, 编辑器会创建一个拷贝来编辑, 老的还保留着. 你可以随时返回去看望这个没有编辑过的它....显示默认值 - 显示成灰色的都是默认值, 表示跟它爹的值一样. 显示高级字段 - 开这个最好也"显示默认值". 显示字段类型 - 字段名会加一个分类前缀....好在破璃渣实现了一个工具, 右键点一个结点, 选择"Explain link(解释连接)", 一个新的窗口会解释给你看....如果我想做一个AOE技能, 加速所有范围内的单位15秒. 你能猜出来这些类型是怎么联系起来的吗? 我会做一个Ability(当然配个Button).

    1.7K20

    笨办法学 Python3 第五版(预览)(一)

    这次我们将使用一种称为“格式化字符串”的东西。每当你在文本周围加上"(双引号)时,你就在制作一个字符串。字符串是你如何制作程序可能提供给人类的东西。...一个字符串通常是你想要向某人显示或从你正在编写的程序“导出”的一小段文本。当你在文本周围放置"(双引号)或'(单引号)时,Python 知道你想要的是一个字符串。...在 macOS 电脑上,它会打开一个窗口,显示当前终端所在位置的内容。当你输入以下内容时,同样的情况也会发生: 1 start . 在 Windows 中在 PowerShell 中。...注意,当我运行它时,我给了它first 2nd,这导致它出现了一个关于“需要超过 3 个值来解包”的错误,告诉你没有给足够的参数。 学习练习 尝试给你的脚本提供少于三个参数。看看你会得到什么错误?...我可以为 prompt 变量使用双引号吗? 完全可以。试试看吧。 你有一台 Tandy 电脑吗? 我小时候有过。

    24310

    驱动力来自哪里-献给迷茫的程序员

    还有你去跑步,第一次不间断跑了10公里,完成后的感觉肯定会非常奇妙。你修复了一个存在已久的软件故障,那么今天就会感觉很充实。这种没有人主动给你奖励或惩罚的事情你却干的津津有味。...如果你能驾驭这第三种驱动力,那么恭喜你,你的人生会一直前进。关键在于,如何驾驭这第三种驱动力呢?你首先要问你自己一个问题,“我真的喜欢编程吗?...如果你答案是为了养家糊口,那么很可能你成为不了一个优秀的程序员,并且在这条路上你越走越疲倦;如果你的答案是真心喜欢编程,那也很可能说明不了什么问题,除非你每天都在主动的学习和进步。...如果你做一件事情先想着它有没有价值,会不会给你带来收益,那么你还是在利用第二种驱动力。能不能带来收益在你当时的环境中你是很难看出来的。...举个例子,AngularJs刚面世的时候,我一个同事对其非常感兴趣,研读了很多相关的资料,并积极试用,虽然那时候它极不成熟。

    40610

    android学习笔记----关于findViewById那些事

    当你点击设备上的应用图标 就打开了 MainActivity,在我们的代码中 MainActivity 的 onCreate 方法被系统调用,在这个方法中有一个 setContentView 方法,它是资源布局...View 的时候,它会调用构造函数,也就是 NewTextView(setContentView只传入TextView的时候) 或者 NewLinearLayout(setContentView传入LinearLayout...对于这个 TextView 我们给它指定一个id 为 quantity_textview,给 View 指定 id 是可选择的,你只需要给你要引用的 View 指定 id,例如,你可以给任何 View...然后 findViewById 方法遍历它,找到那个视图层次结构中的某个 View,这个方法的返回值是 View 类型的对象。...= findViewById(R.id.textview); 又报错了,说类型不兼容,我们需要一个 TextView 类型,但这是一个 View 的对象,因为 findViewById 的返回值是 View

    36810

    JVM并不是那么重量级

    这是令人羞愧的,真正令人谦卑的。在这个世界上,我感觉自己像一个陌生人,我已经参与了这么长时间。 回到JVM的声明重。 你怎么衡量它? 当你下载JVM时,下载文件的大小就是JDK的大小吗?...当你运行JVM时,它会占用很多资源吗? 这些lib库文件是否消耗了大量的磁盘空间? 这是一种正式的部署吗? 它会让你每天的节奏都慢下来吗?...觉得JVM真的是“太笨重了”可能纯粹是一些墨守成规的人的感觉,而且觉得在前期安装的时候还要花费巨大的成本。你可以拿JDK的~200MB的下载文件与Node或Ruby的15MB的下载文件进行比较。...JVM非常快,它可能是最快的运行时间之一。随着时间的推移,它会变得越来越快。数千名最聪明的工程师正在努力使其变得更好,而在过去的21年里,更是有了更多的贡献。 它有真正的线程,支持多个内核。...我曾经认为JVM是个庞然大物。现在我很感谢之前对它的偏见都没有了,让成千上万的人支持它。 决不要把这篇文章看作是“节点的终结”或“Ruby的终结”的标志。读完这篇文章可以给你带来一个全新的视角。

    1.7K50
    领券