longlong Blog

我为我心

登录打通SDK设计

"如何设计SDK"

登录打通SDK设计 JDCAuthorizationSDK包含了日志、弹窗、网络请求、web、接口、京东授权六大部分。以完成京东授权登录打通的工作 一、日志系统 日志系统使用的是裁剪后的CocoaLumberjack框架。 原CocoaLumberjack框架类图如下。 DDAbstractLogger的类簇,是管理日志输出到哪里。分别是 Xcode console,M...

iOS自动化部署Jenkins

"自动化部署"

iOS自动化部署Jenkins 一、前言 之前写过一个自动化打包的shell脚本,但是老大觉得自动化程度还是不高,建议用Jenkins来搞。所以就研究一下Jenkins的自动化部署。 二、Jenkins安装 安装brew 1 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/insta...

MVC、MVVM模式

"设计模式让开发更简单"

MVC、MVVM模式 经典的MVC模式如下图: 在苹果的设想里MVC View:是xib或者storyboard。负责整个页面上的view(button,lable)以及其布局。 Controller:负责处理点击事件,view页面动态管理,处理数据,网络请求。业务逻辑。 Model:数据模型 优点很明显:层级简单,分工明确,开发快捷,便于掌握。 纯代码实现...

iOS路由技术

"到底应该使用什么路由方案呢"

iOS路由技术 目的 就像一个公司规模大到一定程度,就会组建集团公司,将公司拆分成多个小公司。 系统的复杂性超过一定程度后,就自然而然的的将系统拆分成小的子系统。 Java选择微服务组建模块化,而iOS相应的采用的是组件化。 微服务需要满足高内聚,低耦合和单一职责设计原则。 尽量隔离各个组件间的联系,还需要其能沟通自如.所以需要设计模块间通讯的功能我们一般叫它路由。 路由技术 ...

面向对象

"面向对象如何学习"

面向对象 一、三大特性 1、封装 封装是隐藏对象的属性和实现细节,仅对外提供公共访问方式。 好处 (1)控制访问:提高代码健壮性。 (2)隔离变化:类内部逻辑变化的影响不会扩散。 (3)降低思维负担:信息更少,更容易被理解和修改。 2、继承 继承实现了 IS-A 关系,例如 Cat 和 Animal 就是一种 IS-A 关系,因此 Cat 可以继承自 Animal,...

C语言数组

"最简单的数据结构"

C语言数组 从事开发工作已经五年多了,现在决定复习数据结构与算法。大学里学习算法的时候用的是C语言,现在还是感觉使用C语言来学习算法更顺手一点。 既然决定学习数据结构,就从最简单的开始,即数组。工作中还是经常使用数组的,数组分为可变的与不可变的,不可变的数组要简单很多,没有什么可说的。可变的数组在现代的语言中是直接支持的,但是数组c语言并不支持,需要自己开发。 根据常用的数组功能,...

Ubuntu上安装AndroidStudio

"好难安装"

Ubuntu上安装AndroidStudio 一、下载安装 去安卓开发者中心或安卓论坛下载AndroidStudio。 二、启动Studio 跳过启动页 在安装目录下的bin目录下的idea.properties文件里添加 1 disable.android.first.run=true 在Studio里下载SDK 只要下载最基本的就可以,这个过程会很慢。尽量选择急需的 三、配置g...

ubuntu上常用软件

"记录软件安装"

ubuntu上常用软件 安装的是简化版的ubuntu,只安装了必备的软件。 美化软件gnome-tweak-tool,但由于对计算机的性能有一定影响,决定弃用,简简单单挺好。 输入法之前安装过搜狗,但是需要安装一堆东西,没必要,系统的输入法足够用了。 音乐播放器安传网易音乐,但是不用电脑播放音乐,不需要安装。 一、多媒体播放器 VLC 世界上用户数目第三的的多媒体播放软件,...

Vim配置

"用Vim学习C"

Vim 可以不使用鼠标,完全用键盘操作。 系统资源占用小,打开大文件毫无压力。 键盘命令变成肌肉记忆以后,操作速度极快。 服务器默认都安装 Vi 或 Vim。 一、基础 Vim 的全局配置一般在/etc/vim/vimrc或者/etc/vimrc,对所有用户生效。用户个人的配置在~/.vimrc。 外观设置 1 2 3 4 5 6 7 8 9 10 11 12 13...

协议与Block

"Block是个好东西"

协议与Block 简单的委托实现 假如我们实现一个方法getAllStudent,但是在方法的网络请求部分要类NetWorkTool类里的方法getAllStudentFromNetWork实现. 那么getAllStudent需要方法getAllStudentFromNetWork的返回数据。如果是同步网络请求,直接使用方法返回数据就好,如果是异步线程,就只能使用方法调用来返回数据来。...