KEMBAR78
Lecture 01 | PDF | Smartphone | Mobile App
0% found this document useful (0 votes)
8 views55 pages

Lecture 01

The document outlines a course on Mobile Application Development, covering topics such as mobile technologies, Android development, user interface design, and mobile application testing. It includes statistics on smartphone usage, the evolution of mobile technologies, and various development approaches like native, hybrid, and mobile web applications. Additionally, it discusses mobile application architecture, design patterns, dependency management, and guidelines for app distribution and review.

Uploaded by

danushka3600
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views55 pages

Lecture 01

The document outlines a course on Mobile Application Development, covering topics such as mobile technologies, Android development, user interface design, and mobile application testing. It includes statistics on smartphone usage, the evolution of mobile technologies, and various development approaches like native, hybrid, and mobile web applications. Additionally, it discusses mobile application architecture, design patterns, dependency management, and guidelines for app distribution and review.

Uploaded by

danushka3600
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 55

Mobile Application Development

IC 2305

INTRODUCTION TO MOBILE
TECHNOLOGIES AND APPLICATIONS
Mr. Chathura Mahasen Bandara
(Lecturer - p) Department of Information and
Communication Technology, University of Colombo
COURSE OUTLINE
▸ Introduction to Mobile Technologies and Applications
▸ Introduction to Android Development
▸ Creating Applications and Activities
▸ Designing User Interfaces
▸ Intents and Broadcast Receivers
▸ Android Network Programming
▸ Files, Saving State, and Preferences
▸ Databases and Content Providers
▸ Background Threads
▸ User Experience
▸ Mobile Application Testing
CONTENT
• Evolution of Mobile Technologies
• Smartphone Statistics
• History of Mobile Application Development
• Common Types of Mobile Application Development
• Source Control
• Mobile Application Architecture
• Design Patterns
• Dependency Management
• Mobile Application Testing
• Continuous Integrations
• Mobile Release Management
• Mobile Application Distribution
• Mobile Application Review Guidelines
EVOLUTION OF MOBILE TECHNOLOGIES
▸ Mobile technology is the technology used for cellular
communication.

▸ Enhancements in Mobile Data Transfer speeds since


1980s. (1G to 5G)

▸ Enhancements in Mobile Hardware. Processor, RAM,


Internal Storage, Sensors, SIM

▸ Mobile phone, GPS Device, Internet Communicator, Music


Player, Gaming Console, Smart Watches, Vehicle
Infotainment Systems etc.

▸ Mobile Application Development is the future of Software


Development according to Google's Eric Schmidt. 2010
MOBILE PHONE EVOLUTION
CAR PLAYER AND SMART WATCHES
DEVICE OWNERSHIP
SMARTPHONE STATISTICS (GLOBAL)
▸ 6.84 Billion Smartphone users around the world. (2023)

▸ Almost 16.8 billion mobile devices are currently in use. (2023)

▸ In 2018, there were around 1.56 billion smartphones sales


worldwide.

▸ 81.6% Americans have Smartphones. (2023)

▸ 2009 marked the year that more people accessed the Internet
for the first time from a mobile phone rather than a PC.

▸ 95% of internet users worldwide visit the Web on a mobile


device. (2023)

▸ There are 14 million + jobs directly related to the mobile


industry. (2023)
SMARTPHONE STATISTICS (GLOBAL)
▸ 66% of smartphone users are addicted to their phones.

▸ China is the leader in smartphone market share.

▸ South Korea, the leader in smartphone ownership. 94%


smartphone owners, 6% non-smartphone.

▸ 82% Americans have Smartphones. UK 82%.

▸ There were 230 billion apps downloads in 2023 worldwide.

▸ The most Samsung and Apple are again neck-


and-neck

▸ 88% of smartphone owners use their phone while


driving.
SMARTPHONE STATISTICS (GLOBAL)
▸ 80% of shoppers use a mobile phone in a physical store.

▸ People view 4.2x more products per session within apps,


compared to mobile sites.

▸ 90% of travellers use mobile devices to book travel activities.


