| iOS , Xcode , CoreData , 数据库
CoreData 是苹果官方提供的数据存储框架,其底层实现对 SQLite 进行了封装,提供了对象-关系映射(ORM)功能。 对比其他的数据库或数据库框架,CoreData 也具有一定的优势和劣势。 Ficow 曾经在参与过的项目中使用过 CoreData, Realm 以及 FMDB。个人的主观感受是 Realm 最易用,FMDB 易用性差,CoreData 概念较多。尽管如此,对于 iOS 开发人员来说,CoreData 依然是一个值得学习的框架。
| Swift , iOS , Xcode
Xcode 中的 Configurations 以及 Build Settings 可以很好地让一个项目生成不同环境配置的应用。 在日常的开发工作中,为 App 定制多种配置是非常常见的需求。比如: 1. 测试版本显示测试版的应用名称和图标; 2. 测试版本接入测试版本的后端接口。 Ficow 会通过实例来为您演示配置的过程。另外,文章中还附有示例项目的代码仓库地址。
| iOS , Xcode
还是那一句老话:【工欲善其事,必先利其器】。Xcode 非常强大,如果可以充分地利用它的特性,您的开发效率将大幅提升。 以为我在吹牛?不信您可以先读完这篇文章。 Ficow 根据自己的亲身体验总结和编纂了这篇文章,真心希望本文对您有所帮助。只要您尽快适应了这些操作,您的开发效率一定会有提升!
| 算法&数据结构
在【3. 树、二叉树、二叉搜索树 —— Ficow 陪你学算法和数据结构】中,Ficow 和您分享了自己的学习笔记。本文将深入讲解常用的递归算法,而且文末还附有覃超老师推荐的练习题目。 提到递归,很多朋友都会皱起眉头。毕竟,递归比较抽象,用递归来解决问题更加抽象。 然而,很多企业在面试的时候都会有递归相关的题目。比如,树的面试题解法,一般都是基于递归的。 既然已经知道了这个龙门,那咱们就使劲练习、不断提高,逼一下自己就跳过去了~
在【2. 数组、链表、跳表 —— Ficow 陪你学算法和数据结构】中,Ficow 和您分享了自己的学习笔记。之前学习的链表是一种常见的一维数据结构,但是它的查询时间复杂度较高,所以科学家发明了跳表来解决这个问题。 在利用跳表进行加速的过程中,核心的思想就是【升维】。接下来,让我们开始学习常见的二维数据结构:【树】和【图】。
在【1. 复杂度分析(时间、空间复杂度)—— Ficow 陪你学算法和数据结构】中,Ficow 和您分享了自己的学习笔记。接下来,让我们开始学习具体的数据结构。 【数组】、【链表】是开发工作中使用最频繁的数据结构。【跳表】的使用频率略低,但是也值得我们去学习其原理以及设计思路。在本节中,主要会学到在构造算法时最常用的两种解决问题的方式:【升维】和【空间换时间】。
| Swift , 算法&数据结构
作为一名合格的程序员,我们必须要懂得如何写出高质量的代码。然而,代码的核心其实就是算法和数据结构。在将核心能力提升到一个水平之后,我们就比较容易理解和掌握代码重构、设计模式等看似更高级的内容。 而且,知名的互联网企业(微软、谷歌、阿里、腾讯等)在招人的时候必考的项目就是算法与数据结构。所以,想要在软件开发的路上狂奔,您首先就要提高自己的算法和数据结构基础能力。 我强烈建议您学习覃超老师在【极客时间】上开设的【算法训练营体验课】,我已经亲身学习过并推荐给了朋友、同事们。
【工欲善其事,必先利其器!】虽然 Xcode 是一个比较庞大的集成开发环境(Integrated Development Environment),我们经常要用到的功能其实不多。所以,提高我们使用常用功能的熟练度,就可以有效地帮助我们提高日常的工作效率。 作为一名 iOS 开发者,Ficow 热衷于使用 Xcode 快捷键来提高工作效率。Ficow 将通过本文和您分享个人常用的 Xcode 高频操作以及快捷键,希望对您有所帮助。
| Docker , Go
通常大家构建 Go 镜像都在 Dockerfile 中使用了【FROM golang:latest】命令,然而这样构建出来的镜像【非常大】!!! 如果您希望【缩小镜像的体积】,那么 scratch 镜像会是一个不错的选择。因为,scratch 镜像是一个空镜像! 接下来,Ficow 就根据自己的实际经验来讲解如何【基于 scratch 镜像构建一个最小的 Go 应用镜像】。
| Swift , iOS
在 iOS 开发中实现发送邮件的需求是比较简单的,本文主要提供两种方案: 通过 MessageUI 中提供的 【MFMailComposeViewController】 来在应用内显示邮件编辑页面; 通过 【mailto】 协议来启动 iOS 系统中的邮件应用; Ficow 建议您使用第一种方案,因为它可以让您很轻易地自定义邮件的内容,比如:邮件的主题、收件人列表、抄送收件人列表、正文文本内容、正文附件等等。