11 魔都三帅

尚未进行身份认证

大帅 - MarkZhai | 主攻领域Android, JavaScript,Java,Node | 曾任职Intel,Google香港,腾讯,阿里 | 主页: http://zhaiyifan.cn | GitHub: http://github.com/markzhai | --- 二帅 - Dim GsonFormat作者 | 曾任职小红书,目前在饿了么 | --- 三帅 - 泥阿布 曾任职穿衣助手,目前跟大帅一起在创业 |

等级
TA的排名 3w+

PWA 渐进式实践 (3) - 用户体验 & 性能

为了让我们的网站能达到更高的评分(咦,为什么变成刷分了),我们最后需要进行用户体验和性能的优化。

2017-02-06 12:00:41

PWA 渐进式实践 (2) - Service Worker

通过完善 Service Worker,我们的评分已经嗖嗖嗖上了80,达到了83分。

2017-02-06 11:58:36

PWA 渐进式实践 (1) - Lighthouse in Action

本篇中我们大致看到了哪些问题导致了我们的 webapp 的 PWA 评分不够高,下一次,我们会开始逐个开刀,解决这些问题。对本话题感兴趣的朋友,也可以使用 Lighthouse 插件,对自家的网站或者其他网站来评评分,看看做得有多好(其实我们的**66分**真的已经挺高了)。

2017-02-06 11:57:53

从零开始的Android新项目11 - 组件化实践(1)

我个人一直是比较反感黑科技的,其中首当其冲的就是 插件化 以及 保活。作为一个开发者,除了研究技术,提高自己以外,是否应该考虑些其他东西呢?尤其是我们这些嵌入式系统(客户端)开发者,在依赖、受哺于系统生态下,是不是应该考虑一下,怎么反哺?怎么去更好地维护这个生态环境,而不是一味破坏、消耗它呢?

2017-02-06 11:49:23

记一次 Data Binding 在 library module 中遇到的大坑

使用 Data Binding 也有半年多了,从最初的 setVariable,替换 findViewById,到比较高级的双向绑定,自定义 Adapter、Component,查看源码了解编译、运行流程,也算是小有成果,且没有碰到 Data Binding 本身实现上的问题。然而,最近在一次重构组件化(见 MDCC 上冯森林的《回归初心,从容器化到组件化》)的过程中,碰到了一个比较严重的 BUG。

2017-02-06 11:48:05

React Native 0.31 Bundle 预加载优化

使用 React Native 开发混合应用的过程中,我们在打完 bundle 进 release 包后,会发现第一次进入页面(React 的 Activity)会有一个短暂的白屏过程(在真机上近 1秒,在模拟器上比较快,在 200毫秒 左右),而且在完全退出后再进入,仍然会有这个白屏。仔细查看加载过程(其实猜猜都能知道)后可以发现,这个过程就是在加载我们的 js bundle,通常即便是一个小的

2016-08-22 11:14:29

从零开始的Android新项目10 - React Native & Redux

本篇来讲讲 React Native 和 Redux,和其他一上来就啪啪啪丢上来一堆翻译的东西不同,本文会从简单的例子入手,让大家能快速地明白 React Native 是什么,Redux 和常见的 MVC、MVP 等有什么区别,怎么去组织一个 Redux 架构的 React Native 项目。为避免大家还没入门就放弃,下一篇才会从我们项目中的实践出发,讲讲更复杂的应用场景。

2016-08-18 10:28:20

从什么都不懂开始(四)——Git掌握时空之力

看到这篇标题是不是有种很叼的感觉!?在Git的工作流程中,不仅能往前走,当然也可以后退。不仅能提交 文件,当然也能删除或者修改了。而且你想回到哪个提交节点就回到哪个提交节点, 是不是觉得自己体内的洪荒之力快抑制不住了?别急,容我短话长说,一一道来。在这真正讲这些也需要普及一个概念:工作区和暂存区工作区和暂存区如果有同学对这些概念感觉很懵逼,也没什么关系,不影响你的使用,只要扫一眼接下来的两个标题

2016-07-29 11:15:21

Data Binding Component详解 - 换肤什么的只是它的一个小应用!

上一篇从零开始的Android新项目8 - Data Binding高级篇中,我们提到了使用Component来进行注入,以方便进行测试的功能,有一些朋友说写的不够清楚,还有些疑惑,所以本篇就来详细说说Component。作为例子,我们的实现目标是使用Data Binding Component,让应用全局的TextView的文本都能随时变成test,还能进行全局换肤。

2016-07-27 17:30:57

从什么都不懂开始(三) 实践带你飞之Branch操作

本篇将介绍一下Git中经常需要操作到的东西,以及项目中运用到的场景,会稍微带一点基础知识,笔者觉得阮一峰老师的Git入门讲的非常到位了,我就不班门弄斧了,就讲一下项目中遇到的一些情况。若是Git大牛就可以点击返回或者关闭啦~ 此文多图预警~用流量的童鞋注意哦。Repository介绍在版本管理中,Repository翻译成中文就是仓库的意思,每个提交到本地,或者push到远程服务器的Project

2016-07-27 16:54:55

从什么都不懂开始(二)——创建Project提交到Github需要做什么

