Modern Mobile Web Development
Course Description
This course is aimed at web developers who would like to write applications targeting mobile devices without having to go the route of developing native applications for those devices. Any web developer has the background knowledge to create a mobile application using one of two techniques.
The first technique is creating a Progressive Web Application(PWA). PWAs are web applications that load like regular web pages or websites but can offer the user functionality such as full screen mode, install on desktop, working offline, push notifications and device hardware access traditionally available only to native applications.
The second technique is to use a library like React Native or Native Script. Both of these libraries are capable of taking an application developed using component techniques from React and Angular and compiling those applications to native applications. The beauty of using these technologies is that with some limitations you can have a single code base to create both Android and iPhone apps.
This course will take experienced web developers and give them experience developing for mobile devices using both of these techniques.
5 Days
Contact us for pricing
Prerequisites
The course is aimed at web developers with at least some experience of Angular or React. To get maximum benefit from this course candidates wwill have:● Experience with Web Application Development using HTML, CSS and JavaScript
● Thorough understanding of Node.js and the Node.js ecosystem
● Experience with component development using either Angular or React
Progressive Web Application Development
Introduction to PWAWhat is a PWA?
PWAs vs Native Mobile Apps
The Characteristics of a PWA
• Progressive
• Responsive
• Connectivity independent
• App-like
• Fresh
• Safe
• Discoverable
• Re-engageable
• Installable
• Linkable
A First PWA
App ManifestServing pages using https
Chrome developer tools
Testing on an emulated device
Testing on a real device
Service Workers
What is a service worker?Service worker events
Service worker lifecycle
Testing your PWA offline
Asynchronous Communication
AjaxPromises
Fetch
Understanding CORS
Caching
What is caching?Introduction to the Cache API
Serving files from the cache
Caching modes - cache only, network only, network falling back to cache, cache then network
Dynamic caching
Advanced offline operations
IndexedDB and Dynamic Data
Caching dynamic contentWhat is IndexedDB?
When to use caching and when to use IndexedDB?
Using Native Device Features
Installing - add to homescreenPush Notifications
Accessing device location
Accessing the camera
Auditing your PWA
Chrome developer toolsLighthouse
PWA checklist
Introduction To React Native Development
Getting Started with React NativeNative Mobile Development v's Hybrid Mobile Development
Understanding the node.js eco system
Installing ReactNative
Setting up development environment
Expo
Installing Android Emulator
React Native Hello World
Displaying Content
JSXCreating a Custom Component
JSX Rules
Working With Lists
Building ListsFlatList Element
Rendering a FlatList
FlatList props
Adding Navigation
Button TypesAdding Pages
Navigating using React Navigation
Building Reusable Components
Understanding PropsParent-Child Relationships
Parent-Child Communication
Adding Images
Passing an Image as a Prop
State Management
What is "State"Changing State
Validating State changes
What is a Reducer
Creating a Reducer
Applying State with a Reducer
Understanding Screen Layout
React Native LayoutBox Object Model
Aligning Items
FlexBox
Using Flex in Layout
Working With an API
AjaxIntroduction to Axios
Getting Data From an API
Crud Example
Component Lifecycle
What is the Component LifecycleReactNative Hooks
useState
useEffect
Working With Native Device Features
React Native DirectoryRequesting Permission
Using the Camera
Working with the Image Gallery
Uploading Images to a Web Application
Working With Location
Full stack web developmentProgressive Web ApplicationPWAJavaScriptTypeScriptAngularReactModern Web DevelopmentNode.jsReact NativeNativeScript