Xcode - 项目目录结构的搭建

目录结构

1 - 一个合理的目录结构首先应该是清晰的,让人一眼看上去就能大概了解目录的职责且容易应对新的变化

  • AppDelegate
  • Models
  • Sections
  • Macro
  • General
  • Helpers
  • Vendor
  • Resources

目录内容

1 - AppDelegate:这个目录下放的是 AppDelegate 文件,是整个应用的入口文件,一般单独拿出来

2 - Models:这个目录下放一些与数据相关的 Model 文件 

  • BaseModel.h
  • BaseModel.m
  • CollectionModel.h
  • CollectionModel.m
  • ...

3 - Macro:这个目录下放了整个应用会用到的宏定义

  • AppMacro.h
  • NotificationMacro.h
  • VendorMacro.h
  • UtilsMacro.h
  • ...

① AppMacro.h 里放 App 相关的宏定义

    // 表情相关

    #define EMOTION_CACHE_PATH @"cachedemotions"

    #define EMOTION_RECENT_USED @"recentusedemotions"

    #define EMOTION_CATEGORIES @"categoryemotions"

    #define EMOTION_TOPICS @"emotiontopics"

    // 收藏相关

    #define COLLECT_CACHE_PATH @"collected"

    // 配图相关

    #define WATERFALL_ITEM_HEIGHT_MAX 300

    #define WATERFALL_ITEM_WIDTH 146

② NotificationMacro.h 里放的是通知相关的宏定义

③ UtilsMacro.h 里放的是一些方便使用的宏定义

    #define UIColorFromRGB(r,g,b) [UIColor  colorWithRed:r/255.0 ,green:g/255.0 ,blue:b/255.0 ,alpha:1]

    #define NSStringFromInt(intValue) [NSString stringWithFormat:@"%d",intValue]

④ VendorMacro.h 里放一些第三方常量

    #define UMENG_KEY @"xxxxx"

    #define UMENG_CHANNEL_ID @"xxx"

4 - General:这个目录放会被重用的 Views、Classes 和 Categories

  • Views

     TPKScollView

     TPKPullToRefresh

  • Classes

     TPKBaseViewController

     TPKHorizontalView

  • Categories

     UIViewController+Sizzle

     UIImageView+Downloader

说明:这里的 TPK 是项目的首字母缩写

5 - Helpers:这个目录放一些助手类,文件名与功能挂钩

  • TPKShareHelper
  • TPDBHelper
  • TPKEmotionHelper
  • ...

6 - Vendors:这个目录放第三方的类库或 SDK,如 UMeng、WeiboSDK、WeixinSDK 等等

7 - Sections:这个目录下面的文件对应的是 app 的具体模块,每个模块又分为 Model、View 和 Controller

  • Business

     Models

     Views

     Controllers

  • Settings

     Models

     Views

     Controllers

  • User

     Models

     Views

     Controllers

  • Coupon

     Models

     Views

     Controllers

8 - Resources:这个目录下放的是 App 会用到的一些资源、图片、plist 文件、css 文件等。针对于不同的类型建立单独的文件夹存放

  • Images 存放项目中用到的图片

     AppIcon   存放应用图标图片

     FirstLaunch  存放程序第一次加载图片

     Nav     存放导航条上的图片

  • Default  存放程序默认加载的图片
  • Plist    存放项目中用到的 plist 文件
  • Videos   存放项目中用到的视频文件
  • Musices   存放项目中用到的音频文件
  • Others   存放其他的文件,比如 css、js 等

小结

1 - 在拿到设计图后就可以针对设计图抽离出可复用的 Classes、Views、Helpers,考虑一下某个效果的具体实现,使用合适的设计模式来避免大量的 if/else 嵌套

2 - 不要一下子就钻到 Sections 中去实现页面效果和功能,初看起来可能会快一点,但只要有点复杂度的项目,这种做法到后来只会吃尽苦头,代码会变的越来越难维护

 

posted on   低头捡石頭  阅读(114)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示