This document provides an overview of a mobile programming course. It will cover designing cross-platform mobile apps using tools like NodeJS and VS Code. Students will learn to create custom user interfaces, handle user interactions, navigate between screens, and communicate with servers. The course will also explore mobile platforms like iOS and Android, different approaches to mobile development including native, hybrid and cross-platform frameworks, and the React Native JavaScript framework.
This document provides an overview of a mobile programming course. It will cover designing cross-platform mobile apps using tools like NodeJS and VS Code. Students will learn to create custom user interfaces, handle user interactions, navigate between screens, and communicate with servers. The course will also explore mobile platforms like iOS and Android, different approaches to mobile development including native, hybrid and cross-platform frameworks, and the React Native JavaScript framework.
Đào Trung Kiên @ MICA Institute & Dept. of Comm. Eng., SEEE, Hanoi Univ. of Science and Technology Course Overview
2 AC3040: Mobile Programming
Đào Trung Kiên @ MICA Institute & Dept. of Comm. Eng., SEEE, Hanoi Univ. of Science and Technology Introduction Mobile Programming (AC3040) Structure: Assiduity: Lectures + Assignments Midterm project Final exam Tools: NodeJS A good textcode editor: VS Code
3 AC3040: Mobile Programming
Đào Trung Kiên @ MICA Institute & Dept. of Comm. Eng., SEEE, Hanoi Univ. of Science and Technology Course Objectives At the end of this class, you will be able to: Design and implement cross-platform mobile GUI Customize the style of GUI elements Handle and response to user activities Control the navigation between screens Implement the two-way communication with a server And beyond: Understand the mobile programming model and apply this to your designs Speak the mobile programming lingo Have fun with mobile development, and enjoy creating apps!
4 AC3040: Mobile Programming
Đào Trung Kiên @ MICA Institute & Dept. of Comm. Eng., SEEE, Hanoi Univ. of Science and Technology Mobile Platforms
5 AC3040: Mobile Programming
Đào Trung Kiên @ MICA Institute & Dept. of Comm. Eng., SEEE, Hanoi Univ. of Science and Technology Mobile Devices Computers small enough to hold and operate in the hand Cell phones Laptops Tablets Smart watches Smart cards Mobile cameras Mobile sensors Robots Smart cars …
6 AC3040: Mobile Programming
Đào Trung Kiên @ MICA Institute & Dept. of Comm. Eng., SEEE, Hanoi Univ. of Science and Technology History of Mobile Devices
7 AC3040: Mobile Programming
Đào Trung Kiên @ MICA Institute & Dept. of Comm. Eng., SEEE, Hanoi Univ. of Science and Technology Modern Mobile Devices Rich in types: smartphones, tablets, smart watches, smart TVs, smart cars,… Most common characteristics: (Touchable) flat screen(s) Voice capabilities Wireless communications Rich sensors: GPS, camera,… Operating system Platform convergence iOS Android
8 AC3040: Mobile Programming
Đào Trung Kiên @ MICA Institute & Dept. of Comm. Eng., SEEE, Hanoi Univ. of Science and Technology Mobile Development
9 AC3040: Mobile Programming
Đào Trung Kiên @ MICA Institute & Dept. of Comm. Eng., SEEE, Hanoi Univ. of Science and Technology What is It? Building and maintenance of apps that run on mobile devices Make apps work Make apps work fast Make apps look great
What do mobile devs need?
It depends on their choices! For students of this course: JavaScript
10 AC3040: Mobile Programming
Đào Trung Kiên @ MICA Institute & Dept. of Comm. Eng., SEEE, Hanoi Univ. of Science and Technology The Rise of Mobile Apps Internet is more and more ubiquitous, with very high-speed and wireless connections Mobile devices are equipped with more and more powerful capabilities ➔ Mobile is now one of important application/service development and distribution platforms (besides desktop, web)
11 AC3040: Mobile Programming
Đào Trung Kiên @ MICA Institute & Dept. of Comm. Eng., SEEE, Hanoi Univ. of Science and Technology Growth of Mobile App Market
12 AC3040: Mobile Programming
Đào Trung Kiên @ MICA Institute & Dept. of Comm. Eng., SEEE, Hanoi Univ. of Science and Technology Early Mobile Development Low level coding Highly device-dependent coding Low availability of resources: CPU, memory No real OS
1st “smart” phone:
Simon in 1993 by IBM Touchscreen Apps: calendar, clock, email, games, notepad
13 AC3040: Mobile Programming
Đào Trung Kiên @ MICA Institute & Dept. of Comm. Eng., SEEE, Hanoi Univ. of Science and Technology Next Mobile Platforms Psion EPOC in 1990s for PDAs: 32-bit OS, 2MB RAM Palm OS in 1996 for PDAs WML (Wireless Markup Language): light version of HTML Java ME Symbian
Psion EPOC Psion EPOC Symbian
14 AC3040: Mobile Programming Đào Trung Kiên @ MICA Institute & Dept. of Comm. Eng., SEEE, Hanoi Univ. of Science and Technology Modern Mobile Platforms iOS Apple, 2007 Kernel: XNU Android: Google, 2008 Kernel: Linux Windows Phone Microsoft, 2010 Discontinued in 2020
High level languages
Fast development 15 AC3040: Mobile Programming Đào Trung Kiên @ MICA Institute & Dept. of Comm. Eng., SEEE, Hanoi Univ. of Science and Technology Most Common Mobile Platforms Nowadays Share of sales to end-users
16 AC3040: Mobile Programming
Đào Trung Kiên @ MICA Institute & Dept. of Comm. Eng., SEEE, Hanoi Univ. of Science and Technology Approach Classification
Development Native Mobile
Hybrid
Cross-Platform Native
17 AC3040: Mobile Programming
Đào Trung Kiên @ MICA Institute & Dept. of Comm. Eng., SEEE, Hanoi Univ. of Science and Technology Native Approach Frameworks offered by the platform providers themselves Best performance, compatibility, user experience Not portable to other platforms High maintenance cost
Android: Java, Kotlin
iOS: Swift, Objective-C
18 AC3040: Mobile Programming
Đào Trung Kiên @ MICA Institute & Dept. of Comm. Eng., SEEE, Hanoi Univ. of Science and Technology Hybrid Approach Cross-platform frameworks using web technologies HTML, CSS, JavaScript App is basically composed of web pages Low development cost
Most popular ones:
Cordova: by Apache Ionic: by Drifty
19 AC3040: Mobile Programming
Đào Trung Kiên @ MICA Institute & Dept. of Comm. Eng., SEEE, Hanoi Univ. of Science and Technology Cross-Platform Native Approach Cross-platform frameworks for native apps Write once in an intermediate language Build specifically for different platforms Native UI, good performance and UX
Most popular ones:
Xamarin: by Microsoft C# Flutter: by Google Dart React Native: by Facebook JavaScript
20 AC3040: Mobile Programming
Đào Trung Kiên @ MICA Institute & Dept. of Comm. Eng., SEEE, Hanoi Univ. of Science and Technology Dev Communities
21 AC3040: Mobile Programming
Đào Trung Kiên @ MICA Institute & Dept. of Comm. Eng., SEEE, Hanoi Univ. of Science and Technology Introduction to React Native React Native: JavaScript framework for developing real, native apps for iOS and Android Based on ReactJS – a framework mainly for web development Using native components Learning curve
JavaScript HTML, CSS ReactJS React Native
22 AC3040: Mobile Programming
Đào Trung Kiên @ MICA Institute & Dept. of Comm. Eng., SEEE, Hanoi Univ. of Science and Technology