Best practices code structure for large projects?

Hi, I come from the Java world where organizing your code is handled conveniently through packages. Is there an equivalent in XCode/Objective C? I'd rather not lump all my observers, entities, controllers, etc in one place under "Classes"...or maybe it doesn't matter...
If anyone could point me to a document outlining recommended guidelines I'd appreciate it.
Thanks! Jon

If you have a small project, you can setup Groups in Xcode to logically organize your files. Those Groups do not necessarily have to correspond to any directory structure. I have all my source files in one directory but organize them into Groups in Xcode.
If you have a larger project, you can do the same thing, but with code organized into actual directories. Groups can be defined to be relative to a particular directory.
If really do have a large project, you should organize things the same was as in Java. Your "packages" would just be libraries - either static or dynamic.
As far as official guidelines go, there really aren't any. It would be best to stick to the Cocoa Model-View-Controller architecture if that is the type of application you are working on. For other software, you can do it however you want, including following something like Sun's guidelines if you want.

Similar Messages

  • Best practices in structuring a large Flash project?

    I'm building an educational site in Flash. A student works through a series of activities, either watching an animated video or answering a question. You can get a good idea of the basic functionality with this mockup: http://imgur.com/Mi4JyHN.
    After a student logs in, the server responds with their current activity and progress. The activity displays, and all student interaction is sent to the server to record (time spent on questions, buttons clicked, correct and incorrect answers, etc). When the student is done with an activity, the server is notified and responds with the next activity to present.
    I'm fairly new to flash and would love to hear how people with experience would structure this project. I can think of the following possibilities.
    One enormous SWF. All audio files and movie clips are embedded in the SWF and swapped out as necessary. This is not a reasonable option because the size of the resulting SWF would be huge.
    Exactly one SWF for each activity. The control buttons and progress bars are obviously shared between each activity, and it seems like a lot of duplication to have them in each compiled SWF. Also, if a button is changed, this requires re-compiling everything, right?
    One main SWF that loads others. The main SWF contains the buttons and progress bars and fetches external SWFs from the server to replace the stage area. I don’t know enough Flash to predict how this will go.
    Part JavaScript, part Flash. The buttons and progress bars are done in HTML + JavaScript. The page fetches external SWFs from the server to replace the stage area. This is the current system, and the problem is the ugliness/difficulty of managing the communication between JS and AS3.
    HTML5. While I would love for this to be a possibility, I don’t feel like it is. Animation is still way easier in Flash and we are still targeting some fairly old browsers. The best part about Flash is the consistency in experience.
    Extra questions:
    Which options leave us open to publishing to mobile using Adobe AIR?
    Which options are best for automated testing / accessibility / version control / general code layout?
    Thanks so much for any advice!

    For a Flash-based design I would go with option 3.  The general controls and objects common for use with each activity would be in the main file.  Whether or not the main file would be responsible for sending activity data to the server could depend on there being determinable similarities between data collections...  otherwise it might fall on individual activity swfs to interact with the database.  There are too many unknowns in this regard for me to offer much.
    If this was going to be a loaded application, such as an AIR app, then option 1 might be more reasonable since you only have to install once for everything to be available.
    When it comes to mobile you are likely to hit a snag if you rely on using AIR/Flash to try to deal with a main and activity swfs approach... mainly in the Apple realm...  unless I forgot a lot of what I was involved with some time ago, a loaded swf cannot contain any code when it comes to iStuff.  So you end up having to make the main file contain all of the coding to deal with each activity's processing.  Every interface/interactive element can only exist by name and the main file has to target them and assign listeners and processing and etc....a mess in my view.  That's why having the one huge AIR file is possibly a tad more reasonable.
    I have nothing to offer in the HTML5 end of things.  I have not yet journeyed down that path.  Since HTML5 is basically wingless without javascript and CSS, it might come to pass that the current system (option 4) is the way to go.

  • What is the best way to share for large projection?

    I would like embed my movie as part of the Powerpoint to be shown on a Windows machine (my only option). What is the best way to share it so that it doesn't look grainy or pixelated?

    Fool proof? Does Mircosoft make Powerpoint?
    LOL... but seriously
    You could export it out to a Windows Media file.
    http://www.Flip4Mac.com

  • How to use Source Code Control for Large Application?

    Hi, All!
    I would like to collect knowledge about "best practice" examples for using Source Code Control and project organization for relative large application (let's say approx 1000 SubVIs).
    Tools used:
    LabVIEW 8.0
    CVS Server
    PushOK CVS Proxy Client
    WinCVS
    With LabVIEW 8 we can organize large project pretty well. This described in article Managing Large Applications with the LabVIEW Project.
    I have read this article too: Using Source Control Software with LabVIEW In this Article Source Safe used, but with PushOK all looks nearby the same and works (some tricks for compare function are required).
    Example. Two developers working together on same project. Internally project is modular, so one developer will work with module "Analysis", and another one with "Configuration" without interferences. These modules placed into Subfolders as shown in example above.
    Scenario 1:
    Developer A started with modification of module "Analysis". Some files checked out. He would like to add some SubVIs here. So, he must also perform check out for the project file (*.lvproj), otherwise he cannot add anything into project structure.
    Developer B at the same time would like to add some new functions into module "Configuration". He also needed to check out project file, but this file already checked out by Developer A (and locked). So, he must wait until lvproj file will be checked in. Another way is mark *.lvproj files as text files in PushOK, but then one of developers will get conflict message by checking in and then merging will be necessary. This situation will coming very often, because in most cases *.lvproj file will be checked out all the time.
    Question: Which practice is better for such situation? Is Libraries better than folder for large project?
    Scenario 2:
    Developer C joined to the team. First, he must get complete project code for starting (or may be at least code of one Library, which assigned to him).
    Question: How it can be done within LabVIEW IDE? Or WinCVS (or other SCC UI) should be used for initial checkout?
    Scenario 3:
    Developer D is responcible for Build. Developers A,B,C have added lot of files into modules "Analysis", Configuration" and "FileIO". For building he need to get complete code. If our project splitted into folders, he should get latest *.lvproj first, then newly added SubVIs will appear in Project Explorer, then he should expand tree, select all SubVIs and get latest versions for all. If Project organized in Libraries, he must do the same for each library, isn't?.
    Question: Is this "normal way", or WinCVS should be used for this way? In WinCVS its possible with two mouseclicks, but I prefer to get all code from CVS within LabVIEW IDE recursively...
    That was a long post... So, if you already working with LabVIEW 8 with SCC used for large project, please post your knowledge here about project structure (Folders or Libraries) and best practices, its may be helpful and useful for all of us. Any examples/use cases/links etc are appreciated.
    Thank you,
    Andrey

    Regarding your scenarios:
    1. Using your example, let's say both developers checked out version 3
    of the project file. Assuming that there are only files under the
    directories in the example project, when Developer A checks in his
    version of the project, there will be new files in one section of the
    project separate from where Developer B is working. Developer B,
    notices that there is now a version 4 of the project. He needs to
    resolve the changes so will need to merge his changes to the latest
    version of project file. Since the project file is a text file, that is
    easy to do. Where an issue arrises is that after Developer B checks in
    his merged changes, there is a revision 5. When Developer A and B go to
    make another change, they get the latest version which will have the
    merged changes to the project file but not the referenced files from
    both Developer A and B. So when A opens version 5, he sees that he is
    missing the files that B checked in and visa versa. Here is where the
    developers will needs to manually use the source control client and,
    external to LabVIEW, get those new files.
    Where libraries help with the above scenario is that the library is a
    separate file from the project so changes made to it outside of the
    project do not require the project to be modified. So this time, the
    developers are using a single project again which time time references
    two libraries. The developers check out the libraries, make changes to
    the libraries, and then check those changes in. So when each developer
    opens the project file, since it references the project file, the
    changes to the library will be reflected. There is still the issue of
    the new files not automatically coming down when the latest version of
    the library is obtained. Again, the developers will needs to manually
    use the source control client and, external to LabVIEW, get those new
    files. In general, you should take advantage of the the modularity that
    libraries provide.
    2. As noted in the above scenario, there is no intrinsic mechanism to
    get all files referenced by a LabVIEW project. Files that are missing
    will be noted. The developer will then have to use the source control
    provider's IDE to get the initial contents of the project  (or library).
    3. See above scenarios.
    George M
    National Instruments

  • Any known security best practices to follow for FMS deployment

    Hi all,
    We have recently deployed Flash Media Streaming server 3.5.2 and Flash Media Encoder on a Windows 2003 machine. Do you guys know of any security best practices to follow for the FMS server deployment on a Windows machine, could you please point me to that resource.

    Hi
    I will add some concepts, I am not sure how all of them work technically but there should be enough here for you to
    dig deeper, and also alot of this is relevant to your environment and how you want to deploy it.
    I have done a 28 server deployment, 4 origin and 24 edge servers.
    All the Edge servers on the TCP/IP properties we disabled file and printer sharing. Basically this is a way in for hackers and we disabled this only on the edge servers as these are the ones presented to the public.
    We also only allowed ports 1935, 80, 443 on our NICs. Protocol numbers are 6 and 17, this means that you are allowing UDP and TCP. So definitely test out your TCP/IP port filtering until you are confortable that all your connection types are working and secure.
    Use RTMPE over RTMP, as it is there to be used and I am surprised not more people use it. The problem as with any other encryption protocol, it may cause higher overhead on resources of the servers holding the connections.
    You may want to look at SWF verification. In my understanding, it works as the following. You publish a SWF file on a website. This is a source code that your player uses for authentication. If you enable your edge servers to only listen for authentication requests from that SWF file, then hopefully you are really lessening the highjacking possibilities on your streams.
    If you are doing encoding via FME then I would suggest that you download the authentication plugin that is available on the Flash Media Encoder download site.
    There are other things you can look at making it more secure like adaptor.xml, using a front end load balancer, HTML domains, SWF domains,
    Firewalls and DRM.
    I hope this helps you out.
    Roberto

  • Need best practice configuration document for ISU CCS

    I am working on ISU CCS project. i need  best practice cofiguration document for
    Contract management
    Collections management
    Invoicing
    Work Management as it relates to ERP Billing.
    Thanks
    Priya
    priyapandey.sapcrmatgmailcom

    Which version are you setting up and what are the requirements? IF you are discussing the use of NIC bonding for high availability beginning in 11.2.0.2 there is a concept of "High Availability IP" of HAIP as discussed in the pre-installation chapters,
    http://docs.oracle.com/cd/E11882_01/install.112/e22489/prelinux.htm, section 2.7.1 Network Hardware Requirements.
    In essence, using HAIP eliminates the need to use NIC bonding to provide for redundancy.

  • [More information] 'SAP Best Practices Baseline package for Brazil V3.607'

    Hi.
    When I study 'SAP Best Practices Baseline package for
    Brazil V3.607', I wonder somthing.
    I want solution of problem.
    ---------Problem---------
    In '100: SAP Best Practices Installation' document on point 3.4 Define Tax Jurisdiction Code it says
    Enter the Jurisdiction Codes according to the document SMB41_J_1BTXJURV_B020_NFE.TXT.
    I have search the internet for this document and the only hit is the actual Best practice document.
    Does anybody knows where to get this document?
    ASAP, reply for me.
    Thanks.

    Dear Dimitry,
    the Best Practice baseline content is freely available to anyone w/o any charge.
    You find the whole content about it at:
    SAP Best Practices package for Russia V3.607 (English)
    SAP Best Practices package for Russia V3.607 (Russian)
    Kind Regards,
    Jan

  • Best Practice: Export unrendered for internet

    Hi
    As I recall, in previous versions of FCPX  it was considered best practice, at least for exports for web, to export unrendered.
    Still true? Ever true for all other export reasons?
    I want to post a rough of a film on youtube, unlisted, for a few friends to comment on.
    best
    elmer
    Btw, always seems like when I open my browser while fcpx is open, I get problems and have to delete my prefs to get back to normal. Any reason why? Just curious.

    Steve: If these are bitmaps inside a PDF that's going to be viewed on the iPad, you cannot rely on its "native resolution". Think about this: What if the original page size of this PDF is 5.5" x 8"? What if it is 20" x 32"? Which one will show the images "at their native resolution"?

  • Best Practices Building Blocks for CRM 5.0 & CRM 2007

    Hi Experts,
    Where can I find Best Practices Building Blocks for CRM 5.0 & CRM 2007?
    Thanks in advance,
    Vishwa.

    Hi
    Go to: http://help.sap.com/
    Click on the Best Practices Tab,
    Then Cross-Industry Packages,
    Then Customer Relationship Management
    They should all be under there.
    Regards
    Arden

  • Looking for best practice / installation guide for grid agent for RAC

    I am looking for best practice / installation guide for grid agent for RAC, running on windows server.
    Thanks.

    Please refer :
    MOS note Id : [ID 378037.1] -- How To Install Oracle 10g Grid Agent On RAC
    http://repettas.wordpress.com/2007/10/21/how-to-install-oracle-10g-grid-agent-on-rac/
    Regards
    Rajesh

  • Install Best Practices- Baseline Package for ECC 6.0 EHP4

    Hi All,
    I know its not the right forum to post this message, but posting here as i didnt get the info from the related forum, apologies for that.
    Now we are planning to install SAP Best practices-Baseline Packages for ECC-EHP4 in our new server.
    Can anybody help me out what are the steps to be carried out. Now we have completed installation of Linux & we want to install BP for General, not for any specific industry.
    B/regds,
    CB

    Please post this question in SAP Basis Forum.
    Alternatively, you can check documents in scribd/ help.sap.com
    Raghavan

  • SAP Best Practices Baseline package for Russia V3.607

    Dear colleagues,
    My partner - BearingPoint Russia - has an interest to SAP Best Practices Baseline package for Russia V3.607
    Would you please help to find the contact whom they can ask the questions about content & price to?
    Best regards,
    Dmitry Popov

    Dear Dimitry,
    the Best Practice baseline content is freely available to anyone w/o any charge.
    You find the whole content about it at:
    SAP Best Practices package for Russia V3.607 (English)
    SAP Best Practices package for Russia V3.607 (Russian)
    Kind Regards,
    Jan

  • Best Practice Directory Structure

    I'm new to programming and I'm creating a large application
    that will have a lot of pages and components. As I continue to add
    to the project, I find it harder and harder to easily locate the
    pages and components that I need to work with. To help me with this
    problem, I've decided to add a label to every component with the
    location of where it can be found. Now when I view the application
    and I see a component I want to work with, I know where it is
    located.
    This is problably not the best way to handle the problem, it
    will be a pain to go back and remove or comment out these when I'm
    fininshed with the project, but it wil help now.
    Short of having a better memory :>), is there any best
    practice guidelines I should look into and follow when I create my
    directory structure of files and components that will intuitively
    help me quickly locate a component? What do you use to help you?
    Thanks for your ideas and suggestions

    There are many ways to answer this. If you have a big project
    you might consider using a Flex Library Project for your components
    - think of it as writing a set of components you (or your company)
    might one day sell to others - even if you never have that intent.
    The idea is to make the components as reusable as possible in case
    you need them for the next project. Having them in a separate Flex
    Library project (which creates a .swc file) would make that easier.
    The industry best-practice seems to be to create packages
    that begin with your company's domain name, but in reverse order.
    For example, components I write for Adobe go into a package
    beginning with com.adobe which works out to be the file structure
    com/adobe and then is further divided by the application and then
    its parts (eg, com.adobe.scrapbook.editor). Using your company's
    domain to distinguish your components enables you and others to
    combine components from different places without naming conflicts.
    If you divide your application into logical parts you can
    figure out a good package naming convention that is easier to
    remember. For example, I might put all of the skins for my
    Scrapbook Editor into the com.adobe.scrapbook.editor.skins package.
    I can easily find those files and add to them as necessary.
    Other people follow a similar pattern and there are books on
    the subject, too.

  • Best practice on sqlite for games?

    Hi Everyone, I'm new to building games/apps, so I apologize if this question is redundant...
    I am developing a couple games for Android/iOS, and was initially using a regular (un-encrypted) sqlite database. I need to populate the database with a lot of info for the games, such as levels, store items, etc. Originally, I was creating the database with SQL Manager (Firefox) and then when I install a game on a device, it would copy that pre-populated database to the device. However, if someone was able to access that app's database, they could feasibly add unlimited coins to their account, unlock every level, etc.
    So I have a few questions:
    First, can someone access that data in an APK/IPA app once downloaded from the app store, or is the method I've been using above secure and good practice?
    Second, is the best solution to go with an encrypted database? I know Adobe Air has the built-in support for that, and I have the perfect article on how to create it (Ten tips for building better Adobe AIR applications | Adobe Developer Connection) but I would like the expert community opinion on this.
    Now, if the answer is to go with encrypted, that's great - but, in doing so, is it possible to still use the copy function at the beginning or do I need to include all of the script to create the database tables and then populate them with everything? That will be quite a bit of script to handle the initial setup, and if the user was to abandon the app halfway through that population, it might mess things up.
    Any thoughts / best practice / recommendations are very appreciated. Thank you!

    I'll just post my own reply to this.
    What I ended up doing, was creating the script that self-creates the database and then populates the tables (as unencrypted... the encryption portion is commented out until store publishing). It's a tremendous amount of code, completely repetitive with the exception of the values I'm entering, but you can't do an insert loop or multi-line insert statement in AIR's SQLite so the best move is to create everything line by line.
    This creates the database, and since it's not encrypted, it can be tested using Firefox's SQLite manager or some other database program. Once you're ready for deployment to the app stores, you simply modify the above set to use encryption instead of the unencrypted method used for testing.
    So far this has worked best for me. If anyone needs some example code, let me know and I can post it.

  • Best Practice Table Creation for Multiple Customers, Weekly/Monthly Sales Data in Multiple Fields

    We have an homegrown Access database originally designed in 2000 that now has an SQL back-end.  The database has not yet been converted to a higher format such as Access 2007 since at least 2 users are still on Access 2003.  It is fine if suggestions
    will only work with Access 2007 or higher.
    I'm trying to determine if our database is the best place to do this or if we should look at another solution.  We have thousands of products each with a single identifier.  There are customers who provide us regular sales reporting for what was
    sold in a given time period -- weekly, monthly, quarterly, yearly time periods being most important.  This reporting may or may not include all of our product identifiers.  The reporting is typically based on calendar-defined timing although we have
    some customers who have their own calendars which may not align to a calendar month or calendar year so recording the time period can be helpful.
    Each customer's sales report can contain anything from 1,000-20,000 rows of products for each report.  Each customer report is different and they typically have between 4-30 columns of data for each product; headers are consistently named.  The
    product identifiers included may vary by customer and even within each report for a customer; the data in the product identifier row changes each week.  Headers include a wide variety of data such as overall on hand, overall on order, unsellable on hand,
    returns, on hand information for each location or customer grouping, sell-through units information for each location or customer grouping for that given time period, sell-through dollars information for each location or customer grouping for that given time
    period,  sell-through units information for each location or customer grouping for a cumulative time period (same thing for dollars), warehouse on hands, warehouse on orders, the customer's unique categorization of our product in their system, the customer's
    current status code for that product, and so on.
    Currently all of this data is stored in a multitude of Excel spreadsheets (by customer, division and time period).  Due to overall volume of information and number of Excel sheets, cross-referencing can take considerable time.  Is it possible to
    set-up tables for our largest customers so I can create queries and pivot tables to more quickly look at sales-related information by category, by specific product(s), by partner, by specific products or categories across partners, by specific products or
    categories across specific weeks/months/years, etc.  We do have a separate product table so only the product identifier or a junction table may be needed to pull in additional information from the product table with queries.  We do need to maintain
    the sales reporting information indefinitely.
    I welcome any suggestions, best practice or resources (books, web, etc).
    Many thanks!

    Currently all of this data is stored in a multitude of Excel spreadsheets (by customer, division and time period).  Due to overall volume of information and number of Excel sheets, cross-referencing can take considerable time.  Is it possible to
    set-up tables .....
    I assume you want to migrate to SQL Server.
    Your best course of action is to hire a professional database designer for a short period like a month.
    Once you have the database, you need to hire a professional DBA to move your current data from Access & Excel into the new SQL Server database.
    Finally you have to hire an SSRS professional to design reports for your company.
    It is also beneficial if the above professionals train your staff while building the new RDBMS.
    Certain senior SQL Server professionals may be able to do all 3 functions in one person: db design, database administration/ETL & business intelligence development (reports).
    Kalman Toth Database & OLAP Architect
    SELECT Video Tutorials 4 Hours
    New Book / Kindle: Exam 70-461 Bootcamp: Querying Microsoft SQL Server 2012