(2023)

▸ The iPhone 14 is the best-selling smartphone for the first quarter


of 2023.

▸ The most popular smartphone brand in the world is Samsung


and Apple (2023).

▸ Apple iPhone shipments declined by 4% during 2018, but


overall revenues for iPhone grew by 6%.

▸ Huawei and Xiaomi were among the fastest growing brands.


SMARTPHONE STATISTICS (GLOBAL)
▸ Smartphones with Android are the most popular amongst users.

▸ 70% of smartphones run Android compared to 25% for iOS.

▸ There are currently 3.3 billion active Android devices.

▸ The global mobile ecosystem generated $4.5 trillion in 2023.

▸ There are over 3.4 million available apps at Google Play Store and 2.2
million apps available in the Apple’s App Store.

▸ The App stores revenue was $130 billion in 2023.

▸ By 2020, mobile apps are predicted to be worth approximately 189


billion U.S. dollars in revenues via app stores and in-app advertisement.
SMARTPHONE STATISTICS (LOCAL)
SMARTPHONE STATISTICS (LOCAL)
SMARTPHONE STATISTICS (LOCAL)
SMARTPHONE STATISTICS (LOCAL)
Best-selling smartphones (2023)
FUN FACTS
▸ In Germany / Netherland, there are traffic lights on the
ground for distracted phone users.
FUN FACTS
▸ In Finland, there is an annual “mobile phone throwing”
championship.
HISTORY OF MOBILE APPLICATION DEVELOPMENT

▸ In 1973 at Motorola, made the first call on a Mobile Phone.

▸ First ever smartphone was launched by IBM in 1993. R&D


team at IBM built the first smartphone app.

▸ Personal Digital Assistants (PDAs) were developed in 1996


by Palm Inc.
HISTORY OF MOBILE APPLICATION DEVELOPMENT

▸ 1996 - Palm OS by Palm Inc. for PDAs.

▸ Primarily coded in C, C++.


HISTORY OF MOBILE APPLICATION DEVELOPMENT

▸ WAP (Wireless Application Protocol) Applications.

▸ Technical standard for accessing information over a mobile


wireless network.
HISTORY OF MOBILE APPLICATION DEVELOPMENT

▸ 1998 - Symbian OS, Joint venture of Ericsson, Motorola,


Nokia and PSION.

▸ Most popular smartphone OS on a worldwide average


until the end of 2010. Overtaken by iOS and Android.

▸ C++, Qt SDK or Carbide IDEs.


HISTORY OF MOBILE APPLICATION DEVELOPMENT

▸ 1999 - Java ME Run Time, J2ME.

▸ Developed using tools such as the Sun Java Wireless


Toolkit (formerly J2ME Wireless Toolkit). They are
packaged as JAR files.
HISTORY OF MOBILE APPLICATION DEVELOPMENT

▸ 2002 - Blackberry OS, proprietary OS developed by RIM


(Research in Motion).

▸ The BlackBerry Java Development Environment (JDE),


which combines an SDK, an IDE, and a set of simulators,
has tortured developers for years.
HISTORY OF MOBILE APPLICATION DEVELOPMENT

▸ 2002 - Windows CE, Windows Embedded Compact,


Windows Mobile (Pocket PC Devices).

▸ Windows CE is optimized for devices that have minimal


memory; a Windows CE kernel may run with one
megabyte of memory.

▸ Microsoft Visual Studio

▸ Visual Basic, C#
MOBILE PLATFORMS AND OPERATING SYSTEMS

▸ 2007 - Apple introduced iPhone, run on iOS (Initially


known as iPhone OS).

▸ 2008 - HTC Dream, first Android Phone, Android OS, by


Google.
MOBILE PLATFORMS AND OPERATING SYSTEMS

▸ 2010 - Bada OS, by Samsung (Discontinued in 2013).

▸ 2010 - Windows Phone (WP) OS, by Microsoft is a


