丁香园 8.0 全新改版升级,设计背后的故事

丁香园 App 是丁香园面向医生、医学生与医疗行业从业者推出的一款综合性应用。专注于通过病例讨论、话题互动的形式开展深度的社区交流。从专业技能、医学考试、职称晋升等方面真正帮助用户成长。 发现问题 在丁香园 APP 多年来不断的更新迭代中,积累很多亟待解决的问题,本次升级产品经理、交互设计师、视觉设计师一起对目前的产品存在的问题进行了整理归纳: 界面内容显示过于密集与混杂、重点不够突出。 UI 整体风格过时而且不规范、主色暗沉、辅色繁多,没有统一的设计语言。 App 丁香园

掉进这6个陷阱,可能会毁了你的原型设计!

编者按:Nick Babich 这两年文章产量比以前低了不少,不过素质和出发点倒是一直非常发人深省。在文章结尾的 One More Thing 当中,我加入了一些关于乔布斯早期对于原型设计的一些「激进」的看法,也许这是原型设计的未来的一个方向,也说不定。 很难想象,如果没有原型设计,如今的数字产品设计流程会变成什么样。原型的存在,让产品团队在制作和开发过程中更加直观,就像那句话说的:展示,而非表述。 现如今,许多产品团队借助原型来测试想法,甚至销售产品。不过,原型设计本身并非

设计师应该知道的 iOS 设备常见差异化设计

最近入手了一台二手 iPad mini 2,体验了一些比较热门的 iOS 应用在 iPad 端的交互设计,发现一些应用为了保证 iPad 端的用户体验,在应用框架层的设计上与 iPhone 端存在一定的差异化。 首先,手持式设备的导航及页面布局设计除了要实现产品目标之外,还需要考虑用户的使用场景和最舒适的握持方式。与 iPhone 不同的是,由于屏幕和设备尺寸较大,iPad 会有3种握持方式:双手、单手、工具握持(比如支架),考虑到设备重量和使用场景,其中最为常见的是双手握持

4000块的薪水已经三年没涨了,我现在慌的一批…

加班到凌晨,大早上又接到电话,被告知稿子没过,需求重做,问我现在什么想法?没有!!有的只是心累。打开素材网站,硬着头皮强出稿。 一项统计表示,加班已经是成为设计师的家常便饭,8点下班?这也太早了吧! 需求多,任务重、要求高是眼下大部分设计师面临的现状,还靠生搬硬套、临阵磨刀的方式来做设计,加班就在所难免。没有C4D、插画、合成等技能都没资格跳槽更别说要求涨工资。 越来越多的设计师接触的设计需求越来越多元化,很多UI设计师的工作范畴不仅仅是完成ICON和APP界面,很多登陆页

设计水平没有大的进步,原来是这9个方面做得不好…

让设计细节更高级的9个实用小技巧。 一、大小区分 通过调整文字和数字的大小关系,可以改变用户接收的信息,使得重点信息更加容易传达。 二、文字间距 文字之间的间距设置同样具有重要的意义,当你想要营造紧张感时,需要缩小文字的间距,反之,想要体现轻松和舒适感,需要适当地拉大文字间距。 三、文字的可读性 在设计过程中,我们首先需要保证文字的可读性,最常见的方法就是通过营造明度差来保证文字的可识别性。 四、描边 当你想利用照片来充当背景时,文字经常会被淹没,造成识别困难,在这种情

如何用canvas实现在线签名?

随着计算机和网络技术的飞速发展,在线签名技术越来越多的被应用在无纸化办公中,这种直观便利的操作不仅可以大幅提升办公效率,而且使用数字化存储方式,避开了传统的纸质签字存储查阅困难等问题。在我们在日常生活中,已经有很多场景使用在线签名技术,例如:pos机刷卡签字、快递签收签字、银行或机关单位业务办理签字等。最近在做公司的业务办理需求,里面也涉及到在线签名,我们采用的 Canvas 技术实现,接下来,让我们来聊聊如何使用 Canvas 实现在线签名吧! 什么是 Canvas? Ca

1个产品一堆卖点,你如何挖出真正能打动用户的关键点?

相信很多人应该都遇见过这种情况: 公司要上新品了,马上要做营销推广,然后项目负责人把你叫过去,跟你说了一通这个新品上线如何如何的重要,老板是如何如何重视,一定要把营销、策划、文案这些给做好。 然后当你问及新品的详细介绍以及卖点的时候,他会自信满满的跟你高谈阔论一番,云里雾里地,反正你只需要记住:这个新品很牛。 这个时候,你已经有点蒙圈了,然后他会给你一堆文档。没错,这就是产品介绍,整篇整篇的文字,反正你也看不出什么重点,感觉遍地都是卖点? 接着,果不其然,他们会告

MySQL · RocksDB · 写入逻辑的实现

简介 在RocksDB中,每次写入它都会先写WAL,然后再写入MemTable,这次我们就来分析这两个逻辑具体是如何实现的. 首先需要明确的是在RocksDB中,WAL的写入是单线程顺序串行写入的,而MemTable则是可以并发多线程写入的。 而在RocksDB 5.5中引进了一个选项enable_pipelined_write,这个选项的目的就是将WAL和MemTable的写入pipeline化, 也就是说当一个线程写完毕WAL之后,此时在WAL的write队列中等待的其