Please enable JavaScript to use CodeHS

Mobile Apps

Mobile applications are becoming increasingly important to our consumption of media, news, social interaction, and learning. In this course, students will learn how to create mobile apps using React Native, a popular platform-agnostic framework. As an online blended high school course, students will design and build applications to run on their own smartphones and will use the latest tools and technologies available for mobile app development. Students will complete a large end-of-course project where they will practice project development skills to create an app to solve a specific problem.


Units: 15
Timeframe: Year
Contact Hours: 125

By the Numbers

Contact Hours 125
Lessons 75
Videos 50
Exercises 108
Challenges 17
Offline Handouts 60


Unit Description
Introduction to Mobile Apps: Students will be introduced to the mobile apps course and the React Native framework and its program structure and syntax. Students will also preview some of the tools and technologies they will use to build and run their apps.
Components and the Stylesheet: Students are introduced to components, the backbone of building apps with React Native. They learn about the stylesheet object and how to add custom style attributes to their apps.
Buttons and Text Boxes: Students use the TouchableHighlight to create "buttons" that add a layer of functionality. Students also learn about how to create and use text boxes in their programs.
Advanced Layouts and Images: Students learn how to add images to their apps to further customize the building experience. They gain a deeper understanding of mobile apps layouts using Flex values and the Dimensions API.
App Build: Recreate a Popular App: Students apply their knowledge of components, images, buttons, text boxes, and layouts to recreate a screen of a popular app. They will go through this process in steps, taking time to plan their layout and think about the functionality of the app. They may return to the app later to add on additional functions as new concepts are learned.
Events and State: Students learn how to use state values and how to update the state of their app in various ways to create quick, dynamic programs. They will learn how mathematical equations and string methods can be used to alter values as the user interacts with their programs.
Creating Multiple Screens: Students learn how to take their apps to the next level by adding in functionality that allows for content and interactivity on multiple screens.
Working with Conditionals: Students use conditionals to allow for more flexible apps. They also learn how parameters are used inside functions.
App Build: Currency Converter: Students apply their knowledge of components, events, state, conditionals, and more to build a currency converter app. Students use the Stylesheet to create a user friendly layout that can convert multiple currencies!
Using Collections of Data: Students learn how to use arrays to organize and use larger data sets in their programs. They’ll learn how to use mapping to quickly assign styling and layouts to large amounts of data.
Working with ScrollView: Students learn how to use ScrollView inside their programs to show more content on one page than can fit on the screen. Students learn how to scroll through images and text and how mapping can be used with ScrollView to move through large sets of data.
App Build: Image Feed App: Students apply concepts from previous modules to build an image feed app. Students use control structures, state, and object mapping to display a number of photos, comments, and other information with the ability to "like" photos!
Designing User Interfaces: Students are introduced to the theory and practice of user interface design. Students learn about what makes an engaging and accessible user interface, and will employ an iterative design process including rapid prototyping and user testing to design and develop their own engaging mobile apps.
End of Course App Build: Students will use everything they have learned in this course to design, prototype, and code their own custom app and present it to their class In this project-facing module.
Final: Students will prove their knowledge of all concepts learned throughout the course through a final exam.

Format of Course

The course utilizes a blended classroom approach. The content is a mix of web-based and physical activities. Students will modify existing code and run it in the browser and on their personal mobile devices with the use of Expo, a free open-source toolchain built for running React Native apps with React and JavaScript, create personalized apps, create digital presentations, and engage in in-person collaborative exercises with classmates. Teachers utilize tools and resources provided by CodeHS to leverage time in the classroom and give focused 1-on-1 attention to students.

Who is it for?

The Mobile Apps course is designed for computer science students with the following experience:

  • At least one year of JavaScript
    • React Native is a professional framework that has a need for understanding advanced JavaScript concepts such as objects, mapping, and basic logic.
  • At least one year of Web Design using HTML and CSS
    • Web Design experience will help students when learning how to layout and style their apps, as the concept of tags are used heavily and the formatting of the React Native StyleSheet is similar to CSS.
This course will require students to engage in documentation research and learn to utilize external resources to validate their code.


Students develop responsive layouts:
SnapChat Login Screen
They learn to use state to control values and develop apps with multiple screens:
RSVP Tracker
They will develop a 'Scorekeeper' app in pieces throughout the length of the course:


Interested in teaching the Mobile Apps course with CodeHS? Get in touch, so we can help you bring CodeHS to your school!

Bring to My School