2

我在programmers.stackexchange.com 上阅读了几个问题,以确定这个问题是否更适合在那里提出。我认为这个问题属于 SO,但我不完全确定。

我对 Objective-C 和 UIKit 有基本的了解。几年前,我读过 Aaron Hillegass 的大部分Cocoa Programming for OS X(第 2 版);这就是我大部分知识的来源。其余的来自各种站点、SO 问题、SDK 文档和小型个人项目(OS X 和 iOS)。

我正在为我工​​作的大学启动一个 iOS(特别是 iPhone)项目。此应用程序将具有具有不同功能的不同部分。“部分”的一些示例是:虚拟学生证、当前学期的课程表(针对用户)、校园地图等。我希望能够在应用程序的未来版本中轻松添加新部分。因此,我想设计项目,使一个部分独立于主项目的代码组(尽可能)。

除了能够通过创建新模块来添加新功能之外,我还希望该项目能够被更多的开发人员使用,而不仅仅是我自己。也就是说,我希望团队中的其他开发人员能够按照“最佳实践”为应用程序开发新模块。

目前,我的项目基于 a UITabBarController,我的“模块”是 new UIViewControllers 和 NIB。我觉得这可能不是建立我的项目的最佳方式。因此我的问题是:

对于我所描述的这样一个项目,有哪些最佳实践?

4

2 回答 2

5

我认为你在正确的轨道上。UIViewControllers 是打破这种情况的好方法。

当你有很多选项时,UITabBarControllers 通常会很尴尬;带有可能性表格视图的欢迎屏幕可能更具可扩展性。例如,请参阅 Facebook 的左侧面板或内置的设置应用程序。

我通常发现在 iOS 项目中重用的难点不是视图控制器(它们通常是隔离良好的),而是底层基础设施,例如网络请求、数据存储、帐户管理等。你可能想从一个现有的框架(比如 Parse 或 RestKit),或者至少看看它们是如何分解的。

关于良好的、可重用的 iOS 设计主题,您可能会发现Matt Gemmell 关于 API 设计的文章很有帮助,如果不是您正在寻找的内容。

于 2012-08-25T00:27:49.763 回答
2
  • 建立编码风格和资源位置的约定。
  • 开发静态库。
  • 如果您的静态库需要自己的资源(这可能是一种必要的痛苦),您可能希望为您的资源使用捆绑包以最大程度地减少资源冲突。
  • 集中您的构建配置文件,而不是尝试在每个项目中定义每个设置(使用 xcconfigs)。

然后您可以将这些库配置为您的应用程序项目中的依赖项,并适当地构建、链接和复制。

一个重要的注意事项:在这些情况下(如果适用),我经常对 C 和 C++ 符号犯错,因为 ObjC 符号(以及它们引用的内容)不能被​​剥离。这可以减少很多不使用的“二元脂肪”。因此,您的“核心”库和主要处理在其他库(例如系统库)中声明的符号的库可能在 C 和 C++ 中,而您的更高级别的抽象和派生类型可能在 ObjC 中。

于 2012-08-25T01:21:03.567 回答