Een alternatief voor de Bambu Handy app. Hun app vereist dat je printer in Cloud Mode staat, is er alleen voor Android en iOS, en is bovendien closed source.
Ik ben bezig met een app met deels dezelfde functionaliteit, maar zonder de nadelen.
Geplande features:
[x] Device discovery
[x] Device discovery op Apple’s platformen met alle moeilijke permissies
[x] Voortgang van lopende prints zien
[_] Prints kunnen pauzeren en stoppen
[x] Live video van de ingebouwde camera
[_] betrouwbaarder dan Bambu’s eigen live view
[_] Notificaties bij starten/eindigen/falen van prints
[_] 3D gcode preview met de voortgang zichtbaar
Passende UI voor alle platformen:
[_] Desktop
[_] Mobiel
[_] TV
Supported devices
Android telefoons en tablets
AndroidGoogle TV (met een UI gefocust op live view)
Beschikbaarheid op de Apple App Store is afhankelijk van hun implementatie van de DMA, met hun huidige voorstel gaat het em niet worden maar ik heb zo’n vermoeden dat de EC helemaal niet blij is met Apple’s huidige voorstel, dus daar zou nog wel eens wat aan kunnen veranderen:
Voor het cross-platform maken van de app gebruik ik Flutter, een framework gemaakt door Google. Nee, ik ben geen vriendjes van Google. Maar ditr is de makkelijkste manier om iets te bouwen voor mobiel en desktop zonder dubbel werk.
Mijn development omgeving bestaat uit:
Framework Laptop met Linux (Fedora 39 of straks 40)
VM met windows 11
late 2013 Macbook Pro die voor veel te weinig geld op Marktplaats stond
Moto G (1st gen) met LineageOS 14 (Android 7)
Sony Xperia Compact X met Android 8
Fun fact: een deel van de onderdelen hiervan is ooit van @eloy geweest
Nice! Gaan de notificaties ook op Apple’s platform werken? En hoe zit het qua een printer bereikbaar buiten maken je netwerk, kan je een poortje openzetten (er zit authenticatie op, toch?) of is de beste optie om gewoon een VPN te gebruiken, en detect de app dit ook?
Geen idee, ik ben nog niet begonnen met het bouwen daarvan
Het is bedoeld om te werken over een lokaal netwerk, maar over een VPN zou het ook moeten werken. Op mijn interne todo-lijst staat ook handmatig printers toevoegen per IP adres. Maar als je een VPN-oplossing hebt die ook broadcast verkeer doorlaat dan zou device discovery ook over de VPN moeten werken.
Port forwarding zou ik niet aanraden, want de authenticatie is een 8-letter wachtwoord waarvan de tekens [0-9a-f] zijn. Daarnaast moet je een handvol poorten (mqtts/8883, ftps/990, rtsps/322) forwarden, het is er niet slechts eentje.
@Peetz0r Mocht je assistentie willen voor push notificaties, ofwel Flutter ofwel Android/iOS-specifiek, let me know. Ik ben voor een eigen project binnenkort weer een betalende Apple App Store Connect-gebruiker, je zou de app dan ook via mij naar Apple kunnen releasen als er animo voor is…
Niet met specifiek die Multicast Networking Entitlement, maar wel met entitlements in het algemeen. Ik heb bijvoorbeeld gewerkt aan een app met Bluetooth en aan apps met push notificaties. Komt er (als ik het me goed herinner) op neer dat je de app aanmaakt in je Apple Developer account, provisioning profiles aanmaakt, de entitlements daar instelt, lokaal ook instelt via Xcode of via de entitlements file en dan zou het toegestaan moeten zijn.
Op macOS kun je nog te maken hebben met de sandbox die dwarszit, daar loop ik met m’n project MomentoBooth ook tegenaan. Bijvoorbeeld libusb lijkt geheel niet bruikbaar als die aan is. Je zou die kunnen uitzetten via Xcode. Echter is de sandbox wel verplicht als je je app wil publiceren in de macOS App Store, maar met uitzetten kun je in ieder geval testen of dat het is.
Helpt deze link misschien nog wat? Ik gokte erop dat de permission_handler library van dienst zou kunnen zijn. Maar dat lijkt niet zo te zijn, vond tijdens die tocht wel die GitHub-issue. Zie ook hier. Ik denk dat je iets moet goochelen om te triggeren dat hij permissie gaat vragen om lokale devices te detecteren…
Ik ben heel stiekem inderdaad fan van die fluent_ui library, vind dat Microsoft net dat extra beetje contrast heeft toegevoegd in de design guidelines van die componenten wat ik in Material 3 een beetje mis…
Het ging mis omdat de library die ik gebruik niet alleen luisterend maar ook schreeuwend probeert te zoeken. Op andere OS’en mag dat gewoon (en de Bambu negeert het) maar op Apple’s platformen zegt het “Foei Mag Niet”.
Het lijkt erop dat ik de Multicast Networking Entitlement helemaal niet nodig heb. mDNS (aka Bonjour) is uitgezonderd van die entitlement-eis. Bambu’s protocol is nonstandaard en leeft op een andere poort, maar valt (zolang je enkel luistert) blijkbaar toch binnen de uitzondering. Dat scheelt weer