Maybe you are looking for

  • After moving my iTunes and iPhoto libraries to an external hard drive and deleting the originals i found i still had no space on my mac.help

    i moved my itunes and iphoto libraries to an external hard drive to free up space on my mac. after i had moved them and checked they could be found i trashed the originals and checked again that the could be found on the external hdd. all seemed to b

  • Bayer rg 8-bit - how many bits per pixel am I looking at?

    I'm streaming video with IMAQdx from a GigE Vision camera that does Bayer 8-bit RG, among other formats. I appear to be receiveing 24 bpp from the video stream, though. Does LabView do any conversions on this data that would ramp the size up without

  • Help required: unable to debug in NDS

    Hello there, I am unable to debug in NDS. When i try to debug I get the following error Exception occured creating launch configuration tabs Reason: No tab group defined for launch configuration type org.eclipse.jdt.launching.remote.JavaApplication A

  • Photo Changes Color in Edit Mode

    What I've noticed is that when I put a photo into Edit mode, the photo automatically lightens. When I go through the process of editing my photo to the color range I want it to be in and click on Done, the photo goes back to the lineup where it displ

  • Activate SAP Product

    Hi guys. After a support package upgrade at our Solution Manager, some SAP products became inactive. However, these products (like SAP Enterprise Portal, for instance), still being used, and I have to set it to a new project, but how it's inactive, I