Zum Inhalt springen
IT und Software
Alle Skill-Profile

Android

Skill-Profil, Mobile/DevOps, Stand 2024.

Das Profil ist auf Englisch, der Arbeitssprache der Teams.

Android developer can develop great applications for devices powered by the Android operating system. Android ecosystem is quite big, so pay attention to the application’s compatibility with multiple versions of Android and device types. If you wanna be a great specialist then always stay up to date about best practices and approaches.

Design for mobile

Human interface Guidelines
The Human Interface Guidelines (“HIG”) offers in-depth information and UI resources for mobile platforms. The HIG is full of information that can help to create more compelling, intuitive, and beautiful experiences and design better apps.
Threading operations
Making adept use of threads can help to boost application performance. When an application is launched, it creates the first thread of execution, known as the “main” thread. The main thread is responsible for dispatching events to the appropriate user interface widgets as well as communicating with components from the system UI toolkit.
Saving and restoring state
If an app is stopped on a device, it can save its state and then restore the state when the app is launched again by the user.
Localization
Localisation is the process of customising an app to work in other languages other than the default.
Data protection
Data protection is a feature that is used to secure an app’s files and prevent unauthorised access to them.
UI automation
UI automation testing is a technique where testing processes are performed using an automation tool.

Deployment

Device testing
Device testing is the process by which a device is tested (hardware or software) for its quality to see how well it meets the requirements for which it has been developed.
Testflight / Crashlytics / Adhoc
Mobile app distribution methods
Code signing
Code signing of an app assures users that it is from a known source and the app hasn’t been modified since it was last signed.
Developer portal (AppStore / Google Play)
A developer portal (or partner portal) is where developers can sign up, receive support and manage the apps submitted to the store.

Algorithms

Big O notation
Big O notation is a mathematical notation that describes the limiting behavior of a function when the argument tends towards a particular value or infinity.
Sort algorithms
Sorting is the most common and majorly used algorithms in mobile app development. The basic idea is to arrange the data or items in a definite pattern.
Search algorithms
Search algorithm is any algorithm which solves the search problem, namely, to retrieve information stored within some data structure.
Cryptography (RSA, AES)
The basic idea of encryption is to convert data into a form in which the original meaning is masked, and only those who are properly authorized can decipher it. The AES algorithm successively applies a series of mathematical transformations to each 128-bit block of data. RSA is an asymmetric algorithm that uses a publicly known key for encryption, but requires a different key, known only to the intended recipient, for decryption.

Agile Methodologies / practices

Scrum
Scrum is a framework utilizing an agile mindset for developing, delivering, and sustaining complex products, with an initial emphasis on software development, although it has been used in other fields including research, sales, marketing and advanced technologies.
Kanban
Kanban is a workflow management method for defining, managing and improving services that deliver knowledge work. It aims to help visualize work, maximize efficiency, and improve continuously.
Iterative
The iterative model is a particular implementation of a software development life cycle (SDLC) that focuses on an initial, simplified implementation, which then progressively gains more complexity and a broader feature set until the final system is complete.
CI / CD
Continuous integration (CI) and continuous delivery (CD) is a set of operating principles, and collection of practices that enable mobile development teams to deliver code changes more frequently, reliably and automatically.
TDD
Test-driven development is a programming and testing practice that encourages developers to write better and more precise tests and code. For this, they write unit tests before the code of the respective functionality to ensure bug-free software and applications.
Code review
Code Review is a process that involves other software developers to review a particular engineer’s code in an effort to check its compliance with standards, identify errors, reveal discrepancies in the style of coding, and test the written code suitability for an objective set.

OOD principles

SOLID
SOLID is an acronym for five design principles in Object-Oriented software development intended to make software designs more understandable, flexible and maintainable.
Inversion of control (IoC)
Inversion of Control (IoC) is a design principle and is used to invert different kinds of controls in object-oriented design to achieve loose coupling.

Java

