Professionelle Mobile DJ Software

Softwarearchitektur

Softwareentwicklung

UI/UX Design

Marketing & Support

Musik ist mehr als Klang – sie bringt Menschen zusammen, schafft Atmosphäre und macht den Moment besonders. Und genau dafür gibt es UltraMixer: Unsere professionelle DJ-Software für Windows und macOS – entwickelt für alle, die Musik zum Erlebnis machen wollen.

Über 80 Millionen Downloads weltweit zeigen: Ob Hochzeit, durchtanzte Clubnacht oder entspannter Abend an der Bar – DJs, Veranstalter und Gastgeber vertrauen auf UltraMixer.

Branche

Entertainment & Events

Plattform

Windows | Mac

Zielgruppe

B2C | Mobile DJs

Tech Stack

C++ , Electron, Java, JavaScript, TypeScript, Angular, Ionic, Capacitor, Swift

Use Cases

  • Das Herzstück: mit UltraMixer können komplext Musikbibliotheken einfach, übersichtlich und intelligent in einer Datenbank organisiert werden. 
  • Musikverwaltung und -mischung: Einfache Organisation von Musikbibliotheken und nahtlose Übergänge durch automatisches Beatmatching.
  •  
  • Dank automatischem Beatmatching mixt jeder Nutzer wie ein Profi DJ.
  • Visuelle Effekte: Integration von Video- und Bildmaterial für visuell ansprechende Shows.
  • Möglichkeit zur Offline-Nutzung für Event-Locations ohne WLAN oder Mobile Daten.
Anzahl Downloads

>80 Millionen

Auf dem Markt seit

2002

Aktuelle Version

6.4.5.

 What is Ionic?

Ionic is an open-source UI toolkit for building web applications.

The strength of Ionic lies in its ability not only to facilitate the intuitive development of a web application but also to offer the possibility of presenting the same application as a mobile app for iOS and Android. This allows us to leverage the power of cross-platform development, saving both code and development time.

As a toolkit, Ionic provides many building blocks, also known as UI components, for the rapid development of a UI design tailored for both the web and mobile apps. The focus here is on the front end, especially user interactions.

Ionic supports Angular as well as React and Vue as development platforms. In this context, we initially focus on Angular and demonstrate the development process in Ionic using a small example.

What is Angular?

As mentioned earlier, Angular is one of the three development platforms available in Ionic. Angular is based on TypeScript, providing a powerful tool with its characteristic typing. In alignment with Ionic, Angular is also component-based, and Angular components consist of the following:

  1. HTML document
  2. TypeScript document
  3. CSS stylesheet

In the HTML document, Ionic’s UI components are utilized, but Angular-specific elements can also be used alternatively.

The CSS stylesheet allows further customization of the styles of each component, and in the TypeScript document, all documents can be included and extended with desired functionalities.

Another characteristic element in Angular is the so-called “Services.” These are particularly useful for manipulating data and exchanging information between classes without them needing to know about each other directly. This simplifies the components for UI display, as they only need to query the data to be displayed from the respective service.

To easily integrate services into all components, the advantage of Dependency Injection can be utilized. With Dependency Injection, TypeScript classes can be declared without explicitly inserting instantiation, making the classes very easily reusable.

Example: Grocery List App

Let’s say we want to develop a simple app that helps with creating grocery lists. We have three requirements:

  1. The current shopping list should always be displayed.
  2. New items should be added through a menu with a button click.
  3. As soon as an item is added, the shopping list should update immediately.

With the UI components, both the list and the menu button in the footer can be easily implemented. For starters, the list will be filled with placeholders.

Now, for each list item: to have a clear shopping list, each item needs at least a name, a quantity, and a unique ID.

However, if the Homepage component handles both displaying the shopping list and the data processing for list items, the code quickly becomes cluttered.

This is where services come into play. With an ItemService, we can separately define from the Homepage which attributes constitute an item and how the values of the items are set.

To create such a service, we need the command:
ng generate service item

This command generates the following class for us:

This service is now well-suited to define a structure for the shopping list items, create items, and then return them to the Homepage after processing.

To easily access the service, another strength of Angular is utilized: Dependency Injection. Since the ItemService is annotated with the @Injectable decorator, we can easily inject it into any other components. For use in the Homepage component, the service just needs to be added to its constructor:

