Analyze Technology
As you progress through this course, you’ll develop a deeper understanding of the role computers play in modern life. In fact, you’ll quickly see that computing innovations touch just about every aspect of our lives. Computing innovations can be physical devices, software, or non-physical computing concepts. All computing innovations include a computer program as part of the whole.
At the same time, you’ll come to appreciate the fact that every digital technology has been designed by people, for people. It’s also been designed with a particular purpose in mind, such as to solve a problem, to simplify a task, or to provide for self-expression.
Analyze this:
Ask your classmates how many communication apps they use in a day.
From messaging to social media posts to comments on a shared document, people are in a near-constant state of conversation. You might take this steady state for granted, but do some research into the past. Investigate how communication technology has developed over time. Create an infographic showing the evolution of communication technologies.

Technology has connected people all over the world and has facilitated faster responses to issues. But even if the original intention was to solve problems, to help people, or to make the world a better place, any innovation can also cause harm. Whether a person feels that an innovation is positive or negative may depend on their perspective. Think about location-based services, which most of us use every day. These services use real-time data from a mobile device to provide relevant information, entertainment, or security—making it easier to navigate to new places, find friends, receive necessary information, identify nearby services, and even play location-based games. But the same innovation can also feel like an invasion of privacy, especially if it’s not clear how location data is being used and by whom.
Many computing innovations can have impacts beyond their intended purpose and can often actively exclude people through their design. Innovations like machine learning and data mining have enabled incredible advances in medicine, business, and science, as they uncover patterns in data and enable faster, better-informed decisions. But information discovered in this way has also discriminated against groups of individuals. Consider the use of machine learning in recruitment for the IT industry. One recruitment system learned from data on current employees and then sought future employees who shared the same traits, prior experience, or educational background. Since most of the current workforce was male, the data was biased against women and their experiences—and, as a result, the hiring process was also biased.
Analyze this:
Reflect on a common innovation, such as facial recognition.
Have you used social media software that tags you automatically? This feature uses facial recognition powered by machine learning. How do you feel about that?
How would you feel if it could never find your face? Research the movement to make facial recognition software more ethical and inclusive.
As a programmer, you can’t anticipate all the ways your computing innovation may be used. But you can proactively consider how people will use your innovation, and who may be benefited or harmed by it. If you start by understanding the people—all the people—you're designing for, you can then design in a way that minimizes bias at all levels of software development.
Think Like a Developer
Apps are designed to meet people's needs, whether for entertainment, information, services or connection. Think of the apps you use each day. What needs do they satisfy?
During this course, you’ll be working on human-centered app design—an iterative design process in which you focus on users and their needs in each phase of the design process. There are many ways to define the development process, but the basic concepts remain the same:
- Investigating and reflecting
- Designing
- Prototyping
- Testing
You can work through the Develop in Swift App Design Workbook to explore ideas and iterate on your app design.
Consider this:
Your photoFrame app was a simple introduction to creating apps in Xcode, but a single-image photo app can also be the building block for a more complex photo-sharing app.
What is the purpose of a photo-sharing app? Review a photo-sharing app and identify its features. What needs do those features meet?
Try this:
Some great apps have emerged from people who’ve identified problems they want to solve.
What are some things that frustrate you or that provoke strong emotions? Brainstorm a list of problems you encounter during your day, issues that concern you, or challenges people you know have experienced. Your list is the first step in thinking of an app you want to develop. Don’t try to judge or develop your ideas, just get as many down as you can. You can even include apps that already exist and can be improved.
Once you’ve captured a good long list of app ideas, select your favorite. Open up the Develop in Swift App Design Workbook and complete the Define phase to shape up your app idea, identify the target audience, and explore what’s already on the market. Think about how your app would meet the needs of its users, and what they’d expect from it.
Plan and Build
Collect ideas for your app by capturing images or screencasts of features of other apps that inspire you. You can also gather colors, fonts, and images that might enhance your user interface.
Plan this:
Use the ideas you collected to create a rough map of the features you’d like to include in your app.

Review and Iterate
Your app design is more likely to be successful if you reach out and include a wide variety of people as mentors, advisors, and testers. What’s more, collaboration that includes diverse perspectives helps avoid bias in the development of your app. Consider the individuals you might involve in the development process and the role they might play.
Review this:
Share your initial app idea with some peers and—if possible—with some people who might be future users of the app.
To elicit their initial reaction to your app idea, think of three great questions to ask them. Can they help you to think in directions you might not have considered?
Iterate on this:
Use reviewer feedback to return to the Define section of the Develop in Swift App Design Workbook, make notes, and iterate on your design.
Other Considerations
As you think through your app design, you’ll need to keep in mind some additional considerations. What is the source of the visual content—such as images, logos, and fonts—that you’re using? What rights do you have to use the image? If it’s a photograph that you shot yourself, you usually have the right to use it as you wish. But if you have people in your photos, they may not want their picture shared, and there may be restrictions about sharing images of certain landmarks. When in doubt, seek permission. If you decide to use visual content that’s owned by someone else, be certain to check the license.

Copyright protects work that someone creates from others who might use it for their own benefit. Copyright is granted to the creator the moment a work is created, and it’s the burden of the copyright owner to defend the copyright against others who might misuse their work. (Copyright infringers often claim that the copyright owner did nothing to defend their copyright.)
In the past, copyright has been an all-or-nothing proposition. There’s been no legal way to permit others to use your work, even under clearly defined conditions. To address that middle ground, the Creative Commons movement seeks to facilitate the legal reuse of copyrighted digital content. A Creative Commons license sets up an agreement between the creator and the user of the image—enabling copyright holders to grant reuse permission under specified conditions, without ceding the original copyright.
There are many kinds of Creative Commons licenses, with different levels of requirements and permissions. For example, one license might require that the content be used only for noncommercial purposes, or that the new user cite the copyright holder as the creator. You can read about the various kinds of licenses on the Creative Commons website.
Using the correct license isn’t just the right thing to do; it can also keep you out of trouble. In the eyes of the law, misusing someone else’s work is similar to stealing. Keep yourself safe and learn who owns the rights to the images you want to use in your app. You wouldn’t plagiarize a paper, so be sure not to plagiarize images either.
Creative Commons also makes it easy to find images that are free and clear for you to use in your apps. Even if a copyright holder doesn’t require payment and doesn’t impose limits on what you can do with their work, they may request or require attribution. This means you give credit where credit is due. Think about the benefits and drawbacks of how you attribute your source. You may choose to share the source of the image as a text field in your app, or simply include the source as a comment in your code.