Open menu with table of contents Application Development Toolchain
Logo of Stuttgart Media University for light theme Logo of Stuttgart Media University for dark theme
Android Development

Application Development Toolchain

Stuttgart Media University

1 Agenda

  • Tools Overview
  • Integrated Development Environments for Android
  • Native Build Process
  • Version Control Systems
  • Testing Tools
  • Collaboration Tools
  • Continuous Integration

2 Basic Tools for App Development

  • An Integrated Development Environment (IDE) including (*optional):
    • Source-code editor*
    • Debugger*
    • Cross-Compiler
    • Linker*
  • Software Development Kit (SDK) for the target platform including:
    • Emulator & Simulator
    • Platform specific debug service
    • Platform libraries and source code or header files
    • Other build and platform relevant tools
  • Version Control System*, e.g. Git, SVN
  • Testing and Distribution Tools*, e.g. Bitrise, Firebase App Distribution
  • Collaboration and Project Management Software*, e.g. Gitlab, JetBrains Space, Jira, Trello, Slack
  • Continuous Integration Tools*, e.g. Jenkins

Most of the tools provide nowadays combined services.

3 Android IDE

For Android app development it is strongly recommended to use Android Studio.

Android Studio (based on IntelliJ IDEA): https://developer.android.com/studio

4 Native Build Process

center

5 Cross-Compilation

  • Different CPUs have different instruction sets
  • In order to run an application on a certain processor it has to be compiled to the machine code corresponding to the processors Application Binary Interface (ABI)

    center

6 Simulator & Emulator

  • Developing and deploying on the target device is time consuming
  • Debugging might be more difficult
  • Sometimes the target device is not available
  • Thus, development environments usually provide a simulator or emulator, e.g.:
  • XCode (iOS):
    • iPhone Simulator
  • Android SDK:
    • Android Emulator

7 Simulator vs. Emulator

Simulator Emulator
Software that imitates the behavior of a software system by providing the same set of interfaces as the simulated software Software that imitates the behavior of a computer device or other electronic system

8 Version Control System (VCS)

9 Why Version Control

  • Supports collaboration, i.e. development of source code in a team
  • Stores different versions of a software efficiently without using too much storage space
  • Keeps track and allows to restore older versions
  • Efficient backup tool for you work

10 Git Clients

  • Git client for Mac & Windows (next to the command line interface)
  • IDE integrations:
    • Android Studio
    • Visual Studio Code

11 Crash Reporting and Beta Delivery Tools

12 Collaboration Tools (examples)

13 Continuous Integration (CI)

  • Development procedure where changes are integrated frequently into a repository
  • Principles
    • Maintain a code repository
    • Automate the build
    • Test the build automatically
    • Daily commit of every developer & build including test of every commit
      • Keep the build fast (otherwise it would take too long for CI)
      • Testing is done in a realistic but not productive environment (clone)
  • Automate deployment for user tests
    • Make it easy for developers & testers to access the latest builds and see the build results
    • Also called Continuous Delivery (CD)

14 Continuous Integration (CI)

  • Some advantages of CI
    • Bugs can be found and fixed immediately
    • Due to frequent builds, integration problems can be fixed at an early stage (reducing debug time)
    • Can increase code quality
  • Disadvantages of CI
    • Initial setup is time consuming
    • Good test-tools are required
  • Tools for CI

15 Recap Questions

  • What are the benefit and drawbacks of a simulator vs. an emulator?
  • What is an ABI? Which tool makes use of this?
  • What is an instruction set?
  • Explain the concept of continuous integration? What are the benefits?