背景接上篇,在理解什么是git后,总需要动手操作一下,还是那句话~针对Git很熟练的大牛们可以点击返回或者关闭啦~在看这篇文章之前你得准备好什么?1、注册好的你Gihub账号 2、在setting里的SSH里有你电脑的SSHKey了。 3、准备好你自己需要放在git的文件夹 如果不会以上1、2两点的同学,请自行Google或者Baidu。将你的Project初始化成GitProject以下将以

2016-07-27 16:53:23

从什么都不懂开始(一)——什么是Git

前言背景用了Git蛮久了,也没有怎么系统地学习过,大部分情况也是比较依赖编译器,所以想从头梳理一下Git基础,就想写一篇从没用过Git的人也能看懂,并能入门,再渐渐成长。 一些运用git很熟练的大牛们可以点击返回或关闭啦~简介在了解Git之前,你得先了解什么是版本控制系统,如果不知道什么是版本控制系统,你可以先简单的理解成“可以追踪每次文件修改的系统,如果你某次修改出错,想回退,那么可以回退到某次

2016-07-27 16:52:11

从零创建项目实践

背景大帅MarkZhai的从零系列火遍大江南北,奈何大帅最近要做爸爸了,忙得没有时间出demo,文章中一些细节部分没有上代码,一些粉丝肯定看的不知所措,所以做小弟的就替大哥为大家整理了个demo。接下来会结合大帅的理论为大家讲述一下如何实践,在本文的最后会附上Demo地址。关于本实践的说明本实践是为了方便,调用github的api,抓取了我们moduth组的repo热身运动先要补充一点知识的细节才能

2016-07-27 16:51:11

微信热修复开源库 Tinker imitator 原理篇

参考资料:微信Android热补丁实践演进之路 简单来说,在编译时通过新旧两个Dex生成差异patch.dex。在运行时,将差异patch.dex重新跟原始安装包的旧Dex还原为新的Dex。这个过程可能比较耗费时间与内存,所以我们是单独放在一个后台进程:patch中。为了补丁包尽量的小,微信自研了DexDiff算法,它深度利用Dex的格式来减少差异的大小。它的粒度是Dex格式的每一项,可以充分利

2016-07-27 13:06:24

从零开始的Android新项目9 - 前端用后台接口设计

这回来讲讲后台接口的设计。可能有同学会觉得后台的接口和我们大前端开发有什么关系?试想一下,在碰到一些不合理的接口设计的时候,你们开发是否觉得很别扭——需要为了坑爹的接口写很多脏代码引坑?甚至,这么开发出来的页面,体验也会很差?我们不是说硬无理要求后端接口按照前端业务去封装,而是说为了项目更好地发展,为了用户能有更棒的体验,应该有讨论商量的空间。一些差劲的设计,应该被拒绝。本文使用前端来指代 Andr

2016-07-27 12:39:36

从零开始的Android新项目8 - Data Binding高级篇

承接上篇,本篇继续讲解一些Data Binding更加进阶的内容,包括:列表绑定、自定义属性、双向绑定、表达式链、Lambda表达式、动画、Component注入(测试)等。Demo源码库:DataBindingSample。列表绑定App中经常用到列表展示,Data Binding在列表中一样可以扮演重要的作用,直接绑定数据和事件到每一个列表的item。RecyclerView过去我们往往会使用L

2016-07-27 12:37:56

从零开始的Android新项目7 - Data Binding入门篇

Data Binding自从去年的Google I/O发布到至今,也有近一年的时间了。这一年来,从Beta到如今比较完善的版本,从Android Studio 1.3到如今2.1.2的支持,可以说Data Binding已经是一个可用度较高,也能带来实际生产力提升的技术了。然而事实上,真正使用到Data Binding的公司、项目仍然是比较少的。可能是出于稳定性考虑,亦或是对Data Binding

2016-07-27 12:37:04

从零开始的Android新项目6 - Repository层(下) Realm、缓存、异常处理

承接上篇 从零开始的Android新项目5 - Repository层(上) Retrofit、Repository组装,本文继续介绍Realm、缓存,以及统一的异常处理设计。RealmRealm在移动端数据库中也算是比较有名的一款了,以其跨平台和惊人的速度而闻名。啊,对了,还有文档多。这里要黑的就是文档问题,Realm虽然乍一看文档很多,但是老实说,写的挺乱的。不过总体来说,实践和应用中感觉还不错

2016-07-27 12:36:01

从零开始的Android新项目5 - Repository层(上)

如期而至的Repository篇,内部实现则由Realm、Retrofit,以及内存级LruCache组成。 Repository,顾名思义,即仓库,向上层屏蔽了数据来源和内部实现细节,不需要了解货物来源,只需要拿走就行了。由于篇幅问题,将分为上下两篇,本篇主要介绍Retrofit的应用和Repository层组装,下篇会讲解本地缓存(包括Realm和内存缓存)以及基于异常的设计。Why Repo

2016-07-27 12:17:07

从零开始的Android新项目4 - Dagger2篇

转载请注明出处Dagger - 匕首,顾名思义,比ButterKnife这把黄油刀锋利得多。Square为什么这么有自信地给它取了这个名字,Google又为什么会拿去做了Dagger2呢(不都有Guice和基于其做的RoboGuice了么)?希望本文能讲清楚为什么要用Dagger2,又如何用好Dagger2。本文会从Dagger2的起源开始,途径其初衷、使用场景、依赖图,最后介绍一下我在项目中的具

2016-07-27 12:12:49

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!