Data Types
Data types specify the different sizes and values that can be stored in the variable.
Class Loading, Linking, Initialization
The loading, linking, and initialization are the initial processes that Java Virtual Machine (JVM) commences as soon as a byte code, called the class file, is loaded into JVM for execution.
Class Instance Finalization
The class Object has a protected method called finalize; this method can be overridden by other classes. The particular definition of finalize that can be invoked for an object is called the finalizer of that object.
Exceptions
Exceptions are events that occur during the execution of programs that interrupt the normal flow of instructions.
I/O, Serialization
Java provides a mechanism, called object serialization where an object can be represented as a sequence of bytes that includes the object's data as well as information about the object's type and the types of data stored in the object. Classes ObjectInputStream and ObjectOutputStream are high-level streams that contain the methods for serializing and deserializing an object.
Generics
Generics are a facility of generic programming that were added to the Java programming language in 2004 within version J2SE 5.0.
Garbage Collection
Java garbage collection is the process by which Java programs perform automatic memory management.
Annotations
Java annotations are used to provide meta data for the Java code.
Lambda formalism
Lambda calculus is a formal system in mathematical logic for expressing computation based on function abstraction and application using variable binding and substitution.

Kotlin (Mobile Android profile)

Nullable vs Not Nullable
Kotlin types system differentiates between references which can hold null (nullable reference) and which cannot hold null (non null reference).
Extension Functions
Kotlin provides an ability to extend a class with new functionality without having to inherit from the class or use design patterns such as Decorator.
Lambdas in Kotlin
Lambdas Expressions are essentially anonymous functions that can be treated as values
Synchronization
Java has the synchronized keyword, which can be applied to methods to ensure that only one thread at a time can access them.
Kotlin Extension Library
This library serves as a collection of various Kotlin extensions that simplifies developers life.
Android KTX library
Android KTX is a set of Kotlin extensions that are included with Android Jetpack and other Android libraries.
Data class
Data Classes represent simple classes used as data containers and do not encapsulate any additional logic.
Access modificators
Visibility modifiers are used to determine what other elements of code have access to the element being modified.
Anonymous objects
Anonymous objects can be used to define an implementation of an interface or an abstract class without creating a reusable implementation.

Core Android

Intents and intent filters
An Intent is a messaging object that can be used to request an action from another app component. When is used an implicit intent, the Android system finds the appropriate component to start by comparing the contents of the intent to the intent filters declared in the manifest file of other apps on the device.
Activities
An activity is the entry point for interacting with the user. It represents a single screen with a user interface.
Services
A Service is an application component that can perform long-running operations in the background.
Content providers
A content provider manages access to a central repository of data. A provider is part of an Android application, which often provides its own UI for working with the data.
Broadcast receiver
A broadcast receiver (receiver) is an Android component which allows you to register for system or application events. All registered receivers for an event are notified by the Android runtime once this event happens.
App Widgets
App Widgets are miniature application views that can be embedded in other applications (such as the Home screen) and receive periodic updates.
Processes and threads
A process is an executing instance of an application/program and A thread is a path of execution within a process.
App Resources
Resources are the additional files and static content that your code uses, such as bitmaps, layout definitions, user interface strings, animation instructions, and more.
Support libs
The support library allows you to use additional functionality.
Deeplinking
Deeplinks are a concept that help users navigate between the web and applications.
Instant app
Android instant apps are native Android apps, which users can experience and use on-the-fly, by simply tapping the URL, without the hassles of downloading the app.
App Shortcuts
Shortcuts can be displayed in a supported launcher and help users quickly start common or recommended tasks within the app.

Animation & Graphics

View & Drawable animation
Drawable animation gives possibility to load a series of Drawable resources one after another to create an animation.
Canvas & drawables
The Android framework APIs provides a set 2D drawing APIs that allow to render own custom graphics onto a canvas or to modify existing Views to customize their look and feel.
OpenGL ES
OpenGL is a cross-platform graphics API that specifies a standard software interface for 3D graphics processing hardware. OpenGL ES is a flavor of the OpenGL specification intended for embedded devices.
Bitmaps
A bitmap is an object , which is an instance of the Bitmap Class. This class represents a 2d coordinate system. The coordinate system move to the right on the x axis, and to the bottom on the y axis.
Camera
The Android framework includes support for various cameras and camera features available on devices, allowing to capture pictures and videos in applications.

Data storage

Shared preferences
Shared Preferences allow to save and retrieve data in the form of key, value pair.
Internal / External storage
Android provides two types of physical storage locations: internal storage and external storage. On most devices, internal storage is smaller than external storage. However, internal storage is always available on all devices, making it a more reliable place to put data on which an app depends.
SQLite Databases
On the Android platform, SQLite helps in creating independent databases for apps and helps to store and manage complex, structured app data.
Cloud Storage
Mobile cloud storage providers offer services that allow the user to create and organize files, folders, music, and photos, similar to other cloud computing models.
ORMs
Object-relational mapping (ORM) is a programming technique in which a metadata descriptor is used to connect object code to a relational database.

