PPPan's 平凡之路

做一个互联网内容的贡献者

PPPan's 平凡之路 一个技术博客覆盖范围包括 iOS Objecticve-C Swift Xcode 等


  1. 《艾尔登法环地图》App 技术服务支持

    这里是《艾尔登法环地图》App 技术服务支持页面如果您在使用艾尔登法环地图 App 的过程中遇到任何问题,请联系: 邮箱:shengpann@163.com微信:yuyuan_psQQ群:720236011 …

    继续阅读

  2. iOS 本地化省力小技巧

    我们造不出巴别塔,却可以通过本地化让不同语言环境的人舒坦地用上我们的 App。 但提起本地化,开发者们最直观的感受一定是一堆细碎繁琐的本地化文件字符串文件,以及永远也想不起来的Key。 1234567891011// Chinese Simplified"zelda.btn.confirm" = "确定";"zelda.btn.cancel" = "取消";"zelda.dish.backed. …

    继续阅读

  3. 全站 HTTPS 边做边记

    没错,这是一篇可以 Step by Step 跟着做的操作指南。 keyword: Let’s Encrypt, Ubuntu 14.04, Nginx 前言关于 HTTPS 可以先看看鹅厂的这篇文章涨涨姿势。 我们知道 HTTPS 需要一个 CA 来解决信息抵赖和中间人攻击的隐患。Let’s Encrypt 就是一个 CA。它的优势在于免费、被绝大多数浏览器认可、高度自动化。这么好的一个 CA …

    继续阅读

  4. iOS 持续集成系列 - 自动化 Code Review

    iOS 持续集成 - 开篇 iOS 持续集成 - 自动化 Code Review [iOS 持续集成 - 自动化单元测试] [iOS 持续集成 - 自动化打包与分发] 为了保证代码质量,Code Review 是非常重要的一环。细到*的位置是否正确,大到代码的结构是否符合了软件开发的一些基本原则,都在这项工作的范围内。 受限于现实情况,大多数团队没有足够的时间进行 Code Review,那么 …

    继续阅读

  5. 深挖 Swift 中的字符串可比性

    在写 《从 Swift 中的 max(_:_:) 看设计哲学》的过程中,产生了这样一个想法: 既然 max(_:_:) 可以用来对比任何 Comparable ,而 String 是符合 Comparable 的,那么用它来比较两个字符串”谁大谁小”会怎么样呢? 由于实验结果的捉摸不定,于是产生了一探究竟的念头。过程很有趣,结果让人感叹计算机科学之深厚。同时也是典型的 How I Resolve …

    继续阅读

  6. 从 Swift 中的 max(_:_:) 看设计哲学

    由于 Swift 不再支持宏了,于是 MAX,MIN 等一些列常用宏都被重写为 Swift 函数。我们来看看函数的定义: 12@warn_unused_resultpublic func max<T : Comparable>(x: T, _ y: T) -> T warn_unused_result先说说 @warn_unused_result 注解。 顾名思义,被该注解标记的 …

    继续阅读

  7. iOS 持续集成系列 - 开篇

    iOS 持续集成 - 开篇 iOS 持续集成 - 自动化 Code Review [iOS 持续集成 - 自动化单元测试] [iOS 持续集成 - 自动化打包与分发] 前言iOS 开发在经过这几年的野蛮生长之后,慢慢地趋于稳定。无论开发语言是 Objective-C 还是 Swift,工程类型是 Hybird 还是原生,开发思想是 OOP 还是函数式,随着项目逐渐变大都在面临相同的问题: 测试 …

    继续阅读

  8. 微信 URL Schemes

    DEPRECATED2016年09月18日更新: 在 微信 6.3.25 版本中,所有外部唤起 URL 的方式均无法打开对应页面。未来这些 url 都只能在微信内部的浏览器使用了。 年初的动态化分享热潮里,基本上都提到了 URL 跳转,天猫称为统跳协议,蘑菇街称为 URL 路由。其实很多大厂都默默地做了一套 URL 跳转机制,比如说 – 微信。 本文整理了部分微信 URL Schemes,经过本 …

    继续阅读

  9. 让你的应用更好地利用 3D Touch - WWDC 2016 Session 228 笔记

    我们回首 iPhone 的历程,不禁感叹它是如何不断改变我们对手机的认知的。从触屏改变手机的定义开始,距离传感器、光线传感器,到三轴陀螺仪、GPS、运动传感器、再到指纹。这些功能一步步地拓展 iPhone 的能力,不断地改变着我们的生活。 iPhone 6s 再次增加了新的功能 – 3D Touch。 它为iOS 设备的操作增加了另一个维度的能力,为用户提供了另一个操作体验,甚至是改变了用户的操作 …

    继续阅读

  10. 电池电量与低电量模式

    优步最近公布的数据显示,当电池快没电的时候,人们更愿意接受溢价。同时,优步也表明他们并没有利用电量相关的数据来设置溢价规则。换句话说,我们在开发App的时候,可以通过电池电量来”提升用户体验”。 电池状态与电量UIDevice 中有三个电池相关的属性: 123@property(nonatomic,getter=isBatteryMonitoringEnabled) BOOL batteryMon …

    继续阅读