Mobile Application Development Lecture PDF
Document Details
Uploaded by AudibleSilver699
University of Kelaniya
Tags
Related
- Mobile Application Development Lecture Notes PDF
- Mobile Application Development PDF
- Introduction-to-Application-Development-and-Emerging-Technologies.pptx
- Roles Played by Technological Advancements PDF
- Introduction au Développement Mobile Natif et Cross-plateforme PDF
- Mobile Computing and Android Development PDF
Summary
This document is a lecture on mobile application development. It covers a range of topics, including mobile technologies, mobile phones, the history of development technologies, design patterns, and more.
Full Transcript
Mobile Application Development CTEC 31023 - 01 INTRODUCTION TO MOBILE TECHNOLOGIES AND APPLICATIONS COURSE OUTLINE ▸ Introduction to Mobile Technologies and Applications ▸ Introduction to Android Development and Kotlin ▸ Introduction to iOS Development and Swift ▸ Creating Applications and Activiti...
Mobile Application Development CTEC 31023 - 01 INTRODUCTION TO MOBILE TECHNOLOGIES AND APPLICATIONS COURSE OUTLINE ▸ Introduction to Mobile Technologies and Applications ▸ Introduction to Android Development and Kotlin ▸ Introduction to iOS Development and Swift ▸ 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 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, etc. ▸ Mobile Application Development is the future of Software Development according to Google's Eric Schmidt. 2010 MOBILE PHONE EVOLUTION SMARTPHONE STATISTICS ▸ In 2022, the number of global smartphone users is estimated at 6.8 billion. ▸ US adults spend an average of 02 hours 55 mins on their smartphones. 85% Americans have Smartphones. ▸ 69% of internet users prefer to look for reviews on their phones than approach an in-store employee. ▸ 2009 marked the year that more people accessed the Internet for the first time from a mobile phone rather than a PC. ▸ 67% of internet users worldwide visit the Web on a mobile device. ▸ ~12 million jobs directly supported by mobile eco system. SMARTPHONE STATISTICS ▸ 66% of smartphone users are addicted to their phones. ▸ China is the leader in smartphone market share (usage). ▸ South Korea, the leader in smartphone ownership. 94% smartphone owners, 6% non-smartphone. ▸ 77% Americans have Smartphones. UK 78%. ▸ There were 194 billion apps downloads in 2018 worldwide. ▸ The most popular smartphone brand in the world is Apple. ~30%, Samsung ~26% ▸ 88% of smartphone owners use their phone while driving. SMARTPHONE STATISTICS ▸ 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. ▸ 85% of travellers use mobile devices to book travel activities. ▸ Apple iPhone dominated the list of top 10 best-selling smartphones globally in 2021. ▸ 2021 smartphone marketshare shows Android (72%) to iOS (28%). ▸ 2022 smartphone marketshare shows Android (69%) to iOS (31%). ▸ Huawei and Xiaomi were among the fastest growing brands. SMARTPHONE STATISTICS ▸ Smartphones with Android are the most popular amongst users. ▸ In Q1 of 2018, around 86% of all smartphones sold to end users were phones with the Android operating system. ▸ There are currently 3 billion active Android devices. (Google I/O 2021) ▸ The global mobile ecosystem generated $1.1 trillion in 2018. ▸ There are over 2.5 million available apps at Google Play Store and 1.8 million apps available in the Apple’s App Store. ▸ The App stores revenue was $92.1 billion in 2018. ▸ Android and iOS app revenue reached $111 billion revenue in 2020, a 24 percent increase year-on-year. iOS was responsible for 65 percent of total app revenue in 2020. 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. FUN FACTS ▸ Google is reportedly paying Apple a whopping $9 billion in 2018. For ??? (10-12 billion $ in 2020) ▸ Samsung makes significant amount of money from Apple’s sales. How is that ??? 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 MOBILE VENDOR MARKET SHARE WORLDWIDE 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 ▸ Microsoft Windows Phone 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. ▸ Collaboration services such as Slack, Asana, Jira, Trello. 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. 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 ▸ 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$ Annual 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. ▸ Android Guidelines / iOS Guidelines PREPARATIONS FOR NEXT LECTURE ▸ Read Android Design and Quality Guidelines ▸ Specifically Components section for Phones and Tablets https://developer.android.com/design https://m3.material.io/components ▸ Questions ▸ Email - [email protected] [email protected]