PPPan's 平凡之路

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

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


  1. Storyboard的爱与恨(上)

    尽管现在已经是Apple将Storyboard整合进Xcode中的第四个年头,大家对于Storyboard的评价仍然褒贬不一。有早期就选择转向Storyboard用于UI开发的国内业界领头人物,也有创建项目就立马删除Storyboard的大牛。我经历过纯代码布局,同时也在多个多人合作项目中使用Storyboard开发界面。在初期绕过各种坑后,Storyboard将会是快速构建UI界面的好帮手,特别 …

    继续阅读

  2. App Store审核指南-中文版

    出处本文原文来自Cocoachina.本文对其整理归纳,重点标注出开发者们不熟悉且容易触碰的雷区,并做了页内跳转的制作和格式的美化,以方便阅读和查询。 英文版文档原文为App Store Review Guidelines 前言感谢您付出宝贵的才华与时间来开发iOS应用程程序。从职业与报酬的角度而言,这对于成千上万的开发员来说一直都是一项值得投入的事业,我们希望帮助您加入这个成功的组织。我们发布了 …

    继续阅读

  3. 利用HeaderDoc自动生成API文档

    最近在为公司写框架和组件库。大家都建议在文档上需要更加完善一些。于是在思考如何规范地完善文档?面向非技术型的boss们的说明性文档,手工写即可。面向组件使用者的文档呢?一方面,要保证注释的完整性,以保证其他同事在使用的时候只看注释即可。另一方面又需要要一份文本文档,以便随时查阅。如何同时做到这两点? 关于文档,业界有一些成熟的解决方案。例如评价颇高的AppleDoc,还有从Xcode 5,iOS7 …

    继续阅读

  4. [译] iOS 9 开发小技巧

    ###前言“小黄鸭”法不仅适用于debug,也适用于学习新知识。表达是最好的吸收。本文原文发表在realm.io上。我翻译并整理成此文。希望可以为国内的iOS朋友提供一些资料。 ###LayoutGuide 在iOS9.0 和 OS X10.11中,分别有两个新的类:UILayoutGuide 和 NSLayoutGuide。他们可以作为一种类似View的对象,参与到AutoLayout的布局约束 …

    继续阅读

  5. 谈谈组件封装的思路和实现--PSCarouselView

    前两天面试了一个应聘者,他的演示项目里有广告轮播功能。恰好之前我封装过一个实现了此功能的控件,于是就顺着他广告轮播的实现一直往下聊,从需求的抽象一直聊到各种实现的细节和需要考虑的问题等等。组件的封装是开发中比较有趣的一件事。今天我们就拿轮播控件举例,聊聊组件的封装。 授人予渔先要授人予鱼。先给出鱼(PSCarouselView),再慢慢讲渔。 ##分析需求一般来说,我们在封装组件的时候,会先思考以 …

    继续阅读

  6. 漫谈iOS中的MVC

    ###前言 做过一段iOS开发的开发者们对MVC肯定不陌生。这是Apple推荐的开发iOS应用程序的标准设计模式。 我们从一张图开始,谈谈MVC。 ###MVC传统的MVC如上图。将不同的对象划分到三个阵营Model、View、Controller。View负责绘图、接收用户的交互,并将交互以Blind的方式传达到Controller。Controller则负责处理相对应的业务逻辑,并告诉Mode …

    继续阅读

  7. iOS项目架构 - 统一行为

    “我们虽然在构造软件,但软件也会重新塑造我们”。在写iOS项目架构-模块化的时候,我仍然觉得我所构建的统一行为方式还算不错,可以写出来与大家探讨探讨。昨日将应用发布的闲暇之余阅读了objc中国的这篇文章,令我明白尚有更优的解决方案。本文从实际的例子出发,发表一下我的拙见,用以和上文做对照,权当抛砖引玉。 ###BaseViewController ####例子1我们在构建一个App的时候,会有许多 …

    继续阅读

  8. iOS项目架构 - 规范

    记得刚工作的时候,我的Mentor带我参加某银行业务系统研发成果交流分享会。会议让我印象很深的一点,是关于规范。发言人在说规范的时候,举了他见过的这么一个例子: <div class="div1" ...> <div class="div2" ...> <div class="div3" ...& …

    继续阅读

  9. iOS项目架构 - 模块化

    ###当我们谈论iOS架构的时候我们在谈论什么 模块化 规范化 统一行为 本文主要就以上模块化,以网络请求模块的抽取为例稍作讨论。 ###模块化模块化的目的是实现解耦,提升模块、组件的复用性。一个很简单的例子,App需要与服务器交换数据,最差的做法,是把网络请求、回调、业务处理、界面操作全部写在ViewController里。如果把网络请求抽取出来,建一个Webservice类,仅负责最基本的 …

    继续阅读

  10. iOS的多Target应用

    最近刚完成了一个多Target的项目,做了许多思考与选择,现写下心得总结,权当抛砖引玉。 ####项目背景本项目是一个适用于正在学车人群的预约学车平台。分为学生端和教练端。学生端主功能为预约学车,教练端主功能为排课。 什么时候选用多Target多target的选用,意在实现最大化重用代码。其经典情景是有多个类似的App,界面设计与业务逻辑有许多相似之处,仅仅有少数不同的业务逻辑,只需要在打包时将不 …

    继续阅读