Google services

Push notifications
A push notification is a message that pops up on a mobile device.
Location and Maps
Android allows to integrate google maps in application. Any location, routes etc can be shown on the map.
Analytics
Analytics provides free, unlimited reporting in the app to measure user attribution and in-app activity such as screen views, events, in-app purchases, conversions, and more.
In-app Billing
With in-app billing, Android users are able to purchase additional content or features such as bonus levels, virtual money, power-ups or boosts, special characters and more from within the app itself.
Places
A Place encapsulates information about a physical location, including its name, address, and any other information we might have about it.
Location manager
LocationManager is the main class through which your application can access location services on Android.
Firebase
Firebase is a Backend-as-a-Service (Baas). It provides developers with a variety of tools and services to help them develop quality apps, grow their user base, and earn profit.

Multithreading

Locks, Conditions, Atomics
Lock implementations provide more extensive locking operations than can be obtained using synchronized methods and statements. Conditions provide a means for one thread to suspend execution (to "wait") until notified by another thread that some state condition may now be true.
Manual Threads
A manual thread is any thread an application starts and controls itself.
Handlers & Loopers
Android Looper is a Java class within the Android user interface that together with the Handler class to process UI events such as button clicks, screen redraws and orientation switches.
Executors
Factory and utility methods for Executor, ExecutorService, ScheduledExecutorService, ThreadFactory, and Callable classes defined in this package.
Concurrent Collections
Besides Queues, this package supplies Collection implementations designed for use in multithreaded contexts: ConcurrentHashMap, ConcurrentSkipListMap, ConcurrentSkipListSet, CopyOnWriteArrayList, and CopyOnWriteArraySet.

UI

View hierarchy
A View inside another View creates an hierarchy, the outer view becomes the parent of the inner view and the inner view is its child.
Drawing events
Drawing Events. When a shape overlay is created, two events are fired: an {overlay}complete event; an overlaycomplete event.
Touch events
The Android standard View class support touch events. Android supports multiple pointers, e.g. fingers which are interacting with the screen.
ViewGroups (Layouts)
A ViewGroup is a special view that can contain other views. The ViewGroup is the base class for Layouts in Android, like LinearLayout, RelativeLayout, FrameLayout etc.
ListView / RecyclerView / ViewHolder
Android ListView is a view which groups several items and display them in vertical scrollable list. The RecyclerView is a widget that is more flexible and advanced version of GridView and ListView. It is a container for displaying large datasets which can be scrolled efficiently by maintaining limited number of views. A ViewHolder describes an item view and metadata about its place within the RecyclerView.
ViewPager
The ViewPager is the widget that allows the user to swipe left or right to see an entirely new screen.
Custom Views, Custom Layouts
Custom views - creating own views. A custom view is a subclass of View, or of any View subclass (such as Button), that extends or replaces its parent's functionality. Custom layout manager can be implemented by extending the ViewGroup class.
ActionBar / Toolbar
The ActionBar is a consistent navigation element that is standard throughout modern Android applications. ToolBar was introduced in Android Lollipop, API 21 release and is the spiritual successor of the ActionBar.
Contextual Action Mode
The contextual action mode displays action items that affect the selected content in a bar at the top of the screen and allows the user to select multiple items.
Dialog / DialogFragment
A dialog is a small window that prompts the user to make a decision or enter additional information. A dialog does not fill the screen and is normally used for modal events that require users to take an action before they can proceed. A DialogFragment is a special fragment subclass that is designed for creating and hosting dialogs.
Notifications
A notification is a message that Android displays outside the app's UI to provide the user with reminders, communication from other people, or other timely information from the app.
Animation Frameworks
Android supports powerful animations for both views and transitions between activities. There are three distinct animation frameworks for Android: Property Animations, View Animations, Transition Animations
LayoutTransition
This class enables automatic animations on layout changes in ViewGroup objects.
UI guidelines / Material design
User interface is everything that the user can see and interact with. Material is a design system created by Google to help teams build high-quality digital experiences

Gradle

