Blog

Cuterdio – 1.3.2

Vieles ist bereits passiert…
Hab das irgendwie verplant das hier zu posten.

Die 1.3 ist aber ein großer Meilenstein, denn die Beta für macOS ist fertig zum download.
Bin gespannt über eure Rückmeldungen!

Dazu hab ich das App Icon nun auf blauen Hintergrund gesetzt… Ist nicht mehr ganz so krass.

Viele Rückmeldungen gab es auch zum Icon… Entweder lieben es die Leute oder wünschen sich was anderes. Auf lange Sicht werde ich mal ne Alternative bereitstellen. Wer Lust hat kann gerne Vorschläge hier posten.

Von |2020-01-29T08:55:27+01:002020-01-29|C#, Cuterdio, Projekte|

Cuterdio – 1.0

Meine App fürs Internetradio hören Radium wird leider nicht mehr weiterentwickelt.
Aus diesem Grund bin ich auf die Suche gegangen. Folgende Vorraussetzungen hatte ich:

  • MacOS & iOS
  • Coverart
  • Band & Titel Anzeige
  • Einfaches Userinterface

Leider (oder zum Glück) gab es so eine App nicht. Darum hab ich mich entschlossen selbst eine App zu schreiben. Gesagt getan (naja so schnell ging es nicht)…
Daraus entstand Cuterdio. Der Name setzt sich zusammen aus den Wörtern “cuter Radio” und der Tatsache dass ich die Musik von Ronnie James Dio liebe.
Bei 99designs.com hab ich mir noch ein zuckersüßes Icon erstellen lassen und die App als erstes für iOS veröffentlicht. Läuft auf iPhone & iPad.

Mac folgt als nächstes. Dann wahrscheinlich Android. Ich will auch versuchen für tvOS das ganze zu bauen. Ist aber mit Xamarin nicht so einfach.
Dazu hab ich noch ne Website gebaut: cuterdio.com.

Features:

  • Coverart
  • Album Information
  • In Spotify anzeigen
  • Große Radio Sender Datenbank mit über 25000 Einträgen
  • Keine Werbung
  • Kein Login / Registrieren

Über Feedback & Bewertungen freue ich mich sehr. Anbei ein paar Impressionen:

Von |2019-12-10T08:03:58+01:002019-12-06|C#, Cuterdio, Projekte|

EDZ-Datei automatisiert exportieren

Ich liebe ja das EDZ-Format, alles was zum Artikel in EPLAN gehört ist dabei.

Es gibt den nicht dokumentierten Parameter IXPartsImportExportEdz für den Export via Scripting.
Somit ist es möglich mit der Action partlist auch EDZ-Dateien zu exportieren 🎉

Von |2019-12-05T08:28:47+01:002019-12-05|EPLAN, EPLAN-Scripts|

Festival Holledau App – 1.4

Endlich… dachte ich als ich mit der Android Version fertig war.
Muss sagen, ich kann mich mit der Android Plattform leider nicht anfreunden. Aber gut. Rückblickend ist der Aufwand mit Xamarin wirklich überschaubar. Paar CustomRenderer erstellt und fertig. Größtes Problem waren die lokalen Push-Notifications… das habe ich dann selber implementiert. Dazu schreibe ich auch noch einen Blogpost.

Ich bin aber stolz nun auch im Playstore gelistet zu sein 🦄

Von |2019-12-05T09:06:22+01:002019-10-18|Festival Holledau App, Projekte, Xamarin|

DLLs manuell kopieren

Ab EPLAN 2.6 kopiert EPLAN ja die DLLs welche geladen werden in ein ShadowCopy-Verzeichnis.
Mit dem Interface IEplAddInShadowCopy können wir Einfluss nehmen…

Ich habe ein API-Addin, welches per Entity Framework Daten aus der Datenbank abruft. Komischerweise werden nicht alle DLLs kopiert und werden somit nicht vom AssemblyResolver gefunden.

Über das Interface IEplAddInShadowCopy kopiert dieser Code nun alle DLLs manuell, welche im Orginalverzeichnis vorhanden sind:

public void OnBeforeInit(string strOriginalAssemblyPath)
{
  CopyAssemblies(strOriginalAssemblyPath);
}

private void CopyAssemblies(string originalAssemblyPath)
{
  string sourcePath = Path.GetDirectoryName(originalAssemblyPath);
  DirectoryInfo source = new DirectoryInfo(sourcePath);

  Type type = this.GetType();
  string dllLocation = Assembly.GetAssembly(type).Location;
  string destinationPath = Path.GetDirectoryName(dllLocation);
  DirectoryInfo destination = new DirectoryInfo(destinationPath);

  CopyFilesRecursively(source, destination, ".dll");
}

public static void CopyFilesRecursively(DirectoryInfo source, DirectoryInfo target, string fileExtension = null)
{
  IEnumerable<DirectoryInfo> sourceDirectories = source.GetDirectories();
  foreach (DirectoryInfo sourceDirectory in sourceDirectories)
  {
    DirectoryInfo destinationDir = target.CreateSubdirectory(sourceDirectory.Name);
    CopyFilesRecursively(sourceDirectory, destinationDir);
  }
  IEnumerable<FileInfo> sourceFiles;
  if (string.IsNullOrEmpty(fileExtension))
  {
    sourceFiles = source.GetFiles().ToList();
  }
  else
  {
    sourceFiles = source.GetFiles().Where(obj => obj.Extension.Equals(fileExtension)).ToList();
  }

  foreach (FileInfo sourceFile in sourceFiles)
  {
    string destination = Path.Combine(target.FullName, sourceFile.Name);
    if (!File.Exists(destination))
    {
      sourceFile.CopyTo(destination);
    }
  }
}
Von |2019-10-08T12:30:33+02:002019-10-08|EPLAN, EPLAN-API|
Nach oben