Apple In App Purchase(IAP) 实战

之前和 Flutter 开发的同学整了很久的 IAP,坑实在是太多了,所以需要一条条的来解释,如果有和我一样的倒霉鬼,希望通过这一篇集合的文章让大家在开发阶段更加顺利。

注:本文不会涉及 Native 的开发怎么写,因为我不会写 Native,也并不负责移动端的开发。

开发之前

在开发之前,App 的前情提要配置流程请见官方文档:App 内购买项目配置流程

在配置完成之后开发就可以开始了,但是在开发之前,你可能想要知道一些 IAP 的计费规则:

- 阅读剩余部分 -

使用配置进行你的开发

在开发中,我很经常的将很多功能设置成可配置的,这里不仅仅说的是应急的开关,而是包括了一些文本在内的信息。这篇文章也就是说说为什么我要这么做,以及这么做到底有什么好处。

从最简单的说起:配置开关

最简单,大家也最常用的是在后台配置一些开关,这些开关不用发布,只需要轻轻一点就能切换某些功能的状态,这也是大家通常会做的「基于配置」的开发的处理,毕竟发版的时间实在太漫长了,因此大部分后端都有有意识的将一些开关放在后台而不是开发写的配置文件中。

- 阅读剩余部分 -

GraphQL 从入门到入土

在入职之后用了很久的 GraphQL,之前总是得其形而不得其神,在这次 API 设计失误之后,我总算领悟到了一点 GraphQL 的设计思想,所以来随便的总结一下。

GraphQL 到底是什么

GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。
——官方说明

- 阅读剩余部分 -

Dark Mode 开发与 Debug 指南

Dark Mode 的判断

media 中有一个属性 prefers-color-scheme ,用 matchMedia() 来检测 (prefers-color-scheme: dark) 是否存在就可以了。

Dark Mode Debug

截止2019年11月15日,目前经过测试可以直接 Debug DarkMode 的浏览器(以最新版为准):

  • Safari
  • Chrome 金丝雀版

其中 Firefox 可以通过安装插件实现 Dark Mode Debug(兼容性不是很好)。

- 阅读剩余部分 -

从 Django Allauth 中进行登录改造小结

大概来介绍一下 Django Allauth 改造的期间遇到的一些问题和改造方法,在此之前我只想说——Django Allauth 是屑。

为什么我说 Django Allauth 是屑

入职之初我就接到了一些第三方登录的任务,然而 Django Allauth 将内部封装的太好,暴露的 API 不足,更新又慢,issue 和 PR 很少有人处理,当你需要扩展时,很多情况下你只能用一些 hack 的手段去解决问题,非常蛋疼,所以当时就决定慢慢的切到自己的一套 Auth 体系中。

- 阅读剩余部分 -

知识迁移——工程师多向发展的优势

From:「GDG DevFest 2019」
这是由演讲 PPT 汇集而成的内容,可能与演讲内容有所差异,并非演讲稿,望悉知。

知识迁移?

首先得提出一个问题,到底什么是知识迁移,在 wiki 上有这样一段解释。

在一个地方所学的技能、知识与态度对另一个学习的影响,它可以加快学习的速度。
——艾尔德

- 阅读剩余部分 -

如何写一个 certbot 的插件

目前白嫖 HTTPS 的主流途径依旧是 LetsEncrpyt,certbot 似乎是官方主要推荐的一个申请方式,关于用途和用法,这里不多介绍,总之,是一个品种齐全,种类多样的 cli 工具:https://certbot.eff.org/

这里由于我的 NAS 希望签 HTTPS,但是电信开外网是不允许开 80 和 443 端口的,所以无法用 HTTP 协议去校验,只能选择 DNS,如果没有 DNS 插件,那么只能用 Manual 的方式,非常麻烦。

于是,我开始了面向源代码编程——

- 阅读剩余部分 -