目录文件夹结构 AppDelegate Sections Macro General Helpers Vendors Resources 一个合理的目录结构首先应该是清晰的,让人一眼看上去就能大概了解目录的职责,且容易应对新的变化。 AppDelegate 这个目录下放的是AppDelegate.h(.m)文件,是整个应用的入口文件,所以单独拿出来。 Macro 这个目录下放了整个应用会用到的宏定义,对于界面布局宏,写在对应的自定义view中, 里面大概是这样: Macro |- AppMacro.h |- NotificationMacro.h |- VendorMacro.h |- UtilsMacro.h |- APIMacro.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" APIMacro.h 里存放网络接口宏定义. 如果有新的类型的宏定义,可以再新建一个相关的Macro.h。 General 这个目录放会被重用的Views/Classes和Categories。里面大概是这样: General |- Views |- TPKScollView |- TPKPullToRefresh ... |- Classes |- TPKBaseViewController |- TPKHorizontalView ... | - Categories |- UIViewController+Sizzle |- UIImageView+Downloader ... 这里的TPK是项目的首字母缩写。 Views: 存放整个应用程序中可重用的view. Classes:存放整个应用程序中可重用的其他类,比如:Controller以及Model,以及基类. Categories:存放可重用的分类. Helpers 这个目录放一些助手类,文件名与功能挂钩。里面大概是这样: Helpers |- TPKShareHelper |- TPDBHelper |- TPKEmotionHelper ... 助手类的主要作用是帮助Controller瘦身,也可以提供一定程度的复用。 Vendors 这个目录放第三方的类库/SDK,如UMeng、WeiboSDK、WeixinSDK等等。 Sections 这个目录下面的文件对应的是app的具体模块,每个模块又分为Model,View,Controller。里面大概是这样: Sections |- Business |-Models |-Views |-Controllers |- Settings |-Models |-Views |-Controllers |- User |-Models |-Views |-Controllers |- Coupon |-Models |-Views |-Controllers ... Resources 这个目录下放的是app会用到的一些资源,图片,plist文件,css文件等。针对于不同的类型建立单独的文件夹存放,该文件夹下的目录结构可以是这样的. Resources |-Images (存放项目中用到的图片) |-AppIcon (存放应用图标图片) |-FirstLaunch (存放程序第一次加载图片) |-Nav (存放导航条上的图片) |-Default (存放程序默认加载的图片) |-Plist (存放项目中用到的plist文件) |-Videos (存放项目中用到的视频文件) |-Musices (存放项目中用到的音频文件) |-Others (存放其他的文件,比如css,js等) 开发流程
在拿到设计图后,就可以针对设计图抽离出可复用的Classes/Views/Helpers,考虑一下某个效果的具体实现,使用合适的设计模式来避免大量的if/else嵌套,等等。不要一下子就钻到Sections中去实现页面效果和功能,初看起来可能会快一点,但只要有点复杂度的项目,这种做法到后来只会吃尽苦头,代码会变的越来越难维护。所以前期一定要做好充足的准备工作。
转载于:https://www.cnblogs.com/Cheetah-yang/p/4838331.html
相关资源:JAVA上百实例源码以及开源项目