A year ago, Stanford and Apple jointly launched a development course based on the iPhone platform. The PPT of this course was shared online, and the response was very good. This semester, Stanford recorded the course and put it on iTunes University for download. Currently, this course ranks first in iTunes downloads, reaching 1 million downloads. This is a lecture on "10 steps for successful iphone software development". Although it is different from the application platform for software design in our work, however, there are still many successful experiences for reference.
1. Decide what to do
One easy mistake is "starting from the conclusion", for example, deciding to build a local social network without thinking about what problems the software is trying to solve, it is to solve the problem of finding a place to eat with friends or something else. If it is for the problem of a place to eat, is there a better solution. Therefore, we must first determine the target users and problems to be addressed.
One of the easiest ways to succeed is that the designer is the target user, and the problem to be solved is also the problem encountered by the designer. In this way, designers can often use software to discover problems and conduct effective iteration. It is difficult to imagine the needs of others. It is necessary to contact and talk with the target user and use the user profiling method that is frequently used in the work. User portraits are not necessarily real users. They can be virtual, but must be representative of user groups.
2. Access the App Store
Software designers on the iPhone do not have many opportunities to familiarize users with new designs. This is because of the limitations of the iPhone's use environment, the user's limited attention time, and patience, most of the time it is used in transportation or in the waiting gap, so the software design requires users to know how to use it at a glance. There are a lot of software on the App Store, find out popular software, and see how they are designed. These popular software are generally well-designed and usually get user feedback for several rounds of iteration. Some common points can be used for reference. "Good artists copy, great artists steal ."
3. Search for all possible design solutions
Sometimes a designer has a design plan in his mind. He thinks it is perfect and does not want to consider whether there are other designs. But usually the first design scheme is not perfect. Even Apple's designers, the first scheme is often bad.
Software on the iPhone has many limitations:
1. Small Screen
2. The touch-based input is not accurate. It usually requires a target of 44 pixels to have a sufficient center rate.
3. The input is more difficult. Even if there is a soft keyboard, the input is much more difficult than that of a normal keyboard. More information is sent to the user rather than the user. Simply put, read applications are more than write applications.
4. The use time is short. Generally, the length is several minutes at a time. Not necessarily because the user is not interested in the software, it is determined by objective conditions such as "subway to station. Therefore, a software operation process cannot take a long time.
Take iPhoto as an example. The left side is iPhoto on Mac.ProgramThe function is comprehensive and the image editing capability is strong. On the right side is the iPhone program. The main function is to see the figure.
The iPhone iPhoto is not successful because of the decrease in functionality. In fact, it is a very successful software. Anyone who is 3 years old will use it. Its core idea is "small ". Only those core functions are retained. If the software is missing, the software is no longer used.
4. Sketch
At this step, you need to draw a draft on the paper. For example, the Program on the right roughly corresponds to the sketch on the left.
Design as many as possible during sketch, with different functions and different la S. This is the creative alternative design by Apple designers. The first sketch is the most ideal solution for the designers at the beginning. It is relatively simple to do the second to fourth, it is difficult to achieve the seventh one. The last three are very difficult, but they are also the most valuable. They often have very creative ideas.
When you have these sketches, you need to find the target users to listen to their opinions, such as those who have the same requirements. They will give feedback on what designs they like and what they do not like. These opinions help to exclude and integrate the design scheme. There are about 2-3 solutions with high acceptance and no obvious advantages and disadvantages. You can select a solution. This part takes a lot of time, but it is very worthwhile, because the price of continuous modification in the subsequent process is often several times the price of advance modification.
5. Build a paper prototype
Each piece of paper represents a software interface displayed on the screen. The value of this step is that after drawing these images on paper, you can get some user experience, instead of waiting for programming.
"OK, you just opened my software" from the first one. Click this button to go to the screen of the second piece of paper, and so on. In this process, we can collect much richer user feedback than in the sketch phase, where the user does not know how to operate, where it is easy to get confused, where the user prefers it, and where it doesn't like it.
The figure below is a paper prototype made by iPhone game designers, simulating a real iPhone. Designers made various pieces of paper to simulate various elements in the program.
6. Use of tools-omnigraffle
Although omnigraffle is a graphic editing software, it is more suitable for prototype design. It has a wide range of control libraries, allowing you to drag these controls to easily build a program interface. Some personalized design or detailed processing can be made in Photoshop. The following figure shows the omnigraffle control library for the iPhone platform.
The following figure shows the software interface made by the lecturer using omnigraffle, which can be accurate to the pixel level of the final version.
At this stage, we need to determine detailed content and visual definitions, such as the definition of colors. The establishment of a precise prototype also facilitates a team to work together, reducing communication costs and avoiding ambiguity.
7. Backtrack Modification
In fact, it is not a real step, but it indicates that not every software must be put in place. In fact, it is an iterative process, and sometimes it must be modified in retrospect.
It is a software interface recently developed by the lecturer. Different attempts are made in the details of the specific interface:
Some users also need to make more thorough backtracking and modifications. Some users provide feedback in the sketch phase that they like things that are not really what they really need, in this case, it is necessary to go back to the sketch stage for re-design.
8. Development and Implementation
This part is not described in detail. Simply put, you should pay attention to the design mode of the program, and separate the user interface from the background data.
9. Test
Test the software to see if the text prompts are correct and if there are bugs. The key here is who will perform the test.
Friends are relatively reliable resources and their feedback is valuable. However, Mechanical Turk can be used if local target users are difficult to find, such as users involving the global nature such as seismic analysis software. Mechanical Turk is a service of Amazon. For those who do not know what to do online, ask them for a test at a very low reward, such as a few us points. You can also offer a higher price for testing by a relatively small number of professional people, so the value of feedback is relatively high.
10. Release
Release software. In earlier versions, you may need to modify the interface, fix bugs, and iterate versions. But it is usually a pleasant ending in the later stages.
Summary
Several important principles:
1. Understand your users and contact and talk with them.
2. Do not design an imaginary design. learn more from the successful software.
3. The software should be "small ".
4. Find enough design schemes and obtain good quality through the accumulation of quantity.
5. The sooner you fail, the sooner you succeed.
6. Accurate pixel level.
7. Remember that nothing is precious and cannot be abandoned. Do not be afraid to modify it.
8. perform sufficient tests before submission.