广

IOS开发

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    Xcode中iOS应用开发的一般项目目录结构和流程简介

    2018-04-06 10:40:38 次阅读 稿源:互联网
    广告

    项目所需的平台路径
    1.开发平台路径:

    /Developer/Platforms

    此路径下一般有三个目录,分别是mac电脑、模拟器、iphone真机

    • MacOSX.platform       
    • iPhoneSimulator.platform
    • iPhoneOS.platform
    • 每个目录下都有一个/Developer/usr/bin目录,放置开发中需要的程序

    总的目录比如:/Developer/Platforms/*/Developer/usr/bin/

    注意:*代表上面上个目录中的一个,具体是哪个看目标平台的需求

    2.模拟器路径:

    /Developer/Platforms/iPhoneSimulator.platform/Developer/Applications

    里面有模拟器的可执行文件iPhone Simulator.app

    3.sdk路径:

    真机:

    /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk

    模拟器: 

    /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk

    4. app路径

    真机:

    /var/mobile/Applications/4434-4453A-B453-4ADF4535345ADAF344

       后面的目录4434-4453A-B453-4ADF4535345ADAF344是iphone自动生成的,里面的文件或目录包括:

      (1)app目录 test.app

      (2)文档目录 Documents

      (3)库目录 Library

      (4)临时目录 tmp

      Documents目录,可以放置用户保存的数据,可以同步到icould

      Library目录,包括:缓存目录Caches,用户偏好目录Preferences(存放NSUserDefaults保存的.plist)

    项目目录结构和开发流程

    目录结构

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

    一个合理的目录结构首先应该是清晰的,让人一眼看上去就能大概了解目录的职责,且容易应对新的变化。
     
    AppDelegate
    这个目录下放的是AppDelegate.h(.m)文件,是整个应用的入口文件,所以单独拿出来。
     
    Models
    这个目录下放一些与数据相关的Model文件,里面大概是这样:
     

    Models  |- BaseModel.h  |- BaseModel.m  |- CollectionModel.h  |- CollectionModel.m  ...

     
    Macro
    这个目录下放了整个应用会用到的宏定义,里面大概是这样:

    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"

    如果有新的类型的宏定义,可以再新建一个相关的Macro.h。
     
    General
    这个目录放会被重用的Views/Classes和Categories。里面大概是这样:

    General  |- Views    |- TPKScollView    |- TPKPullToRefresh    ...  |- Classes    |- TPKBaseViewController    |- TPKHorizontalView    ...  | - Categories    |- UIViewController+Sizzle    |- UIImageView+Downloader    ...

    这里的TPK是项目的首字母缩写。
     
    Helpers
    这个目录放一些助手类,文件名与功能挂钩。里面大概是这样:

    Helpers  |- TPKShareHelper  |- TPDBHelper  |- TPKEmotionHelper  ...

     
    助手类的主要作用是帮助Controller瘦身,也可以提供一定程度的复用。
     
    Vendors
    这个目录放第三方的类库/SDK,如UMeng、WeiboSDK、WeixinSDK等等。
     
    Sections
    这个目录下面的文件对应的是app的具体单元,如导航、瀑布流等等。里面大概是这样:

    Sections  |- Menu  |- Setting  |- Collection  ...

     
    Resources
    这个目录下放的是app会用到的一些资源,主要是图片。
     
    Cocoapods
    业务无关的类库可以通过 Cocoapods 来方便地管理,如SDWebImage, Reachability等等。还有一些是多个应用都会用到的基础模块,比如HBAPI、HBSNS 、HBFoundation(HB为公司名首字母)等等,可以建一个私有的git repo,然后加到podfile中,这样如果HBAPI有更新,只需要pod update一下就行了。
     
    顺便说一下HBFoundation,这个git仓库中可以放一些自己写的所有应用基本上都会用到的小模块。如很多app都会有隔一段时间跳出一个求好评的alertView,就可以写一个HBRating类,这样需要使用该功能的app只需加上一句:[HBRating checkIfShouldPopupWithAppID:(NSInteger)appID]就行了。又比如app都有接受push notification的需求,可以写一个HBAPNS类,等等。
     
    开发流程
    在拿到设计图后,就可以针对设计图抽离出可复用的Classes/Views/Helpers,考虑一下某个效果的具体实现,使用合适的设计模式来避免大量的if/else嵌套,等等。不要一下子就钻到Sections中去实现页面效果和功能,初看起来可能会快一点,但只要有点复杂度的项目,这种做法到后来只会吃尽苦头,代码会变的越来越难维护。所以前期一定要做好充足的准备工作。

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告