replacement successor to Windows Mobile. (Discontinue
on December, 2019).
SMART PHONE SALES
SMART PHONE SALES
GLOBAL SMARTPHONE MARKET SHARE
US SMARTPHONE MARKET SHARE
MOBILE APPLICATION DESIGN
▸ Keep your design simple and intuitive.

▸ Strictly follow the platform guidelines.

▸ Mobile first: touch, voice, pressure, location tracking, accelerometer,


notifications, augmented reality, etc. And consider limitations.

▸ Keep it consistent.

▸ Provide perceptible feedback.

▸ Designs must be finger-friendly.

▸ Keep scalability in mind.

▸ Consider user behavior and psychology. Demographics, Interests,


Geo Location, etc.
NATIVE MOBILE APPLICATION DEVELOPMENT
▸ Using platform specific APIs.

▸ Different programming languages on different platforms.

▸ Offers best performance out of all three development approaches.

▸ Runs more smoothly compared to other approaches.

▸ Receives complete support from official manufactures.

▸ User experience is far superior and specific for platform audience.

▸ Assures quality, security, and device compatibility.

▸ Require experienced developers and might not be the best option


for simple applications.
IOS NATIVE APPLICATION DEVELOPMENT
▸ Must go together with iOS Human Interface Guidelines.

▸ Xcode is the official IDE for development, debugging,


testing, profiling, and distribution.

▸ Programmed in Objectie-C or Swift.

▸ Swift is the recommended programming language of


choice for development since late 2014.

▸ Swift playgrounds app will help you start development.


ANDROID NATIVE APPLICATION DEVELOPMENT
▸ Must go together with Android Design Guidelines.
Currently Material Design.

▸ Android Studio is the official IDE for development,


debugging, testing, profiling, and distribution.

▸ Command line tools can also be used for specific tasks.

▸ Programmed in C++ (NDK), Java, and Kotlin (SDK).

▸ Kotlin was announced as an official Android development


language at Google I/O 2017.
HYBRID MOBILE APPLICATION DEVELOPMENT
▸ Supports both platforms iOS and Android.

▸ Single codebase maintenance.

▸ Suitable for simple mobile application development.

▸ React Native, Flutter, Ionic, Framework 7, PhoneGap.

▸ React primitives render to native platform UI, meaning app


uses the same native platform APIs other apps do.
Programmed in JavaScript.

▸ Flutter draws its own UI, using hardware-accelerated


graphics, which feel natively fast. Programmed in Dart.
HYBRID MOBILE APPLICATION DEVELOPMENT
MOBILE WEB APPLICATION DEVELOPMENT
▸ Responsive Design.

▸ HTML5, CSS, JavaScript.

▸ Relatively easiest approach to maintain.

▸ Less expensive upfront.

▸ Less discoverability and branding opportunities.

▸ Poor performance and does not match with platform


specific usages.

▸ Depends on the browser to run the app.


OUTDATED MOBILE DEVELOPMENT TECHNOLOGIES

▸ Symbian OS C++ Application Development

▸ Sun/Oracle J2ME Application Development

▸ RIM Blackberry OS Java Development

▸ Microsoft Windows Mobile Development

▸ Samsung Bada OS C+ Development


BACK-END DEVELOPMENT TOOLS
▸ Any Server-side scripting languages like Ruby, Java, Python, PHP,
Perl, Erlang, Node.js, etc. can be used to build the backend.

▸ Web servers are programs that store, process, and deliver web
pages and APIs to the users. The communication between client
and server is carried out with the use of HTTP/HTTPS (HTTPS is
recommended). Apache, Microsoft’s IIS, and NGINX.

▸ DBMS - Oracle, MySQL, Redis, PostgreSQL, MongoDB, SQLite


(Embedded).

▸ Microservice platforms such as Docker. [Providing - Isolation and


Portability, Scalability, Resource Efficiency, CI/CD, Version Control]

▸ Collaboration services such as Slack, Asana, Jira, Trello.

OS
FRONT END DEVELOPMENT TOOLS
▸ Xcode for iOS

▸ Android Studio for Android


SOURCE CONTROL
▸ Source control (or version control) is the practice of tracking and
managing changes to code.