import { Component } from '@angular/core';
import { ItemService } from './item.service';

@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage {

constructor(private itemService: ItemService) {
// Access the ItemService methods here
}

}

With this setup, the HomePage component can now easily access the methods provided by the ItemService for managing shopping list items. The separation of concerns allows for cleaner and more maintainable code.

Furthermore, we don’t need to worry about any additional instantiation, and we can directly access the list elements of the service.

We now have a web application – what’s next? 

We have a web application – what’s next?

In the initial steps, we’ve become familiar with Ionic and Angular, and with their help, we’ve built a web application.

Now, Capacitor comes into play to enable building for mobile platforms as well.

In Ionic, Capacitor allows the creation of new target folders for both iOS and Android in the project. Here, all necessary files are generated, allowing us to later open our app as a project in the respective native IDEs (Android Studio or Xcode).

To create the folder containing all the relevant files for iOS, a simple command is needed:

ionic capacitor add ios

To further edit the native code and create a build, you only need the following command:

ionic capacitor open ios

If we later make changes to the web code, we don’t need to discard and recreate this target folder. Instead, we can simply copy the updated code into the folder using:

ionic capacitor copy ios

From here, a build can be created in Xcode and tested on either a simulator or a device.

If additional functionalities are desired that are only available for native devices, Capacitor provides APIs that enable a “web-like” use of native features. The primary communication between the web part and the native part is done through plugins. In Capacitor, there are three types of plugins:

  1. Official Capacitor Plugins (App, Device, Haptics, etc.)
  2. Capacitor Community Plugins
  3. Self-written plugins

And there you have a nice little “Grocery List” app where a list can be updated with a button click. The app has been developed for the web, but it can also be offered on iOS and Android.

About the Author

Vanessa

After completing her master's degree in Media Informatics and Applied Computer Science, Vanessa joined us as a web developer, bringing her expertise in Virtual Reality. Since then, she has contributed to numerous native-hybrid projects. Warning: You might find her stories nearly finished even before the sprint begins 😉

Frequently ask questions:

What is Ionic and how is it used?

Ionic is an open-source UI toolkit for developing cross-platform web applications and mobile apps for iOS and Android. It provides pre-built UI components for rapid development.

How is a web application extended to mobile platforms?

With Capacitor, builds can be created for iOS and Android. Ionic simplifies this process by automatically generating native applications.

Which development platforms does Ionic support?

Ionic supports Angular, React, and Vue as development platforms. In the example, Angular is used to demonstrate the development process.

What are the core concepts of Angular in conjunction with Ionic?

Angular enables component-based development of web applications. It utilizes services for data manipulation and exchanging information between classes.

What types of plugins are available in Capacitor?

Capacitor offers official, community, and custom plugins that allow the integration of native features into web applications. These plugins can streamline development for mobile platforms.

Related Articles

“Intelligent Edge” – AI at the Source

In an increasingly connected world, intelligent systems at the network’s edge – the so-called "Edge" – are gaining rapid importance. The "Intelligent Edge" Implementation Service by Onexip GmbH brings artificial intelligence directly to where data is generated: on...

Software Timing Troubles? Log Your Way to Success!

The Shock of the Year 2022: ChatGPT takes the stage and raises the question of whether AI will dominate software development. Our journey through the emotional rollercoaster of psychological phases, from denial to acceptance, is illuminated in this post by CEO Matthias. Learn how we dealt with the challenge and discover the answer we found to the crucial question. A glimpse into our journey, where we got our hands dirty and developed our own AI model.

The German Angst from a CEO perspective: What AI is not!

The Shock of the Year 2022: ChatGPT takes the stage and raises the question of whether AI will dominate software development. Our journey through the emotional rollercoaster of psychological phases, from denial to acceptance, is illuminated in this post by CEO Matthias. Learn how we dealt with the challenge and discover the answer we found to the crucial question. A glimpse into our journey, where we got our hands dirty and developed our own AI model.

How to start with AI locally on a Computer?

Discover how easy it is to start Artificial Intelligence locally on your computer! Our short guide will walk you through the steps, demonstrating how you can generate images directly on your computer without additional costs.