#Hello Edgerunners, welcome to the Night-City.

Welcome!

iOS : 代码混淆那些事儿

和朋友聊天的时候发现大家对代码混淆很感兴趣,但也似乎很多人并不知道该做些什么,怎样做,所以今天趁着项目告一段落的空,分享下我自己对代码混淆的认识。 写过 Java 的朋友应该对 ProGuard 不陌生,它是一个免费的 Java 类文件压缩、优化、混肴工具。ProGuard 的原理是通过移除无用的类和字段、方法、属性使字节码得到优化,并且用简短无意义的标识符来重新命名类、字段以及方法。 那么,iOS 说到底也是一样的,除了可以用 C 语言编写敏感部分的代码外,我们还有其他一些选择: Macro 由于 Obj-C 支持 macro ,于是 #define 就成了我们着眼的第一个地方。 最简单也是...

iOS : Debug 与 NSLog [Objective-C]

偶然看到别人代码里的 NSLog,忽然想到或许可以写一片简短的博客,能帮到一些朋友也说不定。 大家都知道日志输出在开发测试过程中的重要性,但发布应用后这些无用的打印都在白白的浪费着资源,那么,让日志随着运行环境的不同自动开关就成了一个不错的选择。 #ifdef DEBUG #define NSLog(fmt, ...) NSLog((@"\n* FileName:%s\n" "* FunctionName:%s\n" "* FunctionPretty:%s\n" "* LineNumber:%d\n* " fmt...

iOS : 二维码生成

最近发过几个关于二维码的内容( 相机扫描二维码,识别图片二维码,趁热打铁,再来一篇二维码生成的博文吧。 看过前面文章的小伙伴肯定猜到了,这里还是使用 CI 系列。是的,在 iOS 7 之后我们可以使用苹果提供的 CIFilter 来实现二维码的生成。 + (CIImage *)imageFromString:(NSString *)string { CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"]; [filter setValue:@"H" forKey:...

Integrating Xcode Bots and Crashlytics Beta

If you have already setup Xcode Bots for your iOS project, you can step up your Continuos Integration game even more by hooking-up Xcode Bots to Crashlytics Beta distribution. This guide assumes you have a Crashlytics account and that already have a working Bot outputting signed IPA files. This mea...

iOS : 二维码扫描之图片识别

接上文,好久之前试了试二维码扫描功能,由于苹果实现了基本的检测,我们要做的其实就只是实现一个摄像机功能。最近公司项目需要从图片识别二维码,于是趁这个机会把新的代码贴上来,正如我所说,依然不需要什么智商。 #pragma mark - 打开相册 - (void)openPhotoAlbum { PSImagePickerViewController *picker = [[PSImagePickerViewController alloc] init]; [picker setShowUpperLimit:NSIntegerMax]; [picker setSelectU...

Android : adb 与应用启动时间

尽管大家都知道 adb 获取应用启动时间的方法,但似乎很多人并不清楚获取的值代表着什么。 对于应用来说,指令是类似这样的: adb shell am start -w packageName/MainActivity 在 Android 5.0 之前,你会获得两个值 —— ThisTime,TotalTime,而 5.0 开始增加了一个值,叫做 WaitTime。 对于这三个值,简单来说: ThisTime : 表示连续启动的 Activity 中最后一个的启动耗时。 TotalTime : 表示启动耗时,包含了启动新的进程与和 Activity 的耗时。换句话说,就是你的应用自身...

Android: ScaleType

应该是个很常用的属性, 总结一下。 用法 ImageView.ScaleType.CENTER|android:scaleType="center" 以原图的几何中心点和 ImagView 的几何中心点为基准,按图片的原来 size 居中显示, 不缩放, 当图片长/宽超过 View 的长/宽, 则截取图片的居中部分显示 ImageView 的 size。 当图片小于 View 的长宽时, 只显示图片的 size, 不剪裁。 ImageView.ScaleType.CENTER_CROP|android:scaleType="centerCrop" 以原图的几何中心点和 ImagView 的几何...

iOS : 二维码扫描

扫二维码在目前的国内可谓是十分流行,今天有朋友问我二维码扫描怎么做,其实这些功能苹果在 AVFoundtion 中已经实现,对于一般的需求都可以满足。 那么,要实现一个二维码扫描功能,首先需要引入 AVFoundtion.framework,并导入相关头文件: #import <AVFoundation/AVFoundation.h> 接下来,我们都知道扫描二维码是需要相机支持的,于是仿照我之前关于自定义相机篇章中所提到的,要实现一个相机功能。 @property (strong, nonatomic) AVCaptureDevice *device; @property (s...

iOS: 保存和读取 GIF

大家都知道iOS的系统相册是不支持 gif 图片预览的。但是, 这并不代表系统相册不能保存和读取 gif 图片。通过 Safari 长按 gif 图片, 选择保存到相册, 这时保存到相册里的图片就是 gif 的, 虽然它不会动。 下面将介绍如何对系统相册进行 gif 的读取与保存。 什么是 UTI iOS系统相册是根据 UTI 来区分资源类型的。那什么是 UTI 呢。UTI字面意思是: Uniform Type Identifiers (统一类型标示符) apple 介绍文档: https://developer.apple.com/library/ios/documentation/Mis...

100 个 iOS 开发/设计面试题,你将如何作答

常见问题 你昨天/这周学习了什么? 你为什么热衷于软件开发? 你对哪一种控制系统比较熟悉? 是否参与过GitHub项目? 是否参与过GitHub或其他同类型网站的iOS开源项目? 请描述一下你的iOS应用开发流程。 是否熟知CocoaPods?它是什么?如何运行的? 请概括一下你对软件授权的理解,及其对软件开发的影响。 请概括一下你在构建iOS应用时的测试过程。iOS应用如何实现对其他语言、日期格式以及货币单位的支持? 请描述一下Instruments及其作用。 关于iOS技术 请解释一下Handoff是什么,并简述它是如何实现iOS、Mac/网...

OS X : 制作系统安装盘

本文主要介绍用终端制作 OS X 安装 U 盘的方法。 下载安装器 首先你需要在 Mac App Store 下载 OS X 系统,下载完成之后你可以在 /Applications 路径下找到它。 准备 U 盘 你需要准备一个容量足够的 U 盘,或者一个大约 6GB 以上的分区。注意,在使用之前请*务必备份这些磁盘或分区中的数据。 开始制作 做好前面的准备工作之后就可以使用终端来制作安装盘了,安装命令的格式为: sudo createinstallmedia路径 --volume U盘路径 --applicationpath 安装器App路径 如果你不知道 createinstallmed...

What's this?

The Night-City version of Hotodogo inspired by Cyberpunk 2077. Not finished yet.

Pinned Message

The Founder and CEO of Infeca Technology.

Developer, Designer, Blogger.

Big fan of Apple, Love of colour.

Feel free to contact me.

反曲点科技创始人和首席执行官。

开发、设计与写作皆为所长。

热爱苹果、钟情色彩。

随时恭候 垂询

Outer Square Inner Square