Simple build files
There are 3 main areas to this Android build file: apply plugin, buildscript, android.
Build Variant: Build Type + Product Flavor
When building an app, Gradle combines a product flavor configuration from each defined flavor dimension, along with a build type configuration, to create the final build variant.
BuildConfig
At build time, Gradle generates the BuildConfig class so the app code can inspect information about the current build.
Building and Tasks
Gradle models its builds as Directed Acyclic Graphs (DAGs) of tasks (units of work). What this means is that a build essentially configures a set of tasks and wires them together , based on their dependencies , to create that DAG. Once the task graph has been created, Gradle determines which tasks need to be run in which order and then proceeds to execute them.
Custom plugins
A Gradle plugin packages up reusable pieces of build logic, which can be used across many different projects and builds.
APK splits
Gradle can create separate APKs that contain only code and resources specific to each density or ABI.
Dependencies, Android Libraries and Multi-project setup
Dependencies refer to the things that supports in building the project. An Android library is structurally the same as an Android app module. It can include everything needed to build an app, including source code, resource files, and an Android manifest. A multi-project build in Gradle consists of one root project, and one or more subprojects.

Instruments / tools

Android Profiler
The Android Profiler tools provide real-time data to understand how the app uses CPU, memory, network, and battery resources.
Allocation Tracker
The allocation tracker is a tool provided by Android that records an app's memory allocations and lists all allocated objects for the profiling cycle with their call stack, size, and allocating code.
GPU profiler/debugger
The GPU Debugger helps to analyze and debug OpenGL ES apps. It lets to inspect the GPU state and helps to understand what caused a specific rendering outcome.
Hierarchy viewer
Hierarchy Viewer is a tool built into Android Device Monitor that allows to measure the layout speed for each view in the layout hierarchy. It can help to find performance bottlenecks caused by the structure of the view hierarchy.
Lint
Lint is a code scanning tool provided by the Android Studio to identify, suggest and correct the wrong or the risky code present in the project.
ADB
Android Debug Bridge (ADB) is a utility of command prompt for multi purpose that helps to get access to Android devices.
Android Device Monitor
Android Device Monitor is a stand-alone tool that provides a graphical user interface for several Android application debugging and analysis tools.
Proguard
Proguard is free Java class file shrinker, optimizer, obfuscator, and preverifier. It detects and removes unused classes, fields, methods, and attributes.

Google-Android Technologies

Android Wearable
Wear OS apps run directly on a watch, giving you access to hardware such as sensors and the GPU. Wearable apps are similar to other apps that use the Android SDK, but differ in design and functionality.
Android Things
Android Things let to experiment with building smart, connected device applications.
Android TV
Android TV is a smart TV operating system based on Android and developed by Google for television sets, digital media players, set-top boxes, and soundbars.
Bluetooth / NFC
NFC is a technology that enables Bluetooth devices to establish wireless communication with each other by simply touching the devices together.

Third parties libraries

RxJava
RxJava is a Java VM implementation of ReactiveX a library for composing asynchronous and event-based programs by using observable sequences.
Dagger 2
Dagger 2 is dependency injection framework. It is based on the Java Specification Request (JSR) 330. It uses code generation and is based on annotations. The generated code is very relatively easy to read and debug.
OkHttp
OkHttp is a third-party library developed by Square for sending and receive HTTP-based network requests.
Retrofit
Retrofit is type-safe REST client for Android and Java which aims to make it easier to consume RESTful web services.
Volley/Glide/Picasso
Volley is an HTTP library that makes networking for Android apps easier and most importantly, faster. Glide is an Image Loader Library for Android developed by bumptech and is a library that is recommended by Google. Picasso is an image library for Android. It's created and maintained by Square, and caters to image loading and processing.
Jackson, Gson, SimpleXML
Jackson is a high-performance JSON processor for Java. Gson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object. Simple is a high performance XML serialization and configuration framework for Java. Its goal is to provide an XML framework that enables rapid development of XML configuration and communication systems.

Testing

Unit tests
By creating and running unit tests against the code, it can be verified that the logic of individual units is correct. Running unit tests after every build helps quickly catch and fix software regressions introduced by code changes to the app.
Instrumentation tests
Instrumentation test provides a special test execution environment as launched via the am instrument command, where the targeted application process is restarted and initialized with basic application context, and an instrumentation thread is started inside the application process VM.
Mockito
Mockito is a mocking framework, JAVA-based library that is used for effective unit testing of JAVA applications.
Espresso
Espresso is a testing framework for Android to make it easy to write reliable user interface tests. Espresso automatically synchronizes test actions with the user interface of the application.

Android-Engineer prüfen lassen, oder einen finden.

Unabhängige Expertinnen und Experten aus unserem Netzwerk prüfen diese Skills in einem Live-Interview von 60 bis 90 Minuten und schreiben einen Bericht mit Empfehlung.