▸ Source control management (SCM) systems provide a running history of


code development and help to resolve conflicts when merging
contributions from multiple sources.

▸ SVN is a software versioning and revision control system distributed as


open source under the Apache License.

▸ Git is an open-source distributed source code management system.

▸ Git is a distributed version control system, whereas SVN is a centralized


version control system. Git uses multiple repositories including a
centralized repository and server, as well as some local repositories.

▸ Github, Gitlab, Bitbucket offers online git repository management.


MOBILE APPLICATION ARCHITECTURE
▸ MVC (Model View Controller).

▸ MVP (Model View Presenter).


MOBILE APPLICATION ARCHITECTURE
▸ MVVM (Model View View Model).

▸ VIPER
DESIGN PATTERNS
▸ A design pattern is a general repeatable solution to a commonly
occurring problem in software design.

▸ Singleton (Creational Pattern)

▸ Builder (Creational Pattern)

▸ Adapter (Structural Pattern)

▸ Facade (Structural Pattern)

▸ Command (Behavioral patterns)

▸ Observer (Behavioral patterns)

▸ The architectures we discussed also fall under behavioral patterns.


DEPENDENCY MANAGEMENT
▸ Dependency management is a technique for declaring,
resolving and using dependencies required by the project
in an automated fashion.

▸ iOS - Cocoapods, Carthage, Swift Package Manager

▸ Android - Android Studio supports Gradle build system.


Using build.gradle files in app module and project.

▸ Flutter – Pub

▸ ReactNative – NPM or YARN


MOBILE APPLICATION TESTING
▸ Mobile application testing is a process by which application software
developed for handheld mobile devices is tested for its functionality,
usability and consistency.

▸ Can be tested on real devices and emulators.

▸ Developer testing (Unit and UI), Functionality testing, Performance


Testing, Usability testing.

▸ Alpha, Beta testing usually done before production releases.

▸ Testflight is the beta testing app for iOS distributions.

▸ Google play store supports direct alpha and beta testing of


distributions for invited users.

▸ Firebase (Previously Crashlytics) is a useful tool for crash reporting.


CONTINUOUS INTEGRATIONS AND DELIVERY (CI/CD)
▸ Continuous Integration (CI) is a development practice that
requires developers to integrate code into a shared repository
several times a day. Each check-in is then verified by an
automated build, allowing teams to detect problems early.

▸ iOS - Xcode Server allows you to configure and run ‘Bots’ to


execute tests within your project. Does not support pushing
the builds to the app store.

▸ Android, iOS - Jenkins Server together with Fastlane can


automate build process and distribution.

▸ Fastlane is an open source platform aimed at simplifying


Android and iOS deployment.
MOBILE RELEASE MANAGEMENT
▸ Short and continuous mobile release cycles.

▸ Automated testing is useful for quick releases.

▸ Incremental Rollout to Production.

▸ Releases need to be tagged in source control system.

▸ Release Notes and approvals need to be tracked.


MOBILE APPLICATION DISTRIBUTION
▸ iOS Apps - Apple AppStore - 99$ Annual Fee

▸ Xcode, iTunes/AppStore Connect

▸ Android Apps - Google PlayStore - 25$ one-time


registration fee

▸ Google Play Console


MOBILE APPLICATION REVIEW GUIDELINES
▸ Test your app for crashes and bugs.

▸ Ensure that all app information and metadata is complete and accurate.

▸ Apps should not include content that is offensive, insensitive, upsetting,


intended to disgust, in exceptionally poor taste, or just plain creepy.

▸ Submissions should be final versions with all necessary metadata and


fully functional URLs included; placeholder text, empty websites, and
other temporary content should be scrubbed before submission.

▸ Strictly follow platform guidelines for purchases, deviating platform


guidelines may reject or completely remove your app from appstores.
PREPARATIONS FOR NEXT LECTURE
▸ Read Android Design and Quality Guidelines

▸ Specifically Components section for Phones and Tablets

https://developer.android.com/design

▸ Questions

▸ Email – chathura@ict.cmb.ac.lk

You might also like