Mobile Platforms and Application Development

Introduction to Platform-Based Development (PBDE401 | PBDV301)

  • Department: Information Technology

  • Lecturer: Freedom Khubisa

  • Subject Codes: PBDE401 and PBDV301

  • Topic: Intro: Mobile Platforms, Programming Languages, and Location-Aware Apps

  • Institutional Framework (ENVISION2030): The Durban University of Technology (DUT) emphasizes core values including:     * Fairness     * Professionalism     * Commitment     * Compassion     * Excellence     * Transparency     * Honesty     * Integrity     * Respect     * Accountability

Lesson Objectives

  • Definition and Purpose: Define mobile applications (apps) and explain their specific utility on mobile hardware like smartphones and tablets.

  • Classification: Identify and distinguish between the three primary categories of mobile apps: Native, Cross-platform, and Hybrid.

  • Hardware Interaction: Describe the mechanisms through which mobile apps interface with device hardware and Application Programming Interfaces (APIs).

  • Value Proposition: Explain the specific benefits mobile apps provide to both individual users and business entities.

Components of Mobile Platforms

  • Operating Systems (OS): The base software that manages hardware resources.

  • Development Frameworks: The structured environments used to build applications.

  • Programming Languages: The syntax and logic used to write the app code.

  • Application Programming Interfaces (APIs): Protocols that allow apps to communicate with the OS and hardware.

  • Tools: Software and environments (IDEs) used for development and debugging.

Analysis of Widely Used Mobile Platforms

Major Operating Systems
  • Android: Currently the most widely used mobile OS globally.

  • iOS: The platform for Apple mobile devices.

  • HarmonyOS: Huawei’s proprietary operating system.

  • KaiOS: An operating system for feature phones with smartphone-like capabilities.

Historical and Secondary Platforms
  • Series 40 (Nokia)

  • SymbianOS

  • BlackBerry OS

  • Samsung bada

  • MeeGo

  • Tizen

  • Windows Phone

Mobile Operating System Market Share Analysis (200920232009-2023)
  • Historical Data (20092009):     * Symbian: 46.88%\approx 46.88\% market share.     * BlackBerry OS: 20.33%\approx 20.33\% market share.     * iOS: 14.75%\approx 14.75\% market share.     * Android: Significantly lower in the early period (2.4%\approx 2.4\% in early 20092009).

  • Recent Trends (201720222017-2022):     * Android Dominance: Stable at high percentages, reaching peak values such as 81.08%81.08\% in 20172017 and maintaining around 72.47%72.47\% in 3Q223Q'22.     * iOS Stability: Shows a steady presence, oscillating between 19.29%\approx 19.29\% (in 20172017) and 28.46%\approx 28.46\% (in 1Q221Q'22).     * Decline of Others: Platforms like Windows Phone and BlackBerry OS dropped to effectively 0%0\% by 20202020.     * KaiOS Presence: Maintains a small but distinct niche share, peaking around 0.76%0.76\% in 1Q191Q'19.

Mobile Platform Core Functions

  • Process Management: Coordinating the execution of multiple applications and background services.

  • Memory Management: Allocation and deallocation of system RAM to ensure smooth performance.

  • Device & Hardware Management: Interfacing with the camera, microphone, sensors, and storage.

  • Security Management: Handling permissions, encryption, and user data protection.

  • User Interface (UI) Management: Rendering graphics and handling user touch/input events.

  • Networking & Communication: Managing Wi-Fi, Bluetooth, mobile data, and NFC connections.

  • Application Lifecycle Management: Controlling app states (e.g., Active, Background, Suspended, Terminated).

  • Power & Battery Management: Optimizing energy consumption to extend device battery life.

Classification and Categories of Mobile Applications

Mobile applications are software programs specifically optimized for mobile hardware. Common categories include:

  • Social Media: Tools for networking and content sharing (e.g., Instagram, Facebook, Twitter (X), TikTok, Snapchat).

  • Messaging: Real-time communication platforms (e.g., WhatsApp, Telegram, Messenger).

  • Entertainment: Media consumption services (e.g., Spotify, Netflix, YouTube).

  • Productivity: Tools for professional and personal tasks (e.g., Microsoft Teams, Google Docs, Evernote, Zoom).

