In this course, you will learn how to build web experiences that adapt to the different screen sizes and capabilities that mobile devices offer, and how to scalably optimize media for mobile and desktop. We will cover programming touch interaction, as well as how to optimize form field input for mobile devices and use APIs like geolocation and the accelerometer, and ensuring your web experiences work great when network conditions are sub-optimal. Finally, you’ll gain the tools to investigate performance in mobile applications, with a strong understanding of mobile networking, battery usage patterns and optimizing paint techniques to build smooth animations on mobile.
### Lesson 01: Syllabus
We’ll start with a high-level overview of the course and what to expect in it. We’ll also go into more depth on what we mean by mobile web development, and why you should care about it.
### Lesson 02: Mobile Development Tools
Workflow and tooling is incredibly important for building great web apps, and this carries over to mobile web development. This lesson will show you how to use the Chrome Developer Tools to develop for the mobile web.
### Lesson 03: Mobile UX and Viewport
Designing for the mobile web is all about a smooth user experience. This lesson will get you thinking about how to achieve that on mobile, and we’ll introduce the first of many tools you need to achieve this: the viewport.
### Lesson 04: Fluid Design
Mobile means lots of different devices and form factors. We’ll discuss how to make your site responsive, clean, and user-friendly on multiple devices and layouts.
### Lesson 05: Media Queries
Sometimes different devices call for fundamentally different layouts. This lesson will teach you how to achieve this using media queries.
### Lesson 06: Responsive Images
Media requirements are different in mobile - network constraints and very high resolution screens set up a conflict that can be challenging. We’ll talk about how best to integrate media into your mobile web applications, and adaptively scaling images based on the environment.
### Lesson 07: Optimizing Performance
Users expect a fast, seamless experience on mobile. We’ll go over optimizing various performance metrics to improve that experience, such as network, cpu, rendering, and battery performance.
### Lesson 08: Touch
Touch input is fundamentally different from mouse input, and requires you to think about your user interactions differently. We’ll go over UX concerns with touch-based interaction, and how to design user interactions that work across devices.
### Lesson 09: Input
Using a keyboard on mobile is awful. We’ll discuss ways to improve it, using semantic input for form data, and other user input options on mobile.
### Lesson 10: Device Access
Mobile devices have a full array of sensors typically unavailable on desktop. We’ll talk about camera access, geolocation, and other sensors and feedback you have access to on mobile.
### Lesson 11: Offline and Storage
It’s an unfortunate reality that mobile users aren’t always online. We’ll go over using the local cache as well as local storage APIs to give your users a great offline (and partially-online) experience as well.
### Lesson 12: Wrap-up
We’ll finish up the class by talking briefly about other topics to consider, such as app experience, monetization, deployment and distribution. We’ll also point you to other resources to look at moving forward in your career.