I. Project Awareness
1. A project is a series of unique, complex and interrelated activities that have a clear purpose or purpose and must be completed within a specific time, budget, resource limit , and according to specifications.
2. Build a building is a goal, it will have a lot of activities: analysis of the flow of people to choose the place, design drawings, building, acceptance and so on. The final completion of a building through these activities is a project.
Products:
1. Anything that can be provided to the market, used and consumed by people and that satisfies a person's needs, including tangible goods, intangible services, organizations, ideas or their combination.
Two. Project roles
1. The project team refers to the organization of a group of people of different backgrounds, different skills and different departments in order to accomplish a particular task.
Eg: Technical research Group, film Photography Group
2. The architecture of the Software development project team is divided into: project managers, product groups, research and development groups, and test groups, each of which will have various roles.
Project Team Workflow:
1. In software project development, each member will follow a certain process to carry out their respective work.
2. First, the project manager will be the top sponsor project
3. Product Manager to design product function according to demand
4.UE (Interactive designer) design user function interaction according to product function
5.UI (visual designer) design visual artwork based on function and interaction
6. Development Engineer to complete software development according to Visual manuscript and functional requirement
7. Test Engineer to test the running software according to the requirement document
8. After approval by the project manager, the project can be submitted on-line
Three. Mind Mapping
1. Mind mapping, also known as Mind Map, is an effective graphical thinking tool for expressing emission thinking, which is simple but extremely effective and is a revolutionary thinking tool.
2. The mind map uses the technique of drawing and writing, and the relationship between the subjects at all levels is expressed by the subordinate and related levels, and the theme keywords are linked with the image, color and other building memory.
3. The use of mind mapping in project analysis can help us to better analyze the function of the project, so that the project can be clearer and more rational.
4. Baidu Brain Map is a look at the online Mind map editor, using a modern browser open use.
Four. Interface documentation
1. Generally when we do the application, the client needs to communicate with the server side, the data from the client to the server, from the server on the data to be displayed on the client page.
2. When we do the data upload and data request this part of the function, we need to request the corresponding background interface, pass the correct parameters to complete. These interfaces and parameters are pre-defined and documented in detail in a document called an interface document.
3. The interface document is the equivalent of a protocol, and when it is, both client developers and background developers must adhere to this protocol. If modifications are required, both developers must agree before they can be modified.
4. Interface documentation mainly includes 5 parts: interface function, interface address, request method, request parameter, return value, some interface document also contains sample request and return value, in fact, these two parts are also very useful, he can easily help developers quickly understand the interface.
Five. Entity folder creation
1. To facilitate our management of the class file, if you do not create a folder, all the class files will be displayed in the Xcode file list, there is no hierarchical relationship, when the file lookup is very cumbersome.
2. We can create a virtual folder in Xcode to manage the files, but these folders will only appear in Xcode, the project folder does not exist, so the files in the local project folder still have no hierarchical relationship, all in the same folder.
3. If we upload the project with git or SVN, these virtual folders are not uploaded to the server.
1. When creating an entity folder, be sure to use meaningful names to represent the functionality of the folder. The name of the folder should not be named in Chinese, the program is very error-prone when compiling the file path.
2. Directory structure of the folder, examples are as follows:
(1). Document------The path to your documents
(2). Images----pictures and other resources to be placed in a separate directory or group, but after Xcode5.0 provide images.xcassets folder to store pictures (PNG only, other format pictures to create their own folders), this way more convenient for the management of the picture
(3). Tools---Custom tool classes (network requests, database classes, etc.), Common header files (macros, interface URLs, constants const{notification hubs names, status codes, enumerations, structs, etc.}, global profiles (screen fit, System SDK adaptation, color values, image names, etc.))
(4). Base folder-----Custom parent Class
(5). A separate function. For example, if you apply a third-party JSON download feature, you should put all the files in a separate JSON group. Now the easiest way to manage third parties in Xcode is to use Cocoapods.
(6). Files such as models,views or viewcontrollers can be placed in separate groups by function or file type.
Six. MVC Architecture Analysis
The full name of MVC is the Model View controller, which is an abbreviation for the models-view-controller, a software design paradigm that organizes the code with a separate approach to business logic, data, and interfaces.
1.model (model), store, process data, and provide data to the application. In general, we will put the data model class and the processing class of the data into the M layer. For example: contact people in the Address Book project, data request classes encapsulated in the project, and so on.
2.view (view), presents the user interface, provides user interaction, and presents the data provided by the model. For example, the system-provided view class Uiview,uitableview and so on belong to the V layer. In the project we customize the controls, such as custom cells.
3.controller (Controller), the display of the controller view and the handling of user interaction, get data from the model to show on the view. The goal is to decouple the model from the view. Almost all uiviewcontroller and their subclasses in iOS development belong to the C-tier.
Advantages of MVC:
1. The coupling is low, the view layer, the data layer and the business layer are separated, so that when changing the view layer code, you do not have to deal with the model and controller code.
2. High reusability, in the project we will often request network data, if the network request encapsulated in the M layer, then in the view layer will not have to write the same request network code, but directly use.
3. High maintainability, after separating the code, if you want to modify or add functionality, you can go directly to a layer to find the corresponding code and then adjust, greatly reducing the programmer's maintenance costs.
4. Rapid deployment, the use of the MVC framework, development time will be reduced, business programmers can focus on business logic, page development programmers can focus on the development of the page.
Principle:
1. In the MVC framework design, the C layer can directly control the V-layer and M-layer. However, the V-layer and M-layer cannot communicate directly with the C layer.
2.M layer to the C layer to initiate communication of the common way there are notifications and kvo two ways. That is, when the M-layer changes, you can notify the C-layer in these two ways, so that the C layer does the corresponding processing.
3.V layer to the C layer to initiate communication of the common way is delegate,datasource and target-action and so on.
4. In the MVC framework Design, V and M cannot communicate directly, only through C indirect communication.
Seven. The realization mechanism of drawer effect
1. There are often many functional modules in the app, all of which have a main entrance. The entrance to these features is called the menu bar, and you can choose a different function from the menu.
2. The most common way to use iOS is the bottom tab menu, but when you use tab, you can only display 5 menus at the bottom, and another problem is that tab takes up a portion of the screen to make the view of the display smaller.
3. There is now a more popular menu practice is to slide the left side of the drawer menu, choose to complete after the menu hidden. This drawer menu was first introduced as a menu design for path on iOS.
What is the drawer effect?????
1. The menu page is actually a UITableView, which solves the problem that the tab menu can display a maximum of 5 modules.
2. When a user enters a module, the main view obscures the menu page, making the page more concise.
Specific implementation:
ios-Project analysis, frame construction