Mobile Application Development Strategies

Comparative Analysis: Native vs. Hybrid vs. Cross-Platform

Feature

Native Apps

Hybrid Apps

Cross-Platform Apps

Debugging

Uses native debugging tools.

Uses both Native and Web development debugging tools.

Dependent on the specific framework used.

Codebase

Individual coding; separate for each platform (Android/iOS).

Single codebase with potential platform-specific capabilities.

Single codebase with potential platform-specific capabilities.

Pros

High performance; full access to device and OS features; UI updates with the OS.

Multi-OS support; customization potential; code reuse.

UI elements nearly identical to Native; near-Native look and feel; code reuse.

Cons

No code reusability; supports single platform only.

Performance issues; OS feature access restrictions.

Poor performance compared to Native; limited feature access.

Dependency

Less dependent on open-source libraries/third-party platforms.

Extensively dependent on various libraries and tools.

Extensively dependent on various libraries and tools.

Rendering Engine

Native.

Browser.

Native.

Tools

XCode, AppCode, Android Studio.

Ionic, Apache Cordova, Visual Studio.

React Native, Flutter, Xamarin.

Cost

Higher.

Cost-effective.

Cost-effective.

Time to Market

Time-consuming (one platform at a time).

Time-saver due to code reuse.

Time-saver due to code reuse.

Decision Framework for Development Approach

To choose an approach, developers should follow this logic:

  1. Cost Constraint: If the app must be built as cheaply as possible, choose Hybrid.

  2. Performance vs. Time: If limited performance is acceptable to reduce time-to-market, choose Hybrid.

  3. Hardware Requirements: If hardware functions like Camera or GPS are essential requirements, consider Cross-platform or Native.

  4. Application Type: E-commerce apps may benefit from Progressive Web App (PWA) approaches.

  5. Team Resources: If the organization is ready to have two separate development teams for separate codebases, choose Native.

Mobile Programming Languages and Frameworks

  • Swift: Primary language for native iOS development.

  • Kotlin: Primary language for native Android development.

  • JavaScript (JS): Used for React Native and Ionic frameworks.

  • Dart: The language used for the Flutter framework.

  • C#: Used with .NET MAUI (formerly Xamarin) for cross-platform development.

  • PWA (Progressive Web Apps): Leverage web technologies to offer an app-like experience.

Mobile Platform Architectures

Architectural patterns define how logic, data, and UI interact:

  • MVC (Model-View-Controller):     * Model: Data and logic.     * View: User interface.     * Controller: Handles input and updates the View/Model.

  • MVP (Model-View-Presenter):     * Model: Data and logic.     * View: Interface that reflects the Presenter.     * Presenter: Acts as the logic layer between the View and Model.

  • MVVM (Model-View-ViewModel):     * Model: Data source.     * View: Data-bound interface.     * ViewModel: Exposes data of the Model to the View.

Location-Aware Applications

These applications utilize geographic data to provide context-specific services. The primary technologies used include:

  • GPS (Global Positioning System): Satellite-based positioning.

  • Wi-Fi Positioning: Determining location based on nearby wireless networks.

  • Cell Tower Triangulation: Using the signal strength and location of mobile carrier towers.

Benefits of Mobile Apps From a Business Perspective

  • Brand and Marketing: Boost brand awareness, personalize marketing strategies, and maximize social media benefits.

  • Customer Relations: Enhance customer connections, foster customer loyalty, and deliver continuous value.

  • Growth and Engagement: Increase engagement levels, seize niche market opportunities, and drive revenue.

Key Factors to Consider in Mobile App Development

  • Targeted Device: Identifying the specific OS platform.

  • UI and UX: Prioritizing User Interface and User Experience design.

  • Device Features: Ensuring access to native hardware features via APIs.

  • Performance: Optimizing for speed and responsiveness.

  • Scalability: Ensuring the app is easily upgradeable.

  • Security: Protecting user data and system integrity.

  • Cost: Balancing development budget with requirements.