Device Identifiers - Android und iOS Gerätenamen Mappings
Im Rahmen meiner Mitarbeit an den Flutter Plus Plugins open_in_new gab es die Anfrage die Produktnamen / Marketing-Namen für Android und iOS Geräte ausgeben zu können. Da dieser Use Case vermutlich eher für eine kleine Anzahl von Entwicklern wichtig ist, wurde entschieden diese Funktionalität nicht direkt in die Plus Plugins zu integrieren.
In diesem Bereich gibt es zwar schon Lösungen, aber einige basieren auf nativen Android / iOS Libraries und einige benötigen eine SQLite Library. Diese Anforderungen gefielen mir nicht, da man am Ende lediglich ein Mapping vom Gerätemodel auf den Produktnamen braucht. Das Model kann relativ einfach ausgelesen werden (z.B. via dem Flutter Plugin device_info_plus open_in_new) und alles weitere kann nicht nur ausschließlich auf der Dart Ebene erledigt werden, sondern das auch mit relativ einfachen Mitteln.
Am Ende braucht man wie oben erwähnt einfach nur eine Map der Daten, welche die Übersetzung von Model zu Name ermöglicht. Dies zu programmieren ist natürlich trivial, auch wenn man auf Dinge wie Lazy Loading achten sollte. Das Problem ist hier einen korrekten und möglichst vollständigen Datensatz zu haben.
Um dies zu erreichen habe ich Device Identifiers geschrieben. Ein kleines automatisiertes Dart Script, welches eine von der Community gepflegte Liste von iOS Geräten open_in_new und die offizielle Google Liste für Android Geräte open_in_new als Quelle nutzt. Diese Daten werden genutzt, um damit direkt Maps in der jeweiligen Programmiersprache zu erstellen. Bis dato gibt es Support für Dart, denn hier besteht aktuell Bedarf. Als weitere Sprache wird Kotlin in den nächsten Tagen hinzugefügt.
Die generierten Dateien werden einmal pro Woche automatisch mit Aktualisierungen versorgt und können bei Bedarf in eigene Projekte eingebunden werden. Um den Flutter Use Case direkt komplett abzuarbeiten habe ich das nötige Plugin, welches die Daten von Device Identifiers nutzt, direkt mitentwickelt. Selbiges hört auf den Namen Device Marketing Names und kann über die Related Links gefunden werden.
Im Rahmen der Entwicklung von Device Identifiers bin ich mal wieder über die praktischen GitHub Actions gestolpert, welche ich in einem weiteren Beitrag zum Thema noch einmal gesondert betrachten werde. Selbiges gilt auch für das Device Marketing Names Plugin.