Tag: 旧版代码

TED 3.0:有效使用旧版iOS代码

我不会经常谈论我为保持家中照明效果所做的工作,但是过去四年来,我花了很大一部分时间在TED for iOS应用程序上工作。 就发布的范围和更改量而言,3.0版本是我们在TED上进行的最大发布。 字幕功能是该应用程序现已以20种新语言本地化。 现在,全世界的用户都可以使用其母语从阿拉伯语到土耳其语来体验TED。 在后台,我们计划将应用程序本地化超过一年。 花了这么长时间? 历史课 适用于iOS的TED于2010年10月首次登陆App Store,并专门针对原始iPad发行。 TED for iOS 1.0旨在在iOS 3.2上运行。 在过去的六年中,随着苹果平台设备和功能的变化,我们一直在此基础上不断发展。 在TED期间(2012年9月至今),我看到了: 视网膜图形,3x图形以及最终的矢量。 AVFoundation使我们轻松制作自己的自定义视频播放器(这是我的第一个TED项目!)。 引入ARC替代了手动保留/释放。 XCTest替代OCTest。 更大或更小的设备,例如iPad mini,iPad Pro,iPhone 5,iPhone 6和iPhone 6 Plus。 Auto Layout和size类可为管理所有这些新设备尺寸带来一些理智。 小部件和自定义共享操作之类的应用程序扩展。 哦,还有个叫Swift的小东西。 TED于2010年交付时,它完全是用Objective-C编写的,旨在在两种设备尺寸上工作:iPhone 3GS和原始iPad。 现在,我们支持从iPhone 4s到12.9“ iPad Pro等iPad的手机。在整个过程中,我们一直在更新相同的应用程序代码库。从未对iOS项目进行过全面的重写,有时可能很诱人。 装修您居住的房子 去年年初,我接任TED的首席开发人员,开始为TED投入更多的时间(TED一直最多是2个兼职开发人员,有时只有1个)。 这样一来,我们就可以将思维方式从维护现有应用程序以保持运转状态(偶尔添加功能)转变为尝试对移动目标更加雄心勃勃。 唯一的问题是我们的许多代码都在显示其年龄。 我列出了高水平的目标,以小规模的方式对应用进行现代化升级,以便我们仍然可以继续发布更新以使TED HQ开心,同时我消除了许多使我彻夜难眠的事情。 这些项目的第一个是对应用程序进行模块化。 由于我们的团队很小,并且有一群相当敬业的用户,他们可以快速升级,因此我们比大多数公司更快地使用最新版本的iOS SDK。 我将最低SDK设置为iOS 8,并开始将应用分解为单独的组件。 我们将其分为单独的动态框架,而不是其中包含所有代码的单个Xcode项目: TED:主要的iOS应用 TEDData:与数据层和业务逻辑相关的类 TEDVideo:我们的自定义视频播放器 TEDCore:在所有不同框架之间使用的共享代码 […]