close
当前位置: 物联网在线 > 技术文库 > ios >

八年iOS老开发的五点心得

本文作者从2009年开始进行iOS系统的开发工作,中间参与开发了无数款应用。本文就是结合他多年心得,总结出的一些能够让应用开发更高效、更有趣且更具可维护性的方法。

1、保持源生

如果代码保持源生平台,就不会真正出错。任何跨平台的技术都可能会增加复杂性,并有可能给项目引入bug。此外,报告的实际节省时间差异也很大。目前,我们只听说过有大型项目因跨平台而感到后悔,而未曾听说过大型项目因保持源生而感到后悔的。还是不要冒险比较好。

2、避免使用外部库

如今使用外部数据库完全没有必要,许多事情通过源生框架就能完成得很好。连接网络就是个很好的案例,我们无需某些炫酷的数据库才能解决,只管基于iOS的联网代码,根据项目需求构建自己的封装就好,这样的做法简单而具有灵活性。这一道理适用于几乎所有我们需要的功能,当然在一些实际案例中,我们不得已必须使用到外部数据库。比如想要在应用中嵌入谷歌地图,或者Intercom对讲机,那也是可以接受的。

3、不要使用软件包管理器(package manager)

既然我们不应当使用那么多外部数据库,也就无需软件包管理器了。只管将个别的外部数据库加入项目,然后借助专用工具来管理,这样更节省时间。

4、在代码中写入布局,不要采用Storyboard

Storyboard可以帮助初学者快速上手,但如果需要一些合理的动态布局的话,无论如何都要在代码中写入相关的逻辑,那么,干嘛不在一开始就这么做呢?我曾经见过许多项目中都有硕大的Storyboard,其视图控制器中空无一物。更不要说自动布局了——这些只会给简单易写的内容增加复杂性。实际上,来自笔者的建议是:将所有布局逻辑写入代码,丢掉Storyboard和自动布局。简单,又具有极度的灵活性。至于具体做法,笔者有 另一篇文章 可以借鉴。

5、使用Core Data

新上手iOS开发的程序员很少使用Core Data,它很复杂,要入手就需要一大堆的样板代码,而且乍看没什么吸引力。刚开始iOS开发的头一年,笔者也花了一些时间进行深入研究,结果以失败告终。之后读到了 这篇文章 ,于是决定再花些时间来研究。最后,一切清晰起来,使用Core Data的确是在iOS中处理数据的最佳办法,它非常强大,能够帮助开发者解决一些非常困难的问题,比如几乎每个应用都会出现的持久性问题以及传播数据变化的问题。诚意推荐Core Data。

以上这些建议有助于开发者创建出一个可以存续数年,应对不同iOS版本的可维护项目。请保持简单。

https://hackernoon.com/5-key-learnings-after-8-years-of-ios-development-7190d8a01d09


(责任编辑:ioter)

用户喜欢...

iOS开发笔记 - 仿京东的加入购物车动画

请叫我死肥宅 之前APP里的加入购物车动画是最简单的UIView动画(一句代码那种),这几天正好有时间所以就跟产品那边确认优化了一下。虽然产品嘴上说让我自由发挥,但我相信没处理好肯...


iOS 开发周报:苹果新 AirPods 可能会成为健身追踪器、Swift 中的指针操作

苹果收购德国眼动追踪技术公司 SMI:苹果公司确认收购德国眼动追踪公司 SensoMotoric Instruments(简称 SMI )。这是一家成立于 1991 年的老牌技术公司,提供软硬件两方面的眼动追踪技术,该技...


33 款主宰 2017 iOS 开发的开源库

你好, iOS 开发者们 !我的名字是 Pawel,是一名 iOS 独立开发者,也是 Enter Universe 的作者。 大概在两年前,我发布了 。这篇文章是我的一个最佳纪录(用户好评数): 因为有 15.5万人 关注过...


iOS开发者的机器学习

对于各种热门的机器学习、深度学习课程,你一定了解过不少了。但上课之后,如何把学出来的这些新方法用在你的工作项目?如何让你的移动应用也能具备机器学习、深度学习的能力? 具...


iOS开发者的Weex伪最佳实践指北

引子 这篇文章是笔者近期关于Weex在iOS端的一些研究和实践心得,和大家一起分享分享,也算是对学习成果的总结。文章里面提到的做法也许不是最佳实践,也许里面的方法称不算是一份标准...


iOS 开发之模糊效果的五种实现

在iOS开发中我们经常会用到模糊效果使我们的界面更加美观,而iOS本身也提供了几种达到模糊效果的API,如:Core Image,使用Accelerate.Framework中的vImage API,在iOS 7之前系统的类提供UIToolbar,在...


iOS 开发中,怎样用好 Notifications?

前言 在 iOS 开发中,有这样一个场景:某件重要的事情必须立刻让用户知道,甚至不惜以打断用户当前操作为代价来强调这份重要性。这就是通知(Notifiations)。目前常用的框架为 UserNotifi...


iOS 开发周报:苹果正在重新设计 Mac Pro、Weex 布局引擎(Yoga)探究

苹果正在重新设计 Mac Pro :苹果正在加班加点开发一款 完全重新思考 的 Mac Pro,采用模块化设计,可以为高端 CPU 和 GPU 提供空间,而且未来的升级也将更加方便。苹果还在开发自有品牌的专...


Tweak 开发 - CCRevealLoader

Cydia 市场里有一款叫 Reveal Loader 的插件,可以动态的将 Reveal 注入到任何 App 里。有了这个插件,再配合使用 Reveal 这个 macOS App,能够非常方便地分析别人的 iOS App 的视图布局。但是这个插件...


iOS开发之NSURLSessionUploadTask上传数据

苹果在 iOS9 之后已经废弃了 NSURLConnection , NSURLSession 成为其替代者,其基本知识网上很多,主要可以从 NSURLSessionDataTask 、 NSURLSessionDownloadTask 和 NSURLSessionUploadTask 入手学习。